Hacker News

How Block Blast harvests its players for ad money

Block Blast는 광고 수익을 위해 플레이어를 어떻게 이용하나

Block Blast가 서버에서 내려받는 규칙과 모델로 플레이어별 광고 단가를 예측하고, 조건이 맞으면 배치할 수 없는 퍼즐을 내놓는다는 역공학 분석입니다. 작성자는 Android와 iPhone 앱에서 규칙을 확인하고 재현 자료를 공개했습니다.

에디터 노트

여기서 확인된 조작은 광고를 많이 보는 사람을 무작위로 어렵게 만드는 수준이 아닙니다. 코드가 광고 완료 이력과 현재 광고 가격, 최고 기록과의 점수 차를 검사한 뒤 배치 불가능한 퍼즐을 요청합니다. 작성자는 양쪽 모바일 플랫폼의 규칙과 실행 결과를 제시했고, 별도의 규칙도 같은 퍼즐 생성기를 호출한다고 설명합니다. 다만 댓글에서 제기된 Apple의 앱 심사 검증 여부는 기사에서도 답을 확정하지 않습니다. 광고 가격이 높은 이용자를 죽이는 이유는 댓글의 설명처럼 부활 광고를 유도하려는 것이라는 해석이 자연스럽지만, 작성자가 제시한 코드가 직접 입증하는 범위는 조건과 동작입니다. 매출 추정치와 사업자의 의도는 코드 분석과 구별해야 합니다. Hacker News에서는 분석 내용의 가치와 글이 LLM 문체처럼 읽힌다는 비판이 함께 나왔습니다. 글쓰기 비판은 코드 증거에 대한 반박으로 볼 수 없으며, 공개된 자료의 재현 가능성이 이 분석의 무게를 결정합니다.

AI 요약

Block Blast는 2026년 1~5월 광고로 추정 매출 1억 2,700만 달러를 올렸습니다. 작성자는 Android 10.8.2와 iPhone 7.4.9를 분석해 게임 규칙이 설치 앱에 모두 들어 있지 않고 서버에서 JavaScript 모듈 형태로 내려온다고 설명합니다. Android 설치본은 약 700개 규칙 중 254개를 선택했고 101개를 설치 뒤 다운로드했습니다. 따라서 서버 설정에 따라 플레이어마다 다른 규칙을 적용하고 앱 업데이트 없이 게임 동작을 바꿀 수 있습니다.

광고 가치에 따라 배정하는 불가능한 퍼즐

RewardHighValueAdHarvestTrait는 보상형 광고 세 편에서 모두 보상을 받아야 하고, 현재 로드된 광고의 가치가 직전 광고의 3.5배 이상이어야 하며, 점수가 최고 기록보다 일정 점수 높아야 작동합니다. 작성자가 확인한 Android 설정의 점수 기준은 최고 기록보다 1,000점 높습니다. 다른 설정에는 500점과 750점도 있습니다. 조건이 맞으면 다음 블록 배치에 세 조각을 놓을 방법이 없는 퍼즐을 요청합니다. 작성자는 게임의 생성 코드를 실행해 테스트 보드에서 171개 배치 순서를 모두 확인했고, 가능한 배치가 없었다고 합니다.

iPhone에서도 같은 규칙을 확인했습니다. 실제 플레이 중 규칙은 보상형 광고 가격을 72.39, 직전 광고 가격을 37.41로 읽었습니다. 약 1.94배라서 3.5배 기준에는 미치지 못했습니다. iPhone 앱에는 광고 완료 여부 확인을 끄고 한 번의 광고만으로 작동하는 V2 설정도 있습니다. 최고 기록을 10% 넘으면 매 판 20% 확률로 같은 불가능 퍼즐을 요청하는 PersonalMarginBreakTrait도 별도로 확인했습니다.

플레이어별 광고 가치와 난이도 조절

게임은 XGBoost 회귀 모델로 플레이어의 광고 가치를 예측합니다. 모델은 59개 결정 트리와 27개 입력값을 사용합니다. 입력에는 최근 광고 가격과 기기, 국가, 첫 게임 점수 등이 포함됩니다. 작성자가 모델을 재현한 예시에서 미국의 iPhone 15 이용자 광고 가치는 25.48이었고 브라질은 8.08, 인도는 5.59였습니다. 이 가격은 광고 종류와 부활 기회, 전체 화면 광고 노출 여부를 정하는 규칙에 쓰입니다.

또 다른 500개 트리 XGBoost 모델은 레벨 진행 중 불가능한 퍼즐을 넣을 구간을 고릅니다. 1,000개 트리 LightGBM 모델은 다음 날 활동이 줄어들 가능성을 예측하고, 점수가 0.69 이상이면 광고 없이 부활하는 분홍색 버튼을 하루 한 번 표시합니다. 서버에서 추론하는 이탈률, LTV 등의 모델도 있으며, 앱은 광고 가격과 통신사, 저장 공간, 시간대 등 40개 항목을 서버에 보냅니다. 작성자는 앱 파일과 서버에서 받은 규칙, 기기에서 실행한 결과를 증거 묶음으로 공개했습니다.

Hacker News 반응

  • @Jaxkr — 불가능한 퍼즐로 보상형 광고 시청을 유도한다는 건 모바일 게임에서 늘 의심했지만, 내 실력 탓이라고 넘겼습니다.
  • @quikoa — Apple이 JavaScript 업데이트가 앱의 성격을 바꾸지 않는 경우 허용한다고 해도, Apple이 그 조건을 어떻게 검증하나요?
    • @user43928 — 지난주 정책 변경으로 앱 심사를 우회하는 기능 플래그를 찾는 휴리스틱이 추가됐다고 들었습니다. 정상적인 A/B 테스트나 디버그 플래그도 걸릴 수 있다고 합니다.
  • @wodenokoto — 광고 가치에 따라 게임을 바꾸려는 이유가 잘 이해되지 않습니다. 광고 가치가 높은 이용자가 더 자주 죽게 만든다는 설명은 알겠지만, 왜 그런가요?
    • @Timshel — 광고를 보게 하려는 겁니다. 광고를 보는 경향이 있고 높은 점수를 낸 사람이 죽으면 부활 광고를 볼 가능성이 높습니다.
  • @jstanley — 내용은 흥미롭지만 글의 표현이 이해하기 어렵고 반복적입니다.
    • @well_ackshually — 이용자가 최고 기록을 넘기고 광고 보상도 받아들인다는 걸 확인한 뒤, 실패하면 되살아나려고 광고를 볼 만한 순간에 곧바로 실패할 퍼즐을 내놓는다는 뜻입니다.
  • @abound — 밑바탕 이야기는 흥미롭고 섬뜩하지만 LLM이 쓴 듯한 글이 내용을 가립니다. 작성자가 왜 분석했는지, 난독화 해제의 어려움은 무엇이었는지 듣고 싶습니다.
  • @noisy_boy — AdGuard를 켜고 Block Blast 클래식 모드를 하는데 광고가 보이지 않습니다.