SKAdNetwork 4.0のマルチウィンドウアトリビューションはどのように機能しますか? SKAdNetwork 4.0は、アプリの初回起動後、0〜2日、3〜7日、8〜35日の3つの連続したウィンドウにコンバージョン計測を分割します。Appleはアプリのダウンロードごとにポストバックデータティアを割り当て、対象となるポストバックが詳細データ、粗いデータ、または削減されたアトリビューションデータのどれを開示するかを決定します。
SKAdNetwork 4.0は、iOS上でプライバシーに配慮したキャンペーン計測を可能にする、Appleのプライバシー保護型モバイル広告アトリビューションフレームワークです。初回起動後最大35日間にわたる3つの連続したコンバージョンウィンドウ、階層型ソース識別子、粗いコンバージョン値、およびウィンドウロックの仕組みを導入することで、永続的なデバイス識別子を収集することなく、ミドルファネルのユーザーライフタイムバリューを評価します。
| 用語 | 定義 |
|---|---|
| SKAdNetwork | プライバシーを保護しながら広告キャンペーンの効果測定を行うための、Appleのプラットフォームレベルのフレームワーク。 |
| コンバージョンウィンドウ | アプリの初回起動時に始まる3つの指定された計測期間のいずれか。この期間中に、広告が表示されたアプリはコンバージョン値を更新できます。 |
| ポストバックデータティア | ポストバックで返されるメタデータの粒度を制御する、プラットフォームによって割り当てられるティア(ティア0からティア3)。 |
| 粗いコンバージョン値 | 詳細なコンバージョンデータを利用できない場合や、後のコンバージョンウィンドウで開示される可能性のある3段階のコンバージョンシグナル(low、medium、high)。 |
一目でわかる:主なポストバックのタイムラインと開示ルール
- ウィンドウ1(初回起動後 0〜2日):詳細な値(0〜63)または粗い値(
low、medium、high)が開示される場合があります。追加で24〜48時間のランダムな遅延の後に送信されます。 - ウィンドウ2(初回起動後 3〜7日):ポストバックデータティアによって提供および許可されている場合、
coarse-conversion-valueが開示される場合があります。そうでない場合、そのフィールドは省略されます。追加で24〜144時間のランダムな遅延の後に送信されます。 - ウィンドウ3(初回起動後 8〜35日):ポストバックデータティアによって提供および許可されている場合、
coarse-conversion-valueが開示される場合があります。そうでない場合、そのフィールドは省略されます。追加で24〜144時間のランダムな遅延の後に送信されます。 - ティア0のデータ制約:ティア0に該当するダウンロードでは、2桁のソースIDとコンバージョン値を含まない単一のポストバックが送信されます。2回目および3回目のポストバックは省略されます。
- 複数ポストバックの要件:複数の有効なポストバックの対象となるには、SKAdNetwork 4以降を使用して広告が署名されており、かつ対象アプリが該当するコンバージョンウィンドウ中にコンバージョン値を更新している必要があります。
SKAdNetwork 4.0とは何か、そしてマルチウィンドウアトリビューションの動作原理
単一タイマーの制約からマルチウィンドウのライフサイクル追跡への構造的進化
AppleのStoreKit Ad Network(SKAdNetwork 2.0および3.0)の初期バージョンは、単一の24時間のローリングタイマーで動作していました。SKAdNetwork 3以前では、有効なコンバージョン値の増加アップデートによって24時間のタイマーがリセットされ、ローリングコンバージョン期間が延長される仕組みになっていました。更新がないまま24時間が経過するとウィンドウが閉じ、ランダムな遅延を経てAppleから単一のポストバックが送信されていました。
この単一タイマー構造には運用の非効率さがありました:
- 観察期間の制限:広告主は、インストール後の初期数日間に発生した早期エンゲージメントしか計測できませんでした。
- レポートの遅延:条件を満たすコンバージョン更新が繰り返されることで有効な計測期間が引き延ばされ、最終的なポストバックが遅れるため、自動広告入札アルゴリズムのスピードが低下していました。
- ロングテール可視性の制限:SKAdNetwork 3には、Day 7からDay 30にかけての構造化された計測を行うための専用の後半ウィンドウが存在しませんでした。
SKAdNetwork 4.0では、ユーザーのアプリ初回起動を基準とした3つの固定された連続計測ウィンドウを確立することで、このモデルを再構築しています。
アトリビューションタイマーとアクティブユーザーセッションの切り離し
SKAdNetwork 4.0では、コンバージョンウィンドウは継続的なユーザーアクティビティではなく、固定されたカレンダー上の期間に基づいて進行します。アトリビューション対象の広告インプレッションの後にアプリが初めて開かれると、オペレーティングシステムによってウィンドウ1が開始されます。
最初の48時間の間にユーザーがアプリを1回開こうと50回開こうと、ウィンドウ1は48時間の時点で終了します(ウィンドウロックによって早期に明示的に完了させない限り)。その後、システムは自動的にウィンドウ2(Day 3〜Day 7)、続いてウィンドウ3(Day 8〜Day 35)へと進みます。この切り離しにより、下流のデータパイプライン向けに構造化されたポストバック送信間隔が保証されます。
2段階の暗号署名チェーン
SKAdNetworkは、2つの異なるフェーズで公開鍵暗号を使用してデータの整合性を維持します:
- 広告インプレッション段階(広告ネットワークからAppleへ):広告ネットワークがインプレッションを配信する際、秘密鍵を使用して広告ペイロードに署名します。アプリのインストールと起動時に、オペレーティングシステムはこの署名をAppleに登録された広告ネットワークの公開鍵と照合し、アトリビューションの対象資格を検証します。
- インストール検証段階(Appleから広告ネットワーク/開発者へ):コンバージョンウィンドウが閉じると、Appleはインストール検証ポストバックのペイロードに署名します。受信側の広告ネットワークと開発者のエンドポイントは、Appleの公開鍵を使用してこの署名を検証し、ポストバックの信頼性と整合性を確かめます。
関連記事:SKAdNetwork ──> モバイルアトリビューションモデル
3つのポストバックウィンドウの仕組みと計測タイムライン
ウィンドウ1:初期エンゲージメントと高精度コンバージョンシグマルの捕捉
- 計測間隔:Day 0〜Day 2(初回起動後の最初の48時間)。
- 利用可能なデータ開示:割り当てられたポストバックデータティアに応じて、詳細なコンバージョン値(0から63までの6ビット整数)または粗い値(
low、medium、high)。 - ランダム化されたポストバック遅延:ウィンドウが閉じる、またはロックされてから24〜48時間。
- 分析目的:オンボーディングの早期完了、チュートリアルのマイルストーン、初回購入コンバージョン、および初期のチャーン(離脱)リスクの計測。
ウィンドウ2:早期のユーザー継続率とミドルファネルのマイルストーンの評価
- 計測間隔:初回起動後のDay 3〜Day 7(48時間目から168時間目)。
- 利用可能なデータ開示:ポストバックデータティアによって提供および許可されている場合、
coarse-conversion-value(low、medium、high)が開示される場合があります。そうでない場合、そのフィールドは省略されます。ウィンドウ2では詳細な値(0から63)はサポートされていません。 - ランダム化されたポストバック遅延:ウィンドウが閉じる、またはロックされてから24〜144時間(1〜6日)。
- 分析目的:Day 3からDay 7までの継続率、複数日にわたるエンゲージメントループ、初期のサブスクリプションお試し、およびリピート購入行動の評価。
ウィンドウ3:ロングテールの継続率と累積ライフタイムバリューの計測
- 計測間隔:初回起動後のDay 8〜Day 35(168時間目から840時間目)。
- 利用可能なデータ開示:ポストバックデータティアによって提供および許可されている場合、
coarse-conversion-value(low、medium、high)が開示される場合があります。そうでない場合、そのフィールドは省略されます。 - ランダム化されたポストバック遅延:ウィンドウが閉じる、またはロックされてから24〜144時間(1〜6日)。
- 分析目的:1ヶ月目の継続率ベンチマーク、お試しから有料サブスクリプションへのコンバージョン、およびロングテールの収益化マイルストーンの捕捉。

