ほとんどの広告主は、複数の広告ネットワークを利用して、複数のパブリッシャー アプリに広告を配信しています。広告ネットワークが独自のアトリビューション ソースとトリガーを API に登録すると、自己アトリビューション型のイベント レポートと概要レポートを受け取ります。
ただし、サードパーティを使用してクロスネットワーク アトリビューション(XNA)を行い、特定のコンバージョンを獲得した広告を 1 つ特定する場合は、次の手法を使用して引き続き行うことができます。
- 自社サーバーをセットアップしてトリガー イベントを登録し、API からアトリビューション レポートを受信する
- 既存のモバイル測定パートナーを引き続き使用する
広告主が使用する手法にかかわらず、Attribution Reporting API は、サードパーティが広告主に代わって XNA ロジックをカスタマイズできるようにするさまざまな機能をサポートします。
- サードパーティは、API を使用して、広告ネットワークからのリダイレクトを使用または使用せずにアトリビューションを実行できます。
- 優先度、フィルタ、重複除去キーを使用すると、ソースとトリガーのディメンションに基づいてアトリビューションをさらにカスタマイズできます。
- インストール後のアトリビューション期間を指定すると、インストールの要因となったソースが、その後のアプリ内コンバージョン イベントに対して引き続きクレジットを獲得できるようになります。
広告テクノロジーがクロスネットワークの重複除去と獲得ソースの選択に使用するアトリビューション モデルの複雑さは、これらの API 機能の活用方法に応じてさまざまです。
以下では、これらの機能の使用例のシナリオを示しています。また、特定のトリガー イベントに関して最終的にどのアトリビューション リソースがクレジットを獲得するかに対して、設定の違いがどのように影響するかについても説明します。
手順
次のリストは、XNA プロセスの概要を示しています。わかりやすくするため、ここで説明する手順では、広告主が配信広告テクノロジーを使用して広告を配信し、コンバージョン測定に MMP を使用するモデルを想定しています。ただし、API の設計には柔軟性があります。広告テクノロジーの種類によって機能に違いはなく、広告テクノロジーを使用する必要もありません。
- ソースの登録: ユーザーが広告を表示またはクリックすると、配信広告テクノロジーがこれらのソースを API に登録します。配信広告テクノロジーは、API に直接ソースを登録できる他の広告テクノロジーにリダイレクトすることも、リダイレクトなしのクロスネットワーク アトリビューションを有効にすることもできます。
- トリガーの登録: ユーザーがコンバージョン関連のアクション(アプリの初回起動、購入、カートに追加など)を行うと、MMP はトリガーを API に登録します。MMP は、API に直接トリガーを登録できる他の広告テクノロジーにリダイレクトすることもできます。MMP でリダイレクトなしのクロスネットワーク アトリビューションを有効にする必要がある場合は、トリガーの登録時にアトリビューション構成を指定する必要があります。
- アトリビューション: トリガーの登録時にアトリビューション構成が指定される場合、MMP に代わって派生ソースが生成されます。各トリガーは、MMP によって直接登録された有効なソース、または配信広告テクノロジーのソースを使用して MMP に代わって生成された有効な派生ソースのいずれかとの照合が試行されます。アトリビューションを獲得できなかった残りのソースは破棄され、今後のコンバージョンのアトリビューションを獲得できなくなります。またこれは、ドキュメントの他の部分では「1 回負ければ、常に負ける」と表現されることもあります。
- 派生ソースがアトリビューションを獲得できなかった場合、MMP によって今後のコンバージョン イベントが登録される際に、API はその元のソースに基づいてその後の派生ソースを生成しなくなります。配信広告テクノロジーと他の MMP は、将来のアトリビューションに引き続き元のソースを使用できます。詳しくは、シナリオ 6 をご覧ください。
- レポートの生成: アトリビューションにより、イベント レポートまたは集計レポートが生成されます。派生ソースに対して生成されるのは集計レポートのみです。
- レポートの配信: 生成されたレポートの配信がスケジュールされます。
シナリオ 1: リダイレクトを使用したクロス ネットワーク アトリビューション
ある広告主が 2 つの配信広告テクノロジーと 1 つの MMP を使用しているとします。配信広告テクノロジーによって配信された広告がクリックされると、配信広告テクノロジーはソース登録時に MMP にリダイレクトします。ユーザーがアプリ内でコンバージョンに至ると、MMP はトリガー登録時に広告テクノロジーにリダイレクトします。
MMP はクロスネットワークの重複除去レポートを受け取り、各配信広告テクノロジーは自己アトリビューション レポートを受け取ります。
登録のタイムライン
t0 で、ユーザーが ad-tech1 により配信された広告をクリックします。ad-tech1 によってソース Source1 が登録され、mmp-ad-tech によってそのリダイレクト Source2 が登録されます。
"Attribution-Reporting-Register-Source": {
"source_event_id": "34532",
"web_destination": "https://destination.example.com",
"priority": "10",
"expiry": "172800",
"aggregation_keys": {
"campaignCounts": "0x1"
}
},
"Attribution-Reporting-Redirect": [
"https://www.mmp-ad-tech.com/source2"
]
// Registered by mmp-ad-tech via redirects
"Attribution-Reporting-Register-Source": {
"source_event_id": "788324",
"web_destination": "https://destination.example.com",
"priority": "30",
"expiry": "172800",
"aggregation_keys": {
"campaignCounts": "0x2",
"geoValue": "0x102"
}
}
t1 で、ユーザーが ad-tech2 により配信された広告をクリックすると、Source3 が登録され、同時に mmp-ad-tech へのリダイレクト(Source4)も登録されます。
"Attribution-Reporting-Register-Source": {
"source_event_id": "6574435",
"web_destination": "https://destination.example.com",
"priority": "10",
"expiry": "172800",
"aggregation_keys": {
"campaignCounts": "0x3"
}
},
"Attribution-Reporting-Redirect": [
"https://www.mmp-ad-tech.com/source"
]
// Registered by mmp-ad-tech via redirects
"Attribution-Reporting-Register-Source": {
"source_event_id": "4532343",
"web_destination": "https://destination.example.com",
"priority": "20",
"expiry": "172800",
"aggregation_keys": {
"campaignCounts": "0x4"
}
}
t2 で、広告主のアプリでのユーザーによるアクションまたはコンバージョンが発生すると、mmp-ad-tech によってトリガーが登録されます(Trigger1)。また、ad-tech1(Trigger2)と ad-tech2(Trigger3)へのリダイレクトも登録されます。
未定義
結果
mmp-ad-tech が登録したソース Source2 と Source4 は、mmp-ad-tech が登録したトリガー Trigger1 のアトリビューションで競合します。Source2 は Source4 より優先度が高いため、Source2 が獲得します。ad-tech1 の Trigger2 は、ad-tech1 によって Source1 に割り振られ、ad-tech2 の Trigger3 は、ad-tech2 の Source3 に割り振られます。
競合ソース:
フィールド |
Source1 |
Source2 |
Source3 |
Source4 |
ソースを登録した広告テクノロジー |
ad-tech1 |
mmp-ad-tech |
ad-tech2 |
mmp-ad-tech |
source_event_id |
34532 |
788324 |
6574435 |
4532343 |
リンク先 |
https://destination.example.com |
https://destination.example.com |
https://destination.example.com |
https://destination.example.com |
優先度 |
10 |
30 |
10 |
20 |
登録されたトリガー
アトリビューションの結果
Trigger1 は Source2 に、Trigger2 は Source1 に、Trigger3 は Source3 に割り振られます。
アトリビューション後に無視されるソース
Source4 - 今後はアトリビューションで競合しません。
イベント レポート
レポート URL: https://www.mmp-ad-tech.com/.well-known/attribution-reporting/report-event-attribution
{
"attribution_destination": "https://destination.example.com",
"scheduled_report_time": "800176400",
"source_event_id": "788324",
"trigger_data": "1",
"source_type": "navigation",
"randomized_trigger_rate": 0.0024263
}
レポート URL: https://www.ad-tech1.com/.well-known/attribution-reporting/report-event-attribution
{
"attribution_destination": "https://destination.example.com",
"scheduled_report_time": "800176400",
"source_event_id": "34532",
"trigger_data": "2",
"source_type": "navigation",
"randomized_trigger_rate": 0.0024263
}
レポート URL: https://www.ad-tech2.com/.well-known/attribution-reporting/report-event-attribution
{
"attribution_destination": "https://destination.example.com",
"scheduled_report_time": "800176400",
"source_event_id": "6574435",
"trigger_data": "3",
"source_type": "navigation",
"randomized_trigger_rate": 0.0024263
}
集計レポート
レポート URL: https://www.mmp-ad-tech.com/.well-known/attribution-reporting/report-aggregate-attribution
{
"attribution_destination": "https://destination.example.com",
"histograms": [
{
"key": "0x104",
"value": 11
}
]
}
レポート URL: https://www.ad-tech1.com/.well-known/attribution-reporting/report-aggregate-attribution
{
"attribution_destination": "https://destination.example.com",
"histograms": [
{
"key": "0x201",
"value": 21
}
]
}
レポート URL: https://www.ad-tech2.com/.well-known/attribution-reporting/report-aggregate-attribution
{
"attribution_destination": "https://destination.example.com",
"histograms": [
{
"key": "0x303",
"value": 31
}
]
}
シナリオ 2: リダイレクトなしのクロスネットワーク アトリビューション
ある広告主が 2 つの配信広告テクノロジーと 1 つの MMP を使用しているとします。ユーザーが 1 番目の配信広告テクノロジーによる広告をクリックすると、ソース登録時に MMP にリダイレクトします。ユーザーが 2 番目の配信広告テクノロジーによる広告をクリックした際には、広告テクノロジーはリダイレクトしません。事前に選択しているとおり、集計キーのサブセットを MMP と共有します。
次に、ユーザーがアプリでコンバージョンに至ります。このアプリでは MMP がトリガーを登録しますが、どちらの広告テクノロジーにもリダイレクトしません。このリダイレクトしない広告テクノロジーが、ラストタッチ アトリビューションを獲得します。MMP のみに、このコンバージョンを含むクロスネットワークの重複除去概要レポートが送信されます。
登録のタイムライン
t0 でユーザーが広告をクリックし、ad-tech1 によって Source1 が登録されます。また、ad-tech1 からリダイレクトされて、mmp-ad-tech によって Source2 が登録されます。
"Attribution-Reporting-Register-Source": {
"source_event_id": "234543",
"web_destination": "https://destination.example.com",
"priority": "20",
"expiry": "172801",
"aggregation_keys": {
"campaignCounts": "0x159"
}
},
"Attribution-Reporting-Redirect": [
"http://www.mmp-ad-tech.com"
]
// Registered by mmp-ad-tech via redirect
"Attribution-Reporting-Register-Source": {
"source_event_id": "45453",
"web_destination": "https://destination.example.com",
"priority": "100",
"expiry": "172801",
"aggregation_keys": {
"campaignCounts": "0x159",
"geoValue": "0x5",
}
}
t1 でユーザーが別の広告をクリックすると、集計キーを共有する ad-tech2 によって Source3 が登録されます。
// Registered by ad-tech2
"Attribution-Reporting-Register-Source": {
"source_event_id": "978",
"web_destination": "https://destination.example.com",
"priority": "20",
"expiry": "172801",
"aggregation_keys": {
"campaignCounts": "0x159",
"geoValue": "0x5"
},
"shared_aggregation_keys": [
"campaignCounts"
]
}
t2 で、ユーザーのアクション / コンバージョンが発生すると、mmp-ad-tech によってトリガー登録が行われます。mmp-ad-tech には、ad-tech2 のアトリビューション構成が含まれています。
"Attribution-Reporting-Register-Trigger": {
"event_trigger_data": [
{
"trigger_data": "2",
"priority": "101"
}
],
"aggregatable_trigger_data": [
{
"key_piece": "0x400",
"source_keys": [
"campaignCounts"
],
"x_network_data": {
"key_offset": 10
}
}
],
"aggregatable_values": {
"campaignCounts": 32768
},
"attribution_config": [
{
"source_network": "enrollment-id-ad-tech-2",
"source_priority_range": {
"start": 1,
"end": 1000
},
"priority": "200",
"expiry": "172800"
}
],
"x_network_key_mapping": {
"enrollment-id-ad-tech-2": "0x4"
}
}
結果
Source2 はトリガーと登録およびリンク先を照合するため、アトリビューションの競合ソースになります。さらに、トリガーの登録時に、ad-tech2 の共有集計キーを介して、ad-tech2 と Source3 のアトリビューション構成が指定されました。これにより、派生ソース Source3' をアトリビューションの競合ソースとして生成できます。
競合するソース
フィールド |
Source2 |
Source3' |
元のソースを登録した広告テクノロジー |
mmp-ad-tech |
ad-tech2 |
source_event_id |
45453 |
978 |
優先度 |
100 |
200 |
登録されたトリガー
mmp-ad-tech による Trigger1
アトリビューションの結果
Source3' は Source2 よりも優先度が高いため、Trigger1 は Source3' に割り振られます。
アトリビューション後に無視されるソース
Source2
イベント レポート
なし - 派生ソースにはイベント レポートは生成されません。
集計レポート
Source3' の親ソース、すなわち Source3 は campaignCounts
のみを共有しています。トリガーのキーピースは次のように計算されます。
(key_piece value) | ((x_network_key_mapping entry) << offset)
0x400 | (0x4 << 10) = 0x1400
最後に、結果のキーは、トリガーキー(0x1400)とソースキー(0x159)を OR 結合することによって生成されます(つまり 0x1559)。
レポート URL: http://www.mmp-ad-tech.com/.well-known/attribution-reporting/report-aggregate-attribution
{
"attribution_destination": "https://destination.example.com",
"histograms": [
{
"key": "0x1559",
"value": 32768
}
]
}
シナリオ 3: 同じ登録チェーン内の MMP が登録したソースと派生ソースの親候補
ある広告主が 2 つの配信広告テクノロジーと 1 つの MMP を使用しているとします。ユーザーが 1 番目の配信広告テクノロジーによる広告をクリックします。広告テクノロジーはソース登録時にリダイレクトしませんが、集計キーを MMP と共有します。ユーザーが 2 番目の配信広告テクノロジーによる広告をクリックすると、ソース登録時に MMP にリダイレクトし、さらに MMP と集計キーを共有します。
登録のタイムライン
t0 で、ad-tech1 により配信された広告をユーザーがクリックすると、Source1 の登録が開始されます。
"Attribution-Reporting-Register-Source": {
"source_event_id": "52343",
"web_destination": "https://destination.example.com",
"priority": "20",
"expiry": "172800",
"aggregation_keys": {
"campaignCounts": "0x159",
"geoValue": "0x5"
},
"shared_aggregation_keys": [
"campaignCounts",
"geoValue"
]
}
t1 の登録チェーン 2 で、ad-tech2 が Source2 を登録し、リダイレクトして MMP ソースである Source3 を登録します。
"source_event_id": "234456",
"web_destination": "https://destination.example.com",
"priority": "20",
"expiry": "172801",
"aggregation_keys": {
"campaignCounts": "0x159"
},
"shared_aggregation_keys": [
"campaignCounts"
]
},
"Attribution-Reporting-Redirect": [
"http://www.mmp-ad-tech.com"
]
"Attribution-Reporting-Register-Source": {
"source_event_id": "4234",
"web_destination": "https://destination.example.com",
"priority": "100",
"expiry": "172800",
"aggregation_keys": {
"campaignCounts": "0x159"
}
}
t2 のトリガー登録では、ad-tech1 と ad-tech2 から派生ソースを生成するようにアトリビューションが構成されます。
"Attribution-Reporting-Register-Trigger": {
"event_trigger_data": [
{
"trigger_data": "2",
"priority": "101"
}
],
"aggregatable_trigger_data": [
{
"key_piece": "0x400",
"source_keys": [
"campaignCounts"
],
"x_network_data" : {
"key_offset" : 10
}
}
],
"aggregatable_values": {
"campaignCounts": 32768,
"geoValue": 1664
},
"attribution_config": [
{
"source_network": "enrollment-id-ad-tech-1",
"source_priority_range": {
"start": 1,
"end": 1000
},
"priority": "20",
"expiry": "172800"
},
{
"source_network": "enrollment-id-ad-tech-2",
"source_priority_range": {
"start": 1,
"end": 1000
},
"priority": "20",
"expiry": "172800"
}
],
"x_network_key_mapping" : {
"enrollment-id-ad-tech-1" : "0x2",
"enrollment-id-ad-tech-2" : "0x4"
}
}
その結果、2 番目の登録チェーンで MMP により登録されたソースがアトリビューションを獲得します。集計レポートは次のようになります。
結果
Source2(「source_event_id": "234456
」)からの派生ソースはアトリビューションに参加しません。その理由は、同じ登録チェーンに mmp-ad-tech により登録されたソースがあるためです。
競合するソース
フィールド |
Source1' |
Source3 |
元のソースを登録した広告テクノロジー |
ad-tech1 |
mmp-ad-tech |
source_event_id |
52343 |
4234 |
優先度 |
20 |
100 |
登録されたトリガー
mmp-ad-tech による Trigger1
アトリビューションの結果
Source3 は Source1' よりも優先度が高いため、Trigger1 は Source3 に割り振られます。
アトリビューション後に無視されるソース
Source1' - Source1 は、mmp-ad-tech の派生ソースを作成すると見なされなくなります。
イベント レポート
レポート URL: https://www.ad-tech1.com/.well-known/attribution-reporting/report-event-attribution
{
"attribution_destination": "https://destination.example.com",
"scheduled_report_time": "800176400",
"source_event_id": "4234",
"trigger_data": "2",
"source_type": "navigation",
"randomized_trigger_rate": 0.0024263
}
集計レポート
レポート URL: http://www.mmp-ad-tech.com/.well-known/attribution-reporting/report-aggregate-attribution
{
"report_url": "http://www.mmp-example.com",
"payload": {
"attribution_destination": "https://destination.example.com",
"histograms": [
{
"key": "0x559"
"value": 32768
}
]
}
}
シナリオ 4: リダイレクトなしのクロス ネットワーク アトリビューション(ソース選択の基準あり)
ある広告主が 4 つの配信広告テクノロジーと 1 つの MMP を使用しているとします。ユーザーが 1 つの配信広告テクノロジーによる広告をクリックし、その他の 3 つの配信広告テクノロジーによる広告を表示したとします。ユーザーが広告主のアプリでコンバージョンに至ると、MMP はトリガーを登録し、次のフィルタに基づいて、どの配信広告テクノロジーにより登録されたソースから派生ソースを作成するかを指定します。
- priority_range: 指定した範囲内の優先値を持つソースを選択します
- expiry: 有効期限が指定された期間より後のソースを選択します
- source_filters: filter_data が指定された source_filters と一致するソースを選択します
- source_not_filters: not_filters が指定された source_not_filters と一致するソースを選択します
条件に基づいて派生ソースが生成されると、それはアトリビューション参加の対象になります。
登録タイムライン
t0 で、ユーザーがクリックすると、ad-tech1 はソース Source1 を登録します。これにより、この登録されたソースへのナビゲーションとして source_type が関連付けられます。
"Attribution-Reporting-Register-Source": {
"source_event_id": "87456",
"web_destination": "https://destination.example.com",
"priority": "20",
"expiry": "172801",
"filter_data": {
"filter1": [
"does_not_matter"
],
"filter2": [
"non-match"
]
},
"aggregation_keys": {
"campaignCounts": "0x119",
"geoValue": "0x5"
},
"shared_aggregation_keys": [
"campaignCounts",
"geoValue"
]
}
t1 で、ユーザーが広告を表示すると、ad-tech2 がソース Source2 を登録します。これにより、この登録されたソースにイベントとして source_type が関連付けられます。
"Attribution-Reporting-Register-Source": {
"source_event_id": "9078",
"web_destination": "https://destination.example.com",
"priority": "2000",
"expiry": "172801",
"filter_data": {
"filter1": [
"does_not_matter"
],
"filter2": [
"match"
]
},
"aggregation_keys": {
"campaignCounts": "0x129",
"geoValue": "0x5"
},
"shared_aggregation_keys": [
"campaignCounts",
"geoValue"
]
}
t2 では、ユーザービューにより、ad-tech3 がソース Source3 を登録します。これにより、この登録されたソースにイベントとして source_type が関連付けられます。
"Attribution-Reporting-Register-Source": {
"source_event_id": "2413",
"web_destination": "https://destination.example.com",
"priority": "20",
"filter_data": {
"filter1": [
"non-match"
],
"filter2": [
"non-match"
]
},
"aggregation_keys": {
"campaignCounts": "0x159",
"geoValue": "0x5"
},
"shared_aggregation_keys": [
"campaignCounts",
"geoValue"
]
}
t3 では、ユーザービューにより、ad-tech4 がソース Source4 を登録します。これにより、この登録されたソースにイベントとして source_type が関連付けられます。
"Attribution-Reporting-Register-Source": {
"source_event_id": "7567",
"web_destination": "https://destination.example.com",
"priority": "20",
"filter_data": {
"filter1": [
"match"
],
"filter2": [
"match"
]
},
"aggregation_keys": {
"campaignCounts": "0x169",
"geoValue": "0x5"
},
"shared_aggregation_keys": [
"campaignCounts",
"geoValue"
]
}
t4 で、ユーザーがコンバージョンに至ると、上記の他のすべての広告テクノロジーにより登録されたソースに、mmp-ad-tech がアトリビューション構成を指定して、トリガーを登録します。
"Attribution-Reporting-Register-Trigger": {
"event_trigger_data": [
{
"trigger_data": "2",
"priority": "100"
}
],
"aggregatable_trigger_data": [
{
"key_piece": "0x400",
"source_keys": [
"campaignCounts"
]
}
],
"aggregatable_values": {
"campaignCounts": 32768,
"geoValue": 1664
},
"attribution_config": [
{
"source_network": "enrollment-id-ad-tech-1",
"source_priority_range": {
"start": 1,
"end": 100
},
"source_filters": {
"source_type": [
"event"
]
},
"priority": "100",
"expiry": "172801"
},
{
"source_network": "enrollment-id-ad-tech-2",
"source_priority_range": {
"start": 1,
"end": 1000
},
"source_filters": {
"source_type": [
"navigation"
]
},
"priority": "100",
"expiry": "172801"
},
{
"source_network": "enrollment-id-ad-tech-3",
"source_priority_range": {
"start": 1,
"end": 1000
},
"source_filters": {
"source_type": [
"navigation"
],
"filter1": [
"match"
],
"filter2": [
"match"
]
},
"priority": "50",
"expiry": "172801"
},
{
"source_network": "enrollment-id-ad-tech-4",
"source_priority_range": {
"start": 1,
"end": 1000
},
"source_filters": {
"source_type": [
"navigation"
],
"filter1": [
"match"
],
"filter2": [
"match"
]
},
"priority": "30",
"expiry": "172801"
}
],
"x_network_key_mapping": {
"enrollment-id-ad-tech-1": "0x1",
"enrollment-id-ad-tech-2": "0x2",
"enrollment-id-ad-tech-3": "0x3",
"enrollment-id-ad-tech-4": "0x4"
}
}
結果
次のソースは、条件が一致しないため、派生ソースの生成対象とみなされません。
- Source1 は、ad-tech1 のアトリビューション構成の「
source_type":"event
」フィルタを満たしていません - Source2 の優先度は 2000 に設定されていますが、これは ad-tech2 の優先度範囲フィルタ(1,1000)外です
- Source3 は「
filter2
」の値と一致しません
競合するソース
フィールド |
Source4' |
元のソースを登録した広告テクノロジー |
ad-tech4 |
source_event_id |
7567 |
リンク先 |
https://destination.example.com |
優先度 |
30 |
期限 |
登録期間 + 2 日 |
登録されたトリガー
mmp-ad-tech による Trigger1
アトリビューションの結果
Source4' のみがアトリビューションの対象となるソースであるため、Trigger1 は Source4' に割り振られます。
アトリビューション後に無視されるソース
なし
イベント レポート
なし - 獲得した派生ソースにはイベント レポートは生成されません
集計レポート
レポート URL: http://www.mmp-ad-tech.com
{
"attribution_destination": "https://example.com",
"histograms": [
{
"key": "0x56d",
"value": 32768
},
{
"key": "0x5",
"value": 1664
}
]
}
シナリオ 5: インストール後のアトリビューション
ある広告主が 2 つの配信広告テクノロジーと 1 つの MMP を使用しているとします。ユーザーが 1 番目の広告テクノロジーによる広告をクリックして、広告主のアプリをインストールします。インストール後のコンバージョンのアトリビューションでは、インストール アトリビューションを含む派生ソースが獲得します。たとえ、他のソースの方が優先順位が高い場合でも同じです。
登録タイムライン
t0 で、ユーザー操作により ad-tech1 が Source1 を登録します。
"Attribution-Reporting-Register-Source": {
"source_event_id": "3645",
"destination": "android-app://com.example.app",
"priority": "20",
"expiry": "172801",
"install_attribution_window": "86400",
"post_install_exclusivity_window": "864000",
"aggregation_keys": {
"campaignCounts": "0x119",
"geoValue": "0x5"
},
"shared_aggregation_keys": [
"campaignCounts",
"geoValue"
]
}
t1 で、ユーザーがデバイスにアプリ com.example.app
をインストールします。
t2 で、ユーザー操作により ad-tech2 が Source2 を登録します。
"Attribution-Reporting-Register-Source": {
"source_event_id": "345789",
"destination": "android-app://com.example.app",
"priority": "100",
"aggregation_keys": {
"campaignCounts": "0x159",
"geoValue": "0x5"
},
"shared_aggregation_keys": [
"campaignCounts",
"geoValue"
]
}
t3 で、mmp-ad-tech によって、アトリビューション構成を指定して、ad-tech1 と ad-tech2 のトリガーが登録されます。
"Attribution-Reporting-Register-Trigger": {
"event_trigger_data": [
{
"trigger_data": "2",
"priority": "100"
}
],
"aggregatable_trigger_data": [
{
"key_piece": "0x400",
"source_keys": [
"campaignCounts"
]
}
],
"aggregatable_values": {
"campaignCounts": 32768,
"geoValue": 1664
},
"attribution_config": [
{
"source_network": "enrollment-id-ad-tech-1",
"priority": "10",
"expiry": "172801",
"post_install_exclusivity_window": "172800"
},
{
"source_network": "enrollment-id-ad-tech-2",
"priority": "20",
"expiry": "172801"
}
],
"x_network_key_mapping": {
"enrollment-id-ad-tech-1": "0x1",
"enrollment-id-ad-tech-2": "0x3"
}
}
結果
Source1 と Source2 から生成された派生ソース、すらわち Source1' と Source2' は、アトリビューションで競合します。
競合するソース
フィールド |
Source1' |
Source2' |
元のソースを登録した広告テクノロジー |
ad-tech1 |
ad-tech2 |
source_event_id |
3645 |
345789 |
リンク先 |
android-app://com.example.app |
android-app://com.example.app |
優先度 |
10 |
20 |
アプリのインストールを促進 |
○ |
× |
登録されたトリガー
mmp-ad-tech による Trigger1
アトリビューションの結果
Trigger1 は、リンク先のアプリのインストールを促進したため、Source1' に割り振られます。Source2' の優先度の方が高いことに注目してください。
アトリビューション後に無視されるソース
Source2' - Source2 の派生ソースは、mmp-ad-tech によって登録されるトリガーのアトリビューションに関して考慮されなくなります。
イベント レポート
なし - 獲得した派生ソースにはイベント レポートは生成されません
集計レポート
レポート URL: http://www.mmp-ad-tech.com/.well-known/attribution-reporting/report-aggregate-attribution
{
"attribution_destination": "android-app://com.example.app",
"histograms": [
{
"key": "0x519",
"value": 32768
},
{
"key": "0x5",
"value": 1664
}
]
}
シナリオ 6: 1 回負ければ、常に負ける
ad-tech1 が持つソースの派生ソースが mmp-ad-tech のトリガーのアトリビューションに参加した結果、アトリビューションを獲得できなかった場合、その後、ad-tech1 のソースは、mmp-ad-tech のトリガーの派生ソースの作成には使用されません。タイムラインの例を次に示します。
- t0 で、ad-tech1 の Source1 が登録されます(
"priority": "10"
)。 - t1 で、ad-tech2 の Source2 が登録されます(
"priority": "20"
)。 - t2 で、mmp-ad-tech の Trigger1 が登録されます(ad-tech1 および ad-tech2 のアトリビューション構成あり)。
- t3 で、Trigger1 のアトリビューションが行われ、ad-tech2 の派生ソースがアトリビューションを獲得し、ad-tech1 のソースが無視されます。
- t4 で、ad-tech3 の Source3 が登録されます(
"priority": "5"
)。 - t5 で、mmp-ad-tech の Trigger2 が登録されます(ad-tech1 および ad-tech3 の構成あり)。
- t6 で、Trigger2 のアトリビューションが発生し、Source3 からの派生ソース(Source3')がアトリビューションを獲得します。
結果の説明
ad-tech1 のソースから派生したソースが Trigger1 のアトリビューションを獲得できなかったため、Trigger2 のアトリビューションの派生ソースの作成に Source1 が使用されませんでした。以前に t3 で負けていなければ、ad-tech3 のソースより優先度が高いため、ad-tech1 のソースが獲得できるはずでした。