ユーザーが実際に使っているネットワークで、広告連携が持ちこたえるかどうかを知りたい。遠い出口を再現する最も簡単な方法はVPNだ。間違いは、その実験を収益の実験として扱うことにある。

出口の国を変えても新しいオーディエンスは生まれず、自分のタップが適格なトラフィックになるわけでもない。変わるのはリクエストの経路だけだ。

だから、文書化した手順で接続性テストとして実行し、ライブ在庫は完全に切り離しておく。以下の手順はどのビルドでも繰り返す価値がある。

テストの目的を決める

二つの問いが混同されやすい。一つ目は、あるリクエストが特定のネットワーク経路からそもそも配信されるかどうかで、これは連携と接続性の問いだ。二つ目は、その国の実在のユーザーがいくら稼ぐかで、これはレポートとビジネスの問いであり、SDKが代わりに答えられるものではない。

開発用デバイスから検証できるのは一つ目だけだ。推定収益はレポート期間が確定する前にも変わり得るので、自分で作った実験で観測した数字は、適格な収益の証拠でも他人への予測でもない。

接続する前に問いを書き出しておき、たとえばこのビルドでデバイスがドイツ経由で出るときバナーリクエストがフィルを返すかどうかを見極める。欲しい答えが収益の数字ならここで止めるべきで、どのVPN構成もそんな数字は生まない。

離陸前の準備:アドレスではなくデバイスを登録する

Googleのテスト広告のドキュメントには、サポートされた二つの方法がある。連携するフォーマットのデモ広告ユニットを使うか、実機をテストデバイスとして登録して自前のユニットを使う。どちらもプラットフォームごと、SDK世代ごとに文書化されており、Next-GenとLegacyのガイドは互換ではない。

登録はデバイス識別子であり、ネットワークアドレスとは何の関係もない。スマートフォンのトラフィックの出口を変えても何も登録されない。AndroidではSDKが識別子をログに記録し、あなたはコードでそれを適用する:

RequestConfiguration.Builder().setTestDeviceIds(Arrays.asList("YOUR_TEST_DEVICE_ID"))

ネットワークを変える前に登録を確認する。そうしないと、失敗したフィルと、一度も登録されていないデバイスに配信されたライブ広告を区別できない—広告にTest Adラベルが出ていればテスト在庫を通っており、出ていなければ別のものを見ているので触れてはいけない。

手順を固定した順序で実行する

ネットワーク以外はすべて一定に保つ。同じビルド、同じ広告ユニット、同じ配置、同じアプリ状態。二つの変数を変えたら何も学べない。

まずベースライン。 VPNを切断した状態で配置を読み込み、テスト広告が表示されることを確認する。logcatで adb logcat | grep -i ads を使ってリクエストを採取し、応答コードを記録する。ベースラインでのノーフィルはVPNの問題ではない。

次に接続して繰り返す。 同じビルド、同じユニット、同じ配置、VPNオン。同じログ行を採取する。探すのは差分であり、フィルがタイムアウトに変わる、リクエストが一切出ない、エラーコードが変わるといった変化だ。フィルのままなら、その経路で連携は問題なく、テストは終わりだ。

環境を記録する。 SDKバージョン、アダプタのバージョン、ビルド種別、広告フォーマット、出口の国、観測した結果。この記録がなければ、次の人は同じ実験をゼロからやり直し、同じ証拠から別の結論に達する。

メディエーションは別のテスト

メディエーション広告にはGoogleのTest Adラベルが付かないため、触れるべきでないものをクリックする最も簡単な場所になる。メディエーションスタックの各ネットワークには独自のテストモードと設定があり、Googleのテスト構成はそれらには及ばない。

アダプタを一つずつ、そのアダプタ自身のテストモードを有効にして確認し、どのネットワークが広告を配信したかをログで確かめる。どのアダプタがフィルしたのか、テストクリエイティブだったのかが分からないなら、そのインプレッションはライブ在庫として扱い、手を出さない。

無効トラフィックのポリシーが効いてくるのもここだ。自己クリック、繰り返しインプレッション、自動操作、欺瞞的トラフィックはいずれも対象であり、どうなるか見るための不確実なクリックは、まさにこれらの規則が描くパターンだ。

ロールバックとリリースゲート

テスト構成を出荷してはならない—リリースビルドの前に、デモ広告ユニットを本番ユニットに置き換え、テストデバイス一覧を削除し、開発専用のフラグをすべて消す。記憶を頼りにせず、リリース版でテスト識別子をgrepする。迷い込んだエントリは静かな失敗で、収益の欠落としてしか現れない。

次に逆方向を確認する。リリースビルドを登録済みのテストデバイスにインストールし、リクエストがテストトラフィックとして扱われなくなったことを確かめる—まだラベルが出るなら、構成のどこかが残っている。

その後も文書化したテスト経路を一つ残しておけば、次のネットワークの問いにライブ在庫へ触れずに答えられる。テスト広告はアカウントレポートに決して現れないので、きれいに分離してもレポートの正確さを損なわず、再現可能な診断が手に入る。

関連記事