Ad Impression
│
▼
App Install
│
▼
First App Launch ← conversion measurement t = 0
│
├── Window 1: Day 0–2 after first launch
│ Fine or coarse disclosure
│ 24–48h randomized delay after close/lock
│
├── Window 2: Day 3–7 after first launch
│ Coarse disclosure only (or absent)
│ 24–144h randomized delay after close/lock
│
└── Window 3: Day 8–35 after first launch
Coarse disclosure only (or absent)
24–144h randomized delay after close/lock
ランダム化された遅延の仕組み:ウィンドウ1対ウィンドウ2および3
観察者がアプリ内トランザクションの正確なミリ秒とアトリビューションポストバックの受信を関連付けるタイミング攻撃のヒューリスティクスを防ぐため、Appleはランダム化された送信遅延を適用しています:
- ウィンドウ1のタイマー:ウィンドウ1が早期ロックなしで自然に終了した場合、最初のポストバックは追加で24〜48時間のランダムな遅延の後に送信されます。
- ウィンドウ2および3のタイマー:計測期間の延長に対応するため、Appleはランダムな遅延のウィンドウを24〜144時間(最大6日間)に拡大します。
ポストバックデータティアによる開示の制御
公式ポストバックデータティアのマトリックス
Appleは、ソースアプリやドメインに関連するクラウド、広告が表示されるアプリ、インストールの国、および階層型ソース識別子に基づいて、アプリのダウンロードにポストバックデータティア(ティア0からティア3)を割り当てます。Appleは、ティア0からティア3に対する一律のインストール数しきい値を公表していません。
| ポストバックデータティア | 1回目のポストバック(ウィンドウ1) | 2回目および3回目のポストバック(ウィンドウ2および3) |
|---|---|---|
| ティア3 | 2、3、または4桁のソースID + 詳細値(提供されている場合) + 対象となるソース/国のメタデータ | 2桁のソースID + 粗い値(提供されている場合) |
| ティア2 | 2、3、または4桁のソースID + 詳細値(提供されている場合) | 2桁のソースID + 粗い値(提供されている場合) |
| ティア1 | 2桁のソースID + 粗い値(提供されている場合) | 2桁のソースID + 粗い値(提供されている場合) |
| ティア0 | 2桁のソースIDのみ(コンバージョン値なし) | 2回目および3回目のポストバックは送信されません |

