Block Blast가 플레이어에게서 광고 수익을 뽑아내는 방법

How Block Blast harvests its players for ad money

ayoships.com ▲ 110 댓글 48 motionlessveloc

요약

Block Blast는 서버에서 내려받은 규칙으로, 비싼 광고가 준비되면 놓을 수 없는 블록을 내줍니다.

데이터 과학자이자 앱 개발자인 아요 오몰레와가 앱을 직접 분석한 글입니다. 이 게임을 다룬 그의 영상이 1,500만 회 넘게 조회되자, 근거와 재현 방법을 담은 기술 보고서를 따로 냈습니다.

왜 중요한가

  • 실력에 맞춰 판을 조절하는 적응형 난이도와 달리, 광고 가격에 따라 패배를 만든다는 근거를 코드로 보였습니다.
  • 핵심 규칙이 앱 심사 없이 서버에서 내려옵니다. 이것이 애플 규정에 맞는지는 애플의 판단에 달렸다고 했습니다.
  • 센서타워 추정으로 올해 1~5월 광고 수입이 1억 2,700만 달러로, 같은 기간 Candy Crush Saga보다 많은 게임입니다.

핵심 내용

  • 보상형 광고(끝까지 보면 부활 같은 보상을 주는 광고) 최근 3편을 다 봤어야 규칙이 움직입니다.
  • 여기에 지금 광고가 직전 광고보다 3.5배 이상 비싸고, 최고 기록을 1,000점 넘기면 규칙이 발동합니다.
  • 발동하면 놓을 수 있어 보이지만 셋을 다 놓을 수는 없는 블록 묶음, 이른바 '치명적 퍼즐'을 내줍니다.
  • 이런 규칙은 설치 파일에 없고, 실행할 때 서버가 약 700개 모듈 가운데 일부를 암호화된 자바스크립트로 보냅니다.
  • 머신러닝 모델로 플레이어의 광고 단가를 예측하며, 미국 플레이어는 브라질보다 약 3배 높게 매겨졌습니다.

HN 반응

  • 글이 AI로 쓰여 뜻을 따라가기 어렵다는 비판이 가장 많았고, 그래도 밝혀낸 내용은 흥미롭다는 반론도 있었습니다.
  • 광고를 보게 하려고 불가능한 판을 만든다는 오랜 의심이 확인됐다는 반응과, 애플이 서버에서 바뀌는 코드를 실제로 검증할 수 있느냐는 의문이 나왔습니다.

댓글

