◉RORK LABEN
●GPT-6.1 SOL — Rork のモデルメニューに追加(09-29)。Low/Medium/High を選べ、Pro・Max に含まれます●SONNET 5.5 — UI づくりが得意で、Sonnet 5 より出力が速いモデルが選べます(09-28)●SDK 58 — Beta が 09/15 から。stable の案内はまだなく、Expo Go でのプロジェクト実行は 09/03 からログインが必要です●WIDGET — iOS のウィジェットが本番ビルドだけ真っ黒になる原因を追った報告が出ています●OBSERVE — EAS Observe がネイティブクラッシュも記録します(SDK 57.0.21 以降・10/07)●NEW — 起動広告が、背面から戻った回にしか出ていませんでした。「前面に戻った」合図が、…●GPT-6.1 SOL — Rork のモデルメニューに追加(09-29)。Low/Medium/High を選べ、Pro・Max に含まれます●SONNET 5.5 — UI づくりが得意で、Sonnet 5 より出力が速いモデルが選べます(09-28)●SDK 58 — Beta が 09/15 から。stable の案内はまだなく、Expo Go でのプロジェクト実行は 09/03 からログインが必要です●WIDGET — iOS のウィジェットが本番ビルドだけ真っ黒になる原因を追った報告が出ています●OBSERVE — EAS Observe がネイティブクラッシュも記録します(SDK 57.0.21 以降・10/07)●NEW — 起動広告が、背面から戻った回にしか出ていませんでした。「前面に戻った」合図が、…
記事一覧/開発ツール
⬡ 開発ツール/2026-04-21上級

Rork アプリの ATT 許可率を引き上げる実装パターン — iOS のトラッキング同意を広告収益につなげる

Rork で作った iOS アプリの App Tracking Transparency(ATT)許可率を高める実装パターンを、AdMob の広告収益を守る観点から具体的に解説します。purpose string の設計、呼び出しタイミング、プリパーミッション画面、cohort 別の効果計測、UMP(GDPR)との呼び出し順序、非パーソナライズ広告のフォールバックまで扱います。

Rork585ATT9App Tracking Transparency3AdMob73iOS115広告収益IDFA

✦ プレミアム記事

AdMob の iOS 収益レポートを眺めていて、「Android は伸びているのに iOS だけ eCPM が頭打ち」という経験をしたことはありませんか。私自身、広告で支える個人開発のアプリを長く運用してきましたが、iOS の売上が伸び悩むときの原因の多くは、App Tracking Transparency(ATT)の許可率が想像以上に低いことにありました。Apple の公式データや業界調査では、ATT の同意率は平均 25〜35% 程度と言われており、ここが広告収益の上限を直接決めてしまいます。

Rork で作ったアプリでも事情は同じです。むしろ、AI が生成したコードをそのまま使っていると、ATT ダイアログの呼び出しが雑だったり、そもそも適切なタイミングで表示されていないケースが目立ちます。ここでは Rork アプリで ATT の許可率を実践的に高める実装パターンを、広告配信戦略と効果計測までセットで整理していきます。コードを数行書くだけの話に見えて、実際には収益を左右する設計判断が詰まっている領域です。

そもそも ATT は何を制御しているのか

ATT は iOS 14.5 から必須化された仕組みで、アプリが IDFA(広告識別子)を使って他社アプリや Web サイト横断でユーザーを追跡する場合に、ユーザーに明示的な同意を求めるものです。ここで「許可しない」が選ばれると、IDFA はすべてゼロ埋め値(00000000-0000-0000-0000-000000000000)になり、AdMob や Meta Audience Network などの広告ネットワークが、行動データに基づいたパーソナライズ広告を配信できなくなります。

パーソナライズ広告と非パーソナライズ広告では eCPM に 2〜4 倍の差が出ることも珍しくありません。つまり、ATT 許可率を 30% から 60% に引き上げられれば、iOS の広告売上は 1.5 倍前後まで伸びる可能性があるわけです。逆に言えば、ここを放置したまま広告ユニットを増やしても、土台が漏れているバケツに水を足しているようなものになります。

Rork プロジェクトでの purpose string 設計

まず Info.plist 側の準備が必要です。Rork は内部的に Expo を使っているため、app.json の ios.infoPlist に NSUserTrackingUsageDescription を追加します。

{
  "expo": {
    "ios": {
      "infoPlist": {
        "NSUserTrackingUsageDescription": "広告の最適化と、あなたに合ったコンテンツのおすすめにのみ使用します。個人が特定される情報はどこにも送られません。"
      }
    }
  }
}

ここで一番大事なのは、説明文(purpose string)の中身です。Apple のヒューマンインターフェイスガイドラインでは、使い道が具体的であること、そしてユーザーが受けるメリットが伝わることを求めています。私は「追跡します」という単語を避け、「最適化」「おすすめ」という利用者視点の表現を使うようにしています。

もう一つ、地味ですが効くのが語順です。「〜のために使用します」と理由から始める文は、どうしても弁明のように読まれます。一方で「あなたに合った広告を表示するために」とユーザーが受け取る価値から始めると、同じ内容でも招き入れるような響きになります。短い一文でも、最初の数語をメリットから始めるだけで体感が変わる箇所です。

✦

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

この記事の続きを読む

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

この記事で得られること
✦ATT 許可率を 28% から 52% に引き上げたプリパーミッション画面の設計と、実機でしか再現しない呼び出しタイミングの調整
✦許可率を「測れる」状態にする cohort 計測の組み方と、UMP(GDPR 同意)と ATT を衝突させない呼び出し順序の実装
✦拒否ユーザーにも収益を残す非パーソナライズ広告フォールバックと、審査リジェクトを避ける purpose string の具体例
Stripe による安全な決済 · いつでもキャンセル可能
✦

この記事を購入する

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

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

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

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

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

関連記事

⬡ 開発ツール2026-04-26
Rork アプリで広告アトリビューションを正確に測る実装 — AppsFlyer・Adjust・SKAdNetwork 4.0・ATT 統合
Rork で作ったアプリに AppsFlyer / Adjust と SKAdNetwork 4.0 を組み込み、ATT 同意・ディープリンク・Conversion Value 設計まで一気通貫で実装する手順を、つまずきポイントとともに丁寧に解説します。
⬡ 開発ツール2026-04-24
Rork × AdMob UMP × ATT 同意管理の本番実装ガイド — グローバル配信で収益を落とさないための設計パターン
AdMobのUMPとATTをRorkアプリに正しく組み込み、GDPRに準拠しながら収益を落とさないための本番実装パターンです。3つの同意レイヤーと初期化順序、地域判定と分岐、同意状態のSDKへの伝播、設定画面からの撤回UI、詰まりやすい落とし穴6つを解説します。
⬡ 開発ツール2026-09-21
exit code 0 で止まるビルド — ログを黙らせていた設定と、空ファイルを通した存在チェック
eas build --local が exit code 0 but produced no further output で止まる件と、0 バイトのスタブが埋め込まれず dyld で落ちる件。どちらも原因は出力を減らす設定でした。自分のスクリプトを棚卸しする手順まで書き残します。