階層型ソース識別子の仕組み
ソース識別子の構造と粒度
SKAdNetwork 4.0では、従来の2桁のキャンペーンIDに代わり、ソース識別子と呼ばれる4桁の階層型整数が導入されています:
広告ネットワークと開発者は、社内のレポート要件に基づいて階層型ソース識別子の意味を定義します:
- 下位2桁(
):開示される可能性のある階層型ソース識別子の最小限の2桁部分を構成します。広告ネットワークはこの部分を幅広いキャンペーンのグループ化に使用できますが、Appleは固定されたビジネス上の意味を規定していません。 - 上位の桁(
):広告の配置場所、クリエイティブID、ターゲット地域などの内部ディメンションをエンコードできます。Appleは個々の桁に固定のビジネスセマンティクスを割り当てません。

Original Source Identifier: [ d4 ] [ d3 ] [ d2 ] [ d1 ]
Possible disclosed forms in first winning postback:
2-digit disclosure: [ d2 ] [ d1 ]
3-digit disclosure: [ d3 ][ d2 ] [ d1 ]
4-digit disclosure: [ d4 ][ d3 ][ d2 ] [ d1 ]
The exact number of digits disclosed depends on Apple's postback data tier.
キャンペーンの統合により、特定のソース識別子に関連付けられたクラウドを増やすことができますが、Appleは普遍的なインストールしきい値を公表しておらず、統合によって特定のポストバックデータティアが保証されるわけではありません。
詳細なコンバージョン値と粗いコンバージョン値
詳細なコンバージョン値
詳細なコンバージョン値は、0から63までの整数を表す6ビットのバイナリ数値として機能します(
粗いコンバージョン値
粗いコンバージョン値は、適用されるポストバックデータティアで詳細なデータの開示が許可されていない場合の低粒度の代替手段を提供し、2回目および3回目のポストバックのコンバージョン値フォーマットとして機能します。Appleはlow、medium、highに事前定義されたビジネスセマンティクスを割り当てません。以下の例は、アプリケーション固有のマッピングの例です:
low:ベースラインエンゲージメント(初回アプリ起動や登録など)の例示的マッピング。medium:中程度のエンゲージメント(チュートリアルの完了や複数日のアクティブセッションなど)の例示的マッピング。high:高価値のコンバージョンマイルストーン(アプリ内購入やトライアルアクティベーションなど)の例示的マッピング。
実装固有のコンバージョンロジックの設計については、SKANコンバージョンマッピングのドキュメントをご参照ください。
ポストバックシーケンスインデックスのマッピング
SKAdNetwork 4のポストバックでは、postback-sequence-indexフィールドに対応するコンバージョンウィンドウが示されます:
postback-sequence-index |
対応するコンバージョンウィンドウ | 許可されるコンバージョン値の形式 |
|---|---|---|
0 |
ウィンドウ1(初回起動後 0〜2日) | 詳細(0〜63)または粗い(low、medium、high) |
1 |
ウィンドウ2(初回起動後 3〜7日) | 粗い(low、medium、high)のみ(または省略) |
2 |
ウィンドウ3(初回起動後 8〜35日) | 粗い(low、medium、high)のみ(または省略) |
Appleの規定により、インストール検証ポストバックには、conversion-value(詳細)またはcoarse-conversion-value(粗い)のいずれかを含めることができますが、両方を同時に含めることはできません。
以下のペイロードは、SKAdNetwork 4の例です。実際のポストバックフィールドは、ポストバックシーケンス、ポストバックデータティア、広告タイプ、およびプライバシー開示の条件によって異なります。サンプル内のattribution-signatureの値はプレースホルダーであり、暗号学的に有効なものではありません。
以下の例1はウィンドウ1の詳細なポストバックペイロードを示し、例2はウィンドウ2の粗いポストバックペイロードを示しています:
{
"version": "4.0",
"ad-network-id": "example123.skadnetwork",
"source-identifier": "4821",
"app-id": 1234567890,
"transaction-id": "6a8b1c2d-3e4f-5a6b-7c8d-9e0f1a2b3c4d",
"postback-sequence-index": 0,
"conversion-value": 47,
"fidelity-type": 1,
"did-win": true,
"attribution-signature": "MEQCIFz8...SAMPLE_CRYPTOGRAPHIC_SIGNATURE...=="
}
{
"version": "4.0",
"ad-network-id": "example123.skadnetwork",
"source-identifier": "48",
"app-id": 1234567890,
"transaction-id": "6a8b1c2d-3e4f-5a6b-7c8d-9e0f1a2b3c4d",
"postback-sequence-index": 1,
"coarse-conversion-value": "high",
"fidelity-type": 1,
"did-win": true,
"attribution-signature": "MEQCIFz8...SAMPLE_CRYPTOGRAPHIC_SIGNATURE...=="
}
コンバージョンウィンドウを早期にロックすることのトレードオフ
lockWindowパラメータによる計測の迅速化
デフォルトでは、各計測ウィンドウはその全カレンダー期間(ウィンドウ1は48時間、ウィンドウ2は5日間、ウィンドウ3は28日間)開いたままになります。lockWindowがtrueの場合、その更新がアクティブなウィンドウの最終的なコンバージョン値の更新となります。システムはポストバックの準備を行い、そのウィンドウの残りの期間における追加のコンバージョン値の更新を無視します。

Default Window 1 (No Lock):
[First Launch] ─────────────── 48 Hours Open ───────────────► [Closes] ──► Delay (24-48h) ──► Postback 1
Locked Window 1 (Purchase at Hour 6):
[First Launch] ── 6h (Lock: true) ──► [Conversion Value Locked / Postback Prepared] ──► Delay (24-48h) ──► Postback 1 Sent Sooner
ウィンドウロックを呼び出す際の運用上の考慮事項
- ポストバック送信の迅速化:コンバージョンが早期に確定した場合、ポストバックの遅延は、完全なカレンダーウィンドウの経過を待つのではなく、ロックされたコンバージョンが確定した直後から始まります。
- ウィンドウの独立性:現在のウィンドウをロックしても、次のウィンドウの開始時間が前倒しになることはありません。次のコンバージョンウィンドウは、ウィンドウ1がいつロックされたかに関係なく、引き続き定義された時間境界で開始されます(例:ウィンドウ1のロック時期に関わらずウィンドウ2はDay 3に開始)。
- 後続イベントのロックアウト:一度
lockWindow: trueが実行されると、オペレーティングシステムはその特定のウィンドウの残りの期間における後続のコンバージョン値の更新呼び出しをすべて無視します。
以下のSwiftコードは、StoreKitを使用して詳細および粗いコンバージョン値を更新し、ウィンドウロックを呼び出す方法を示しています:
import Foundation
import StoreKit
enum SKANError: Error {
case invalidFineValue
case unsupportedOSVersion
}
final class SKAN4Manager {
static let shared = SKAN4Manager()
private init() {}
/// Updates conversion values and optionally locks the active SKAN 4.0 window
/// - Parameters:
/// - fineValue: 6-bit integer (0 to 63) for Window 1. Note: In Windows 2 and 3, SKAdNetwork ignores the fineValue parameter.
/// - coarseValue: Coarse value string ("low", "medium", "high") for all windows
/// - shouldLock: Boolean flag to immediately finalize the active window
func updateConversionState(
fineValue: Int,
coarseValue: SKAdNetwork.CoarseConversionValue,
shouldLock: Bool,
completion: ((Error?) -> Void)? = nil
) {
guard #available(iOS 16.1, *) else {
completion?(SKANError.unsupportedOSVersion)
return
}
// Validate fine-grained value bounds (0 to 63)
guard (0...63).contains(fineValue) else {
completion?(SKANError.invalidFineValue)
return
}
// Execute asynchronous SKAN 4.0 conversion update
SKAdNetwork.updatePostbackConversionValue(
fineValue,
coarseValue: coarseValue,
lockWindow: shouldLock
) { error in
if let error = error {
print("SKAN 4.0 update failed: \(error.localizedDescription)")
} else {
print("SKAN 4.0 update succeeded - Fine: \(fineValue), Coarse: \(coarseValue.rawValue), Locked: \(shouldLock)")
}
completion?(error)
}
}
/// Illustrative revenue mapping workflow (Do not copy specific thresholds directly to production)
/// Note: In production, determine the active conversion window and define window-specific coarse-value logic.
func handleInAppPurchase(amountUSD: Double) {
let fineVal: Int
let coarseVal: SKAdNetwork.CoarseConversionValue
let lock: Bool
switch amountUSD {
case 0.0..<5.0:
fineVal = 10
coarseVal = .low
lock = false
case 5.0..<25.0:
fineVal = 25
coarseVal = .medium
lock = false
case 25.0...:
fineVal = 60
coarseVal = .high
// Lock window immediately to expedite postback preparation for high-value conversion
lock = true
default:
fineVal = 0
coarseVal = .low
lock = false
}
updateConversionState(fineValue: fineVal, coarseValue: coarseVal, shouldLock: lock)
}
}
SKAdNetwork 4.0とAdAttributionKitの相互運用性
SKAdNetworkとApple AdAttributionKitの関係
AppleはiOS 17.4以降向けの拡張アトリビューションフレームワークとしてAdAttributionKitを導入しました。AdAttributionKitとSKAdNetworkは共存可能ですが、それぞれ異なるアトリビューションAPIです:
- フレームワーク固有のAPI呼び出し:アプリは、広告ネットワークが使用しているフレームワークに対応するコンバージョン更新APIを呼び出す必要があります。広告ネットワークがAdAttributionKit経由で広告を配信する場合はAdAttributionKitのコンバージョンメソッドを呼び出し、SKAdNetworkを使用する場合はStoreKit APIを呼び出します。
- クロスフレームワークでの勝者選定:両方のフレームワークが1回のインストールに対して条件を満たすインプレッションを記録した場合、オペレーティングシステムはそれらを評価し、アトリビューションのために単一の勝者インプレッションを選定します。
- ブリッジング動作:Appleは、計測レイヤー間の互換性を確保するため、特定のSKAdNetwork更新呼び出しに対してコンバージョン値のブリッジング動作を提供しています。
既存のApp Storeアトリビューション連携を運用する上ではSKAdNetwork 4が引き続き重要である一方、Appleは新しいアプリ広告の実装に向けてAdAttributionKitへの移行を推奨し、両フレームワーク間の相互運用性に関するドキュメントを提供しています。
比較マトリックス:従来のSKAN 3.0対SKAN 4.0マルチウィンドウモデル
| 機能ディメンション | 従来のSKAdNetwork 3.0 | SKAdNetwork 4.0 |
|---|---|---|
| 勝者ポストバックの数 | 1つのポストバック | 最大3つの勝者ポストバック |
| 計測タイムライン | 最新の条件を満たす増加アップデート後の24時間ローリングタイマー | 最大35日間(初回起動からの3つのウィンドウ) |
| ソースIDの構造 | 2桁の整数(00〜99) | 階層型4桁のソースID(2、3、または4桁) |
| コンバージョン値の粒度 | 6ビット整数(0〜63)のみ | 詳細(0〜63) + 粗い値(low、medium、high) |
| 早期確定 | サポートなし | ウィンドウロックAPI(lockWindow: true)によりサポート |
| Web-to-Appアトリビューション | サポートなし | Safariでのアトリビューション対象Web広告でサポート |
よくある質問(FAQ)
アプリケーションはウィンドウ2またはウィンドウ3で詳細なコンバージョン値を受け取ることができますか?
アプリケーションがポストバックウィンドウを早期にロックしない場合はどうなりますか?
SKAdNetwork 4.0にはApp Tracking Transparency(ATT)の許可プロンプトが必要ですか?
まとめと決定フレームワーク
SKAdNetwork 4.0は、アトリビューションの可視性を初回アプリ起動から35日間に拡張し、詳細な開示が利用できない場合に低粒度の計測を行うための粗いコンバージョン値を導入し、コンバージョンウィンドウが早期に確定した際にポストバックのレイテンシを削減するためのウィンドウロックを開発者に提供します。正常に実装するには、3つのウィンドウすべてにわたる慎重なコンバージョンロジックのマッピングと、クライアント側の更新呼び出しと実際のビジネス上のマイルストーンとの整合性が求められます。
アプリレベルのディープリンクによるルーティングは、個別の計測およびオンボーディングレイヤーとして、Appleのプライバシー保護型アトリビューションフレームワークと並行して動作させることができます。実装固有のディープリンクによるルーティングおよびアトリビューションワークフローについては、OpoInstallのドキュメントをご参照ください。
関連資料
-
概念:マルチウィンドウアトリビューション、ポストバックデータティア、階層型ソース識別子、ウィンドウロック、粗い値
-
技術:Apple SKAdNetwork、Apple AdAttributionKit、StoreKit Framework、OpoInstall Mobile SDK
-
標準:IETF RFC 8259 JSON Specification
-
API:StoreKit
updatePostbackConversionValueAPI、SKAdNetworkインストール検証ポストバック
公式ドキュメント
Share this article