30개 표시 · 전체 48개
  1. jstanley HN

    정말 흥미롭긴 한데, LLM이 글을 좀 더 이해하기 쉽게 써 줬으면 좋겠어요.

    이 규칙은 세 가지 조건이 모두 충족되는 바로 그 순간에 치명적인 퍼즐을 요청한다. 28가지 경우가 있는데, 광고가 세 개가 아니라 두 개인 경우, 광고를 일찍 닫은 경우, 점수가 1점 모자란 경우, 광고 가치가 3.5배에 살짝 못 미치는 경우가 포함된다.

    그런 다음 애플의 시뮬레이터에서 아이폰 앱의 테스트 사본을 실제로 돌려 보면서, 플레이하는 동안 규칙의 입력값을 읽었다. 기록상 괜찮은 보상형 광고가 세 번 있었다. 점수는 기준선을 넘어섰다. Google AdMob의 보상형 광고가 로드되어 준비된 상태였다. 규칙은 이 광고를 72.39로 매겼고, 직전 광고는 37.41이었으니 1.94배다. 필요한 건 3.5배다. 그래서 아이폰에서도 이 규칙은 살아 있고, 실제 광고 가격을 읽으면서, 직전 광고보다 3.5배 가치가 나가는 광고를 기다리고 있다.

    대체 무슨 말이라는 거예요?

  2. truculent HN

    AI 방언을 읽는 건 중세 영어 문헌을 읽는 느낌과 비슷합니다(그보다는 좀 쉽지만). 단어 하나하나는 말이 되는데, 소통 매체 자체를 훨씬 더 의식하게 되고 뜻을 뽑아내려면 어느 정도 집중해야 합니다.

  3. ErroneousBosh HN

    저는 2000년대 초에 아시아 출신 개발자가 많은 회사에서 꽤 오래 일했는데, 교과서적인 인도식 영어 방언이 많이 떠오릅니다.

    AI 방언은 뭄바이 사무실의 해럴드, 클라이브, 페넬로피가 쓰는 말과 무척 비슷합니다. 제 일은 상당 부분 그걸 영국 영어로 옮기는 것이었습니다. 그래야 폴록쇼스 사무실의 서지트, 이스마일, 나린더가 이해하기 시작이라도 할 수 있었으니까요.

    (실제 이름은 아니고, 충분히 비슷하게 지은 이름입니다)

  4. thaeli HN

    오, 그래서 제가 Claude식 말투는 비교적 읽기 쉽다고 느끼는 걸지도 모르겠네요.

  5. joshspankit HN

    읽는 내내 제 머릿속에 든 생각은 “효율적이고 깔끔하고 효과적인 분석을 공들여 만드는 건 어렵다. 예전보다 그 시간과 노력이 지금은 훨씬 더 고맙게 느껴진다”였습니다.

  6. jjbinx007 HN

    페이지가 LLM이 쓴 것처럼 보여서 굳이 읽어 보려고 소제목을 훑어봤어요. 하나같이 말도 안 되는 쓰레기 같았어요.

    쓰는 수고도 안 들였다면 저도 읽는 수고를 들일 이유가 없죠.

  7. jgilias HN

    읽으라고 있는 글이 아니에요. 브라우저한테 AI 요약을 시키라고 있는 글이죠, ㅋㅋ.

  8. cowlevel HN

    그 AI 요약도 읽을 수 없는 쓰레기일 거예요.

  9. jwr HN

    인류가 이런 일에 이렇게 많은 노력을 쏟아붓는다니 정말 슬픕니다.

    2020년대쯤이면 핵융합 발전이 실현되고, 우주를 탐사하고 식민지로 만드느라 바쁠 줄 알았습니다.

    그런데 실제로 얻은 건 도덕관념 없는 경영진이 이끄는 탐욕스러운 기업들, 그리고 쓸모없는 쓰레기에 쏟아부어지는 어마어마한 개발자의 노력입니다("사악해지지 말자"는 선언 기억하세요? 좋은 시절이었죠?).

  10. chasd00 HN

    광고 클릭을 얻는 데 최고의 인재들이 낭비되는 게 벌써 두 번째 세대에 접어들고 있어요.

  11. havaloc HN

    광고 붙은 게임을 하고 있다면 어떤 거래인지는 이미 알고 있는 셈이잖아요. 물론 여전히 씁쓸하지만, 원래 그런 거죠.

  12. Jaxkr HN

    모바일 게임에서 깰 수 없는 퍼즐을 일부러 만들어 보상형 광고 시청을 유도한다는 건 늘 의심해 왔는데, 제 실력 문제겠거니 하고 넘겼습니다.

  13. db48x HN

    왜 그러셨어요? 소액결제나 광고를 쓰는 게임에서는 꽤 잘 알려진 얘기인데요.

  14. quikoa HN

    애플은 앱이 이런 식으로 JavaScript 업데이트를 내려받는 것을 허용한다. Expo Updates 같은 도구가 그렇게 동작한다. 단, 업데이트가 앱의 정체성을 바꾸지 않아야 한다. 광고 가격에 따라 조각을 바꾸는 것이 거기에 해당하는지는 애플이 판단할 몫이다.

    그런데 애플이 "업데이트가 앱의 정체성을 바꾸지 않아야 한다"는 조건을 확인할 방법은 없지 않나요?

  15. user43928 HN

    지난주 최신 정책 업데이트에서 애플이 앱 심사를 우회하는 기능 플래그를 탐지하려는 휴리스틱을 도입했다고 들었습니다.

    정상적인 A/B 테스트나 릴리스 빌드에서 제거되지 않은 디버그 플래그에도 이게 작동할 수 있다고 합니다.

    이런 게임들은 담당 계정 매니저가 있고 애플에 수수료나 유료 유저 확보 비용으로 수백만 달러를 내는 한 괜찮을 거라고 봅니다.

  16. MDTHLN HN

    치명적인 퍼즐은 생성기이며, 어떤 규칙이든 그것을 요청할 수 있다.

    AI가 쓴 글이라는 걸 기사의 절반쯤 읽고서야 알아챘다니, 스스로가 부끄럽네요.

  17. abound HN

    저도요. 바탕에 깔린 이야기는 흥미롭고 섬뜩하지만(그렇다고 놀랍지는 않지만), LLM이 쓴 글이 거기서 숨통을 다 틀어막아 버립니다.

    저는 사람인 저자가 왜 이 일을 했는지, 난독화를 풀면서 어떤 점이 어려웠는지, 그게 무슨 짓을 하는지 알았을 때 어떤 감정이었는지 듣고 싶어요. 이 글에는 그런 게 전혀 없습니다.

  18. iamacyborg HN

    하, 부제만 봐도 딱 티가 나요.

    서버에서 내려받는 규칙이 당신의 조각, 점수, 광고를 결정한다. 규칙 하나는 값비싼 광고를 기다렸다가, 놓을 수 없는 패를 요구한다.

  19. wafflemaker HN

    저라면 모를 것 같아요. "하중을 받는 게 아니라..." 같은 것도 아니고, "X가 아니라 Y다"도 아니잖아요.

    저는 글이 충분히 괜찮고, 정보가 있고, 너무 길지만 않으면 사실 별로 신경 안 써요.

    요즘 (언어와 형식 면에서) 정말 잘 쓴 글을 읽은 적이 별로 없긴 해요. 트럼프의 전쟁을 요약한 정말 재미있는 HN 댓글 정도가 다예요.

    그런데 요즘 읽은 글 자체가 그리 많지 않기도 하고요.

  20. swiftcoder HN

    여기서 티가 나는 부분은 "One ..., then ... <부정적인 내용>" 구조예요. "X가 아니라 Y다"에서 절의 순서만 바꾼 거죠.

    요즘 LLM들은 무슨 이유에선지 모든 문장마다 두 가지를 대비시키는 데 유난히 집착해요.

  21. yen223 HN

    문제는 "X가 아니라 Y" 구문이 아주 유용해서 사람이 쓴 글에도 자주 나온다는 거예요.

  22. swiftcoder HN

    액센츄어 피치 덱 밖에서는 그렇게 흔하지 않다고 생각해요.

  23. drstewart HN

    여기서 티가 나는 부분은

    이것도 AI가 쓴 건가요? "이게 결정적 증거다" 같은 느낌이 나는데, 그걸 다시 쓴 것 같아요.

  24. teraflop HN

    정확히 뭐라고 불러야 할지는 모르겠지만, AI의 단어 선택과 표현에는 유난히 눈에 띄는 뭔가가 있어요.

    "쉬운" 단어를 고르면서도 그 단어를 불분명하거나 모호하게, 혹은 살짝 이상하게 써서 전체 뜻을 파악하기 더 어렵게 만드는 것 같아요. 하나하나는 변호할 수 있지만, 그런 게 수없이 쌓인 결과는 읽기에 굉장히 피곤해요. XKCD의 "Up Goer Five"가 생각나네요: https://xkcd.com/1133/

    예를 들면 이런 거예요.

    규칙 하나는 값비싼 광고를 기다렸다가, 놓을 수 없는 패를 요구한다.

    처음엔 분명한 생각이 있었는데, 그걸 한 음절짜리 단어로만 표현하라고 강요받은 것처럼 읽혀요.

  25. anon7000 HN

    이 줄이 눈에 띕니다.

    One waits for an expensive ad, then asks for a hand you can’t place (규칙 하나는 값비싼 광고를 기다렸다가, 놓을 수 없는 패를 요구한다)

    “asks for a hand you can’t place”라는 대목에서 왠지 경보가 울립니다. 안타깝게도 제가 일하면서 AI가 쓴 글을 너무 많이 읽어서 그런 것 같아요. 여가 시간에는 책도 읽는데, 그 패턴에는 뭔가…

    초반부의 다른 인용도 몇 개 들어 보겠습니다.

    “Most of Block Blast isn’t in the app you install” (Block Blast의 대부분은 설치하는 앱 안에 있지 않다)

    그리고 이어서

    “It waits for three things to line up: you finished your last three rewarded ads, the ad loaded right now is worth at least 3.5 times your last one, and you’re 1,000 points past your high score. All three get checked in one function.” (이 규칙은 세 가지가 맞아떨어지기를 기다린다. 직전 보상형 광고 세 개를 끝까지 봤고, 지금 로드된 광고가 직전 광고의 최소 3.5배 가치이며, 최고 점수를 1,000점 넘어섰을 때다. 세 가지는 모두 한 함수에서 검사된다.)

    제게 AI 티가 가장 확 나는 지점은 별것 아닌 일을 선정적이고 극적으로 다룬다는 점입니다. 코드를 한 함수에서 검사한다는 게 딱히 극적으로 들리지는 않죠. 그런데 이렇게 생각해 보세요. 한 문단이 결론을 향해 쌓여 가고 있습니다. 꽤 긴 문장이 나오고, 그다음에 짧은 문장이 나옵니다. 길이 대비 때문에 읽을 때 짧은 문장이 크게 강조돼요. 뉴스 앵커 목소리로 하면 “세 가지 모두 검사된다.. 한 함수에서”쯤 되겠죠.

    그런데 기술에 밝은 독자에게조차 한 함수에서 검사하든 여러 함수에서 검사하든 전혀 중요하지 않습니다. AI는 이런 짓을 시도 때도 없이 합니다. 사실이긴 하지만 저자가 말하려는 요점과는 완전히 무관한 구현 세부 사항을 강조하는 거죠. 사실 이 대목은 기사에서 아예 빼는 게 맞습니다. 이 앱이 어떻게 동작하는지 이해하는 데 정말 아무것도 보태지 않으니까요.

    그래서 제 경보가 울리는 겁니다. 기술 문서를 쓰는 사람이라면 아마 그 점을 강조하지 않았을 테니까요.

    일부러 분석하면서 읽는 건 아니지만, AI가 쓴 글을 읽다 보면 전혀 상관없는 것들이 강조되는 게 눈에 들어옵니다. 완전히 헛소리인 내용을 두고 글이 스스로를 대단하게 여기기 시작하는 느낌이 들어요.

    저는 이 모든 게 합쳐진 거라고 생각하고, 놀라울 만큼 많은 블로그와 유튜브 영상에서 이 패턴을 알아봅니다. 거슬리기는 하지만, 제 생각에 더 큰 문제는 엉뚱한 세부 사항에 초점이 맞춰져서 설명을 따라가기 어려워진다는 점입니다.

  26. iamacyborg HN

    Claude는 개수를 알려 주는 것도 정말 좋아해요.

    “다음 X가지가 이어진다”, 아니면 방금 예시처럼 “Y가지가 맞아떨어지기를 기다린다” 같은 식이죠.

  27. Freak_NL HN

    이 글이 흥미로워서 여기 올라왔을 거라고 생각하고 읽기 시작했는데, 이 문단에서 확신이 들었습니다.

    1. 직전 보상형 광고 세 개를 끝까지 봤다. 보상형 광고가 시작될 때마다 규칙은 목록에 false를 넣고 최근 세 개만 유지한다(174~183행). 광고 SDK가 보상을 받았다고 알려 주면 해당 항목을 true로 바꾼다(191~199행). 검사는 세 개가 모두 정확히 true일 것을 요구한다.

    쓸데없이 늘려 쓴 문장. 사방에 쓸데없는 소제목. 쓸데없는 목록. 불리언 목록이 뭔지는 우리도 알고, 게임이 마지막 세 개가 true인 상태를 찾는다는 것도 압니다. 굳이 그렇게 풀어 쓸 필요가 없어요.

    사람들은 왜 이런 쓰레기를 올릴까요? 왜 하필 Hacker News에 올릴까요? 주의력을 빨아들이는 광고 기반 게임을 파헤치는 데는 분명 의미가 있습니다. 하지만 이 기사는 뜻이나 글쓴이의 견해를 붙잡으려는 제 시도가 번번이 실패하는 기분만 들게 합니다. 들판의 곡식 줄기를 움켜쥐려는데 홀로그램인 것처럼 손이 계속 통과해 버리는 느낌이에요.

    저는 어색한 문장, 틀린 맞춤법, 별로인 개요도 너그럽게 봐주면서 사람들의 생각을 읽고 싶습니다. 그 대신 프롬프트를 넣은 사람이 갑자기 사라져 버린 텍스트를 보상이랍시고 받고 있네요.

    이놈의 새로운 AI 세상, 엿이나 먹으라지.

  28. wodenokoto HN

    기사에 잘 쓰이지 않은 부분이 많긴 해도, 주제와 밝혀낸 내용은 아주 흥미롭습니다.

    그래서 올라온 거죠.

  29. GrinningFool HN

    기준은 더 높아야 한다고 생각해요. 주제가 흥미롭다고 해서 알아볼 수 없는 글이 용서되는 건 아니에요.

  30. motionlessveloc HN

    인스타그램에 올라온 원본 영상은 한 번 볼 만합니다: https://www.instagram.com/p/DecfvksvHiW/

Hacker News에서 보기 ↗