ANTIGRAVITY LABEN
記事一覧/アプリ開発
アプリ開発/2026-06-19上級

ATT を取る前に広告SDKを初期化していた — 初回起動だけ eCPM が下がる順序の罠

iOS の AdMob メディエーションを4本のアプリへ広げたとき、初回セッションだけ広告収益が落ちる現象に気づきました。原因は ATT 許諾と MobileAds 初期化の順序です。順序が効く理由と、Antigravity にその順序を監査させた実装記録をまとめました。

antigravity375ios28admob12att2monetization12

プレミアム記事

AdMob メディエーションを iOS の4アプリに広げた直後、Firebase のダッシュボードで妙な段差を見つけました。日次の eCPM は安定しているのに、「セッション初回のインプレッション」だけ fill rate が一段低いのです。クラッシュもなく、広告は出ている。ただ、新規インストール直後の最初の1〜2枠だけ、明らかに単価の低い広告で埋まっていました。

原因にたどり着くまで数日かかりました。結論から書くと、ATT(App Tracking Transparency)の許諾ダイアログを出す前に広告SDKを初期化していた、という初期化順序の問題でした。コードはコンパイルも通るし、警告も出ません。だからこそ気づきにくい種類の不具合です。

この記事は、私が個人開発で運用している壁紙・ヒーリング系のアプリ群で実際に踏んだこの順序の罠を、なぜ効くのかという仕組みと、Antigravity に初期化シーケンスを監査させた手順とあわせて記録したものです。

初回セッションだけ収益が落ちる、という違和感

メディエーション構成では、各広告ネットワークが入札のために端末のシグナルを参照します。iOS で最も効くシグナルが IDFA(広告識別子)です。ATT で「トラッキングを許可」が得られた端末では IDFA が返り、得られない端末ではゼロ埋めの値になります。

ここで重要なのは、IDFA の値が「いつ確定するか」です。ATT の許諾結果が出る前に広告リクエストが走ると、その時点では IDFA がまだ取得できません。広告SDKは「トラッキング不可」とみなして入札を組み立てます。結果として、初回リクエストだけ非ターゲティング在庫に寄り、単価が落ちる。これが、私が見た「初回だけ fill rate が低い」の正体でした。

2回目以降のセッションでは、すでに ATT の結果が OS に記録されているため IDFA がすぐ返り、段差は消えます。だから日次平均では埋もれてしまい、セグメントを「初回 / 2回目以降」で割って初めて見える種類の劣化でした。

なぜ順序がそこまで効くのか

関係する4つの登場人物を、依存の向きで並べておきます。

要素役割初期化順序での位置
ATTrackingManagerトラッキング許諾を取り、IDFA の可否を決める最初
IDFA許諾後に確定する広告識別子ATT の結果に従属
GMA SDK(MobileAds)許諾結果を見て入札・配信を組むATT の
SKAdNetwork許諾に依らないアトリビューション経路SDK が自動処理

依存の向きは一方通行です。ATTrackingManager が結果を出す → IDFA が確定する → MobileAds がその状態で入札を組む。この順序が崩れると、MobileAds は「まだ何も決まっていない状態」で走り出します。

公式ドキュメントは「ATT のリクエストは広告をロードする前に」と書いていますが、実際にハマるのは「リクエストを出した直後」と「許諾が返った後」の区別です。requestTrackingAuthorization はコールバックで結果を返す非同期APIなので、呼び出した直後はまだ何も確定していません。許諾のコールバックの中で MobileAds を起動しないと、順序を守ったつもりでレースに負けます。私が最初に書いたコードは、まさにこの「呼んだ直後に MobileAds を起動する」形でした。

ここまでお読みいただきありがとうございます。

この記事の続きを読む

この先には、実装コードやベンチマーク結果など、実務でお役に立てる内容をご用意しています。このサイトは広告を掲載しておらず、サーバーや開発にかかる費用はメンバーの皆様のご支援で成り立っています。もしお役に立てていましたら、ご支援いただけますと大変ありがたいです。

この記事で得られること
初回起動だけ fill rate と eCPM が落ちる原因を、ATT・IDFA・MobileAds 初期化の順序という一点に絞って今日特定できる
ATTrackingManager と MobileAds.start の正しい順序を、レースを避ける完成形の Swift コードごと自分のアプリに移植できる
散らばった初期化呼び出しの順序チェックを Antigravity のエージェントに任せ、配信ポリシーの判断は人が握る線引きを持ち帰れる
Stripe による安全な決済 · いつでもキャンセル可能

この記事を購入する

この先の内容をすべてお読みいただけます。一度のご購入で、いつでも何度でもアクセスできます。このサイトは広告を掲載しておらず、皆さまのご支援がサーバー費用などの運営を支えています。

または
メンバーシップなら全記事が読み放題 →
シェア

お読みいただきありがとうございます

Antigravity Lab は広告なしで運営しており、サーバー費用などの運営コストはメンバーシップのご支援で賄っています。実装コード・ベンチマーク・本番設計パターンなど、実務でお役立ていただける記事を毎日更新しています。もし読んでよかったと感じていただけましたら、ぜひご覧ください。

  • コピー&ペーストで使える実装コード付き
  • 毎日新しい上級ガイドを追加
  • ¥580/月 または ¥1,480 の永久アクセス
メンバーシップを見る →

関連記事

アプリ開発2026-05-24
iOS Push 通知の A/B 運用を Antigravity Agent で週次回す — 文面・配信時刻・セグメントの自律改善ループ
個人開発で 12 年運用してきた壁紙系・癒し系アプリの実体験から、iOS Push 通知の A/B テストを Antigravity Agent に任せる週次運用設計を紹介します。FCM・Firebase Analytics・BigQuery を組み合わせ、文面とタイミングとセグメントを自動で回す具体実装と、私が踏んだ失敗まで含めて整理しました。
アプリ開発2026-03-27
Antigravity × AdMob 広告収益最適化ガイド — AI エージェントでモバイル広告実装を効率化する
Antigravity の AI エージェントを活用して Google AdMob のモバイル広告実装を効率化し、収益を最大化する方法を解説。広告フォーマット選定からウォーターフォール最適化、A/B テストまで実践的に紹介します。
連携・プラグイン2026-05-23
Antigravity × UMP・ATT 同意率最適化エージェント — 地域別の同意 UX を週次で改善し AdMob 収益を底上げする自律ループ設計
iOS の ATT と Google UMP の同意率は AdMob の eCPM を 1.3〜2.0 倍動かす隠れた変数です。Antigravity のサブエージェントに地域別の同意 UX 実験を週次で回させ、6 アプリの ARPDAU を持ち上げた実装メモを書きます。
📚RECOMMENDED BOOKS
大規模言語モデル入門
山田育矢
LLM開発
生成AIプロンプトエンジニアリング入門
我妻幸長
プロンプト
Claude CodeによるAI駆動開発入門
平川知秀
AI駆動開発
※ アフィリエイトリンクを含みます
もっと見る →