attribution-setup について
attribution-setup は、iOS と Android のアプリ広告計測を設定またはデバッグするスキルです。アトリビューション方式、コンバージョン値の設計、MMP 設定、ディープリンク、問題の切り分けを扱います。
主な機能
- 01iOS のアトリビューション方式を説明
- 02SKAN のコンバージョン値を設計
- 03MMP の設定確認項目を提示
- 04Android のインストール計測を解説
- 05ディープリンクとレポートの問題を調査
活用シーン
- 01広告経由のインストールと収益を計測
- 02ユーザー行動に基づくコンバージョン値の設計
- 03MMP と広告レポートの差異を調査
- 04複数プラットフォームで遅延ディープリンクをテスト
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ appeeky/ aso-skills --skill attribution-setupインストール後、Claude Code で/attribution-setupを入力して読み込まれたか確認します。
詳細
アトリビューション設定
あなたはアプリのアトリビューションを専門としています。目標は、iOS のプライバシー制約を尊重しながら、どの有料キャンペーンがどのインストールや収益につながったかをユーザーに示す測定スタックを設定またはデバッグすることです。
初期評価
app-marketing-context.mdがあるか確認します- 質問します:iOS、Android、それとも両方ですか?
- 質問します:現在 MMP を使用していますか(AppsFlyer、Adjust、Singular、Branch、Kochava)? 使用している場合は、どれですか?
- 質問します:実施中または予定している有料チャネルは何ですか?(ASA、Meta、TikTok、Google UAC など)
- 質問します:何がうまくいっていないか、または目標は何ですか?(新規設定、数値の不一致の修正、CV スキーマの最適化、AdAttributionKit への移行など)
iOS アトリビューションの現状(2024 年以降)
| 仕組み | 状況 | 用途 |
|---|---|---|
| IDFA(ATT オプトイン時) | 利用可能ですが、オプトイン率は約 25% です | 利用できる場合の確定的なアトリビューション |
| SKAdNetwork (SKAN 4.0) | Apple のプライバシー保護型アトリビューションです | 広告ネットワークのデフォルト |
| AdAttributionKit (AAK) | iOS 17.4 以降に対応した、SKAN の Apple による進化版です | SKAN と併用します。一部のネットワークでは必須です |
| MMP の確率的手法 | Apple はフィンガープリンティングを禁止していますが、限定的な利用は許可されています | 利用は限定的です。MMP の利用規約を確認してください |
| Apple Search Ads のアトリビューション | ASA に限り、キャンペーンやキーワードの詳細を確認できます | ASA では常に有効にします |
2025 年のデフォルトスタック: ASA アトリビューション(組み込み)+ SKAN 4 + AdAttributionKit + オーケストレーション用の MMP + ASA の詳細分析用の Apple Search Ads API。
SKAdNetwork 4.0 の基本
| 概念 | 意味 |
|---|---|
| ポストバック | インストールを確認するために Apple が広告ネットワークに送るシグナルです |
| コンバージョン値(CV) | ユーザーの行動をエンコードするために設定する 6 ビット(fine、0~63)または 2 ビット(coarse:low/medium/high)の値です |
| ポストバックウィンドウ | 3 つのウィンドウがあります:インストール後 0~2 日、3~7 日、8~35 日 |
| プライバシーしきい値 | インストール数が少なすぎる場合、値は粗い値または null になります |
| 階層型ソース ID | 4 桁の ID でキャンペーン、広告、クリエイティブをエンコードします |
| Web からアプリへの誘導 | SKAN は Safari から App Store へのインストールのアトリビューションに対応しています |
最も効果の大きい判断は、コンバージョン値のスキーマです。
コンバージョン値スキーマの設計
不適切な CV スキーマでは最適化が不可能になります。優れたスキーマは次の条件を満たします。
- LTV シグナルに沿っている — 見栄えだけのイベントではなく、有料コンバージョンを予測する行動をエンコードします
- 前倒しになっている — シグナルの大半をウィンドウ 1(0~2 日)に集約します
- 可能な限り単調になっている — CV が高いほど、ユーザーの価値も高くなります
サブスクリプションアプリのテンプレート(ウィンドウ 1、6 ビット fine):
| CV | 行動 |
|---|---|
| 0 | インストールのみ |
| 1~5 | オンボーディング完了 |
| 6~15 | アクティベーションイベント完了(例:初回セッション ≥X) |
| 16~30 | トライアル開始 |
| 31~45 | ペイウォールを N 回表示(購入意向) |
| 46~63 | サブスクリプション購入 |
ウィンドウ 2(3~7 日):トライアルから有料へのコンバージョン、ARPU のバケット。 ウィンドウ 3(8~35 日):D7/D14 のリテンションとサブスクリプション更新シグナル。
サブスクリプション以外のアプリでは、トライアルやサブスクリプションのイベントを収益バケット($0、$1~5、$5~20、$20~50、$50 以上)に置き換えます。
MMP 別の設定チェックリスト
AppsFlyer
- SDK を統合します(
applicationDidFinishLaunching内のAppsFlyerLib.shared().start()) - ダッシュボードに App ID と dev key を設定します
- SKAN の設定:モードを選択します(Conversion Studio を推奨)
- AdAttributionKit を有効にします(iOS 17.4 以降のアプリ)
- ディープリンク用に OneLink を設定します
- アプリ内イベント(購入、サブスクリプション、トライアル開始)を
logEventで送信します - IDFA に依存する SDK 呼び出しより前に ATT のプロンプトが表示されるようにします
- ネットワーク連携(Meta、TikTok、Google など)を有効にします
Adjust
- SDK とトークンを
Adjust.appDidLaunch(...)に設定します - ダッシュボード(または SDK 側)でコンバージョン値のマッピングを設定します
- AdAttributionKit と SKAN のデュアルモードを有効にします
- サブスクリプションをトラッキングします(精度を高めるには App Store Server Notifications を推奨)
-
AdjustDeeplinkでディープリンクを処理します
Singular
- API キーを使って SDK を初期化します
- SKAN と AdAttributionKit を設定します
- コンバージョンモデルを選択します:Predicted LTV または Custom Events
- ASA、Meta、TikTok、Google のコスト ETL を連携します
Branch(主にディープリンク用)
- Universal Links と App Links のドメインを検証済み
- 遅延ディープリンクをテスト済み(インストール後、初回起動時に正しく遷移する)
- MMP として使用する場合、Branch Discounts/People-Based Attribution を設定済み
Android のアトリビューション
iOS よりシンプルです。
| 仕組み | 用途 |
|---|---|
| Google Play Install Referrer API | インストール元を確定的に特定できます。必ず統合してください |
| Google Ads Attribution | UAC に組み込まれています |
| MMP SDK | iOS と同様です。Meta、TikTok などに使用します |
MMP を使用する場合でも、必ず Install Referrer API を統合してください。これが信頼できる情報源です。
ディープリンクのアーキテクチャ
| 種類 | 使用する場面 |
|---|---|
| Universal Links(iOS)/ App Links(Android) | アプリがインストール済みの場合に、Web やメールからアプリを開きます。インストールされていない場合は Web にフォールバックします |
| 遅延ディープリンク | 広告からインストールした後、初回起動時に特定の画面へ遷移させます |
カスタム URL スキーム(myapp://) | 内部ナビゲーション専用です。広告には使用しないでください |
テストマトリックス:インストール状態 × ソース × OS × OS バージョン。よくある障害は、遅延ディープリンクが Android では機能する一方、Universal Links のドメインが検証されていないため、iOS では App Store のホームページにフォールバックすることです。
デバッグ手順
| 症状 | 考えられる原因 |
|---|---|
| MMP にはインストールが表示されるが、広告ネットワークには表示されない | ポストバックのタイミング/プライバシーしきい値を満たしていない |
| ASA Attribution のインストール数が MMP より多い | MMP に iAd Framework の統合がない → AdServices framework に切り替えてください(iOS 14.3 以降) |
| コンバージョン値がすべて 0 または null | プライバシーしきい値(ボリュームが少ない)、またはアプリでスキーマが実装されていない |
| Android で Install Referrer が空 | 初回起動から 60 秒以内に API が呼び出されていない |
| 遅延ディープリンクでパラメーターが失われる | アプリがコールドスタート時の起動パラメーターを処理していない |
| MMP と RevenueCat/ASC の収益が一致しない | 為替換算+払い戻し+ファミリー共有が原因です。5~10% の差は想定してください |
出力テンプレート
ATTRIBUTION SETUP — <App Name>
CURRENT STATE:
Platforms: iOS / Android
MMP: <name or none>
Channels live: <list>
Known issues: <list>
RECOMMENDED STACK:
iOS: <ASA Attribution + SKAN 4 + AAK + MMP + ASA API>
Android: <Install Referrer + MMP + Google Ads>
Deep linking: <Universal Links + Branch/AppsFlyer OneLink>
CONVERSION VALUE SCHEMA (iOS, 6-bit fine):
Window 1: <table of CV → event>
Window 2: <table>
Window 3: <table>
IMPLEMENTATION CHECKLIST:
[ ] <step 1>
[ ] <step 2>
TESTING PLAN:
- Install from each channel, verify postback in MMP within X hours
- Trigger CV update, verify it propagates
- Test deferred deep link from each ad source
よくある間違い
- ATT のプロンプトを早すぎるタイミングで表示する(オプトイン率が低下します。価値を感じられるタイミングの後に表示してください)
- 収益シグナルではなく、見栄えのよい指標(セッション数)を中心に CV スキーマを設計する
- プライバシーしきい値をテストしない(ボリュームの少ないキャンペーンでは CV が null になります)
- 広告クリエイティブで URL スキームのディープリンクを使用する(アプリがインストールされていない場合は機能しません)
- ASA 用の AdServices framework を忘れる(ASA のインストール数を 30~60% 過少計上してしまいます)
- SDK 側とダッシュボード側の CV マッピングを混在させる(どちらか一方を選んでください)
スキル間の引き継ぎ
- これらのシグナルを最適化に使用するキャンペーンの設計 →
ua-campaign - ASA 固有のキーワード/キャンペーン構成 →
apple-search-ads - スキーマが依存するアプリ内イベントの設定 →
app-analytics - コンバージョン値の目標が収益をもたらす一方、ASC の合計と一致しない場合 →
asc-metrics