9月11日、dayzlegame.comが「I spent $220 on Google app ads. 60% of the installs were robots.」と題した記事を公開した。パズルアプリ「Dayzle」の個人開発者が、Google広告のインストール課金をボットファームに食い荒らされた実体験と、その検出・対策を詳述した内容だ。
モバイル広告詐欺は業界全体の慢性的な問題であり、AppsFlyerの調査では2023年だけで世界で数十億ドル規模の不正広告費が発生したとされる。大手は専門のモバイル計測プラットフォーム(MMP)で対策できるが、予算の限られた個人・小規模開発者にとっては「気づいたときには全額溶けていた」という事態になりやすい。本記事はまさにその当事者による生々しいレポートだ。
CA$220を使い、インストールの60%がボットだった
筆者はAndroid向けGoogle広告キャンペーンを、1日CA$40(カナダドル)・目標をインストール数に設定して開始した。最初の数日はほとんど予算が消化されなかったため、目標CPI(インストール単価)の上限設定(CA$1.50)を外した。するとすぐに日次予算の倍にあたるCA$80が消化され、管理画面上で21件のインストールが報告された。しかし実際のアナリティクスには「1件」しか表示されていなかった。
数字が語るボットの痕跡
管理画面とアナリティクスの乖離を詳しく調べると、以下の異常が浮かび上がった。
- 21台の新規Androidデバイスのうち、20台がPlayストアが数日前に配信を停止した旧バージョンのアプリを実行していた
- インストール元はすべて「Google Play」と表示されていたが、旧バージョンはPlayからは取得不可能なため、事前に保存したAPKファイルを直接インストールしていたことが確実だ
- 20台はそれぞれアプリを1回起動し、どの画面でも滞在時間ゼロ秒で、以後一度も戻ってこなかった
- デバイスは19州・28機種に分散しており、「多様性」が意図的に作られている
2週間の合計では、請求ベースで56インストール、そのうち33件がこのボットパターン、7件がキャンペーンのターゲット外の国からのもの、実際の人間は13人だった。その13人は92ゲームをプレイしており、リテンションとしては良好なシグナルだ。広告費の大半は、結果的にボットに流れていたことになる。
ボットがGoogleのアルゴリズムを逆用する仕組み
Googleは設定した目標に向けて自動最適化する。目標が「インストール」なら、ボットファームは以下の手順を踏む。
- 広告グループ内で最も短い動画広告を視聴(クリックはしない)
- Playストアを経由せず、保存済みのAPKを直接インストール(Playからインストールすると検知リスクがある)
- Googleは「動画視聴→インストール」をコンバージョンと判定する
結果として、ボットがインストールするほどGoogleのアルゴリズムはその広告枠を高評価し、さらに多くの予算がボットに流れるという自己強化ループが発生する。広告主が予算を溶かすほど、アルゴリズム上では「パフォーマンスが良い」と見える構造だ。
対策:「インストール」ではなく「パズルを解いた」をゴールに
筆者が取った対策は、コンバージョン目標を「アプリを開いた」から「パズルを1問クリアした」に変更することだ。
スクリプトにアプリを開かせてクリックさせるのは簡単だが、数独を解かせるのははるかにコストがかかる。
狙いは「自分のアプリをボットファームにとって費用対効果の悪いターゲットにする」ことだ。完全な防御ではないが、小規模アプリには現実的な選択肢である。逆に規模の大きいアプリはそれだけ攻撃する価値が高く、より高度なボットを向けられるリスクがある、と筆者は指摘する。
なお、AppsFlyerやAdjustといったモバイル計測プラットフォーム(MMP)は、こうした不正インストールの検出を主要機能として提供している。ただし利用にはコストがかかるため、予算の少ない個人開発者には導入のハードルが高い面もある。
Googleの無効トラフィックポリシーでは無効クリック・インストールの返金を定めており、返金申請はGoogle広告のサポート窓口から行える。ただし実際にどこまで返金されるかは不明確なことが多く、筆者も現時点で回答待ちの状態だ。
筆者のまとめは簡潔だ。「Googleのインストール数は実数ではあるが、そのまま信用するな。小さな予算でもボットは見つけてくる」。個人開発者が広告を出稿する際は、コンバージョン目標をインストールより一歩先の「意味ある行動」に設定し、アナリティクスとの数値乖離を毎日確認する習慣が、最初の防衛線になる。
詳細はI spent $220 on Google app ads. 60% of the installs were robots.を参照していただきたい。