アトリビューション スコープを使用すると、API 呼び出し元はソースとトリガーの登録時に文字列のリストを指定できます。このリストは、アトリビューションの実行前にフィルタに使用できます。これにより、よりきめ細かいフィルタリングが可能になり、API の効率性が向上し、柔軟性が向上します。たとえば、同じサイト上の個別の広告主を個別にトラッキングできます。また、1 つの広告バナー内で複数のキャンペーンや商品をトラッキングすることもできます。
アトリビューション スコープは、ソースとトリガーの登録時に設定できるオプション フィールドです。アトリビューションの際に、アトリビューション スコープの値にトリガーのアトリビューション スコープの値が 1 つ以上含まれているソースのみがアトリビューションの対象となります。トリガーでスコープが指定されていない場合は、すべてのソースが考慮されます。続行する前に、Attribution Reporting API と上位レベルのフィルタについて理解しておく必要があります。
ソースの登録中
ヘッダー Attribution-Reporting-Register-Source
にオプション パラメータ attribution_scopes
が追加されます。このヘッダーには、必須パラメータが 2 つ(values と limit)と、オプション パラメータが 1 つ(max_event_states)含まれています。
- limit: ソース レポート送信元の宛先ごとに許可される一意のスコープの合計数を表します。レポートの送信元と送信先が同じで、上限が小さい既存の登録ソースは削除されます。
- values: 特定のソースのアトリビューション スコープのリストを表します。これらの値は、最大長 50 の文字列にする必要があります。
- max_event_states(省略可): API 呼び出し元が、その後のすべてのイベントソース登録で使用する予定のイベント状態の最大数を表します。なお、レポートの送信元と送信先が同じで
max_event_states value
が異なる既存の登録ソースは削除されます。この省略可能なフィールドのデフォルト値は 3 です。
ソース登録のサンプル
Attribution-Reporting-Register-source: {
//optional
"attribution_scopes":{
"limit": <int>,
"values": <list of strings>,
// optional
"max_event_states": <int>
},
...
}
トリガーの登録中
トリガーの登録時に、オプションのパラメータ attribution_scopes
がヘッダー Attribution-Reporting-Register-Trigger
に追加されます。パラメータ値が、トリガーのスコープを示す文字列のリストであることを確認します。トリガーは、attribution_scopes 値パラメータにトリガーの attribution_scopes のいずれかが含まれているソースにのみ一致します(指定されている場合)。
トリガー登録のサンプル
Attribution-Reporting-Register-Trigger: {
//optional
"attribution_scopes": <list of strings>,
...
}
アトリビューション スコープの例
次の例は、アトリビューション スコープを使用しているときに、トリガーがソースに帰属される場合を示しています。
ソース登録 #1
Attribution-Reporting-Register-source: {
"destination": "https://trigger.example",
"attribution_scopes": {
"limit": 2,
"values": ["advertiser1"],
"max_event_states": 3
},
...
}
ソースの登録 #2
Attribution-Reporting-Register-source: {
"destination": "https://trigger.example",
"attribution_scopes": {
"limit": 2,
"values": ["advertiser2"],
"max_event_states": 3
},
...
}
トリガーの登録
Attribution-Reporting-Register-Trigger: {
"attribution_scopes": ["advertiser1"],
...
}
トリガーの登録が行われると、API は、トリガー登録の値と重複する attribution_scopes 値を持つ、アトリビューションの対象となるソースを選択します。一致したソースの登録は、アトリビューション フローの残りの部分で続行されます。この例では、API 呼び出し元は、トリガーの登録を最初のソースの登録に関連付けたアトリビューション レポートを受け取ります。
アトリビューション スコープとフィルタ
アトリビューション スコープとフィルタの機能は似ているように見えますが、トリガー登録フローで適用される場所が異なります。アトリビューション スコープのフィルタリングは、アトリビューションの前に実行されます。つまり、トリガーで検出されたスコープと重複するスコープを持つソースに基づいて、同じリンク先サイトとレポート送信元を持つ有効期限内の候補ソースのプールが削減されます。ただし、最上位フィルタは、トリガーが単一のソースに関連付けられた後に適用されます。ソース フィルタとトリガー フィルタが重複しない場合、レポートは生成されません。
次の図は、同じリンク先サイトとレポート元を持ち、期限切れではないソースとトリガーのグループを示しています。ここでは、アトリビューション スコープとフィルタの使用方法と、利用可能なソースとトリガーに基づいてレポートが生成されるかどうかについて簡単に説明します。
<img "activewear"="" "attribution="" "casualwear"="" "casualwear",="" "outerwear"="" "outerwear".="" "outerwear"."="" #1".the="" 1.="" 2.="" alt="An image showing 4 boxes labelled sources numbered 1 through 4 and a single box labelled " and="" attributes="" filter:="" first="" following="" fourth="" has="" priority:="" scope":="" second="" source="" src="/static/assets/images/attribution-scopes-example-1.png" the="" third="" title="Example on how attribution works with attribution scopes and filters" trigger="" />
アトリビューション前
- ソース 1 は、アトリビューション スコープがトリガーのスコープ
casualwear
と一致しないため、除外されます。利用可能なすべてのソースの中で優先度が最も高いソースでも、優先度がチェックされる前にアトリビューション前フィルタリングが行われるため、除外される可能性があります。 - ソース 2 も、トリガーと同じスコープがないため除外されます。このソースにもトリガーと同じフィルタがありますが、上位レベルのフィルタは、アトリビューション後に適用されます。
アトリビューション中
- ソース 3 はソース 4 よりも優先度が低いため、アトリビューションには選択されません。
- ソース #4 は、トリガーと一致するアトリビューション スコープがあり、優先度が最も高いため選択されます。上位レベルのフィルタはアトリビューション後に適用されるため、アトリビューション プロセスでは考慮されません。
投稿アトリビューション
- 選択したソース(ソース 4)とトリガーの概要フィルタが重複しないため、レポートは生成されません。
上記の例では、レポートは生成されません。ただし、4 番目のソースが完全に削除された場合:
アトリビューション中
- ソース 3 は、トリガーとアトリビューション スコープが重複しているため、選択されています。
投稿アトリビューション
- ソース 3 は、トリガーのフィルタと重複しているため、拒否されません。アトリビューションは、アトリビューション後の残りのチェックを受け、すべてのチェックに合格するとレポートが生成されます。
アトリビューション スコープを使用すると、アトリビューションの対象となるソースの数を減らすことができます。残りのアトリビューション ステップがこの小さいソースプールに適用され、レポートが生成される場合があります。
アトリビューション スコープのアトリビューション フローにおける位置
アトリビューション スコープは、アトリビューションのソースを選択する前に適用されます。また、トップレベル フィルタとカスタム レポート期間のフィルタリングよりも優先されます。次の図は、アトリビューション フロー全体を簡素化したものです。アトリビューション スコープはアトリビューションの前に行われ、残りのアトリビューション チェックはその後に行われます。
<img "attribution="" "attribution",="" "deactivation="" "filters="" "report="" "source="" "trigger="" alt="アトリビューション フローの簡略化されたバージョンを示す画像。各ステップが正方形で表され、矢印で次のステップにリンクされています。手順は次のとおりです。" and="" check",="" checks"="" generation"."="" matching",="" of="" other="" registration",="" scopes="" source="" sources",="" src="/static/assets/images/attribution-scopes-attribution-flow.png" title="Simplified attribution flow diagram" />
アトリビューション フローのオペレーション
アトリビューション フロー中に実行されるさまざまなオペレーションの概要は次のとおりです。
- ソースの登録: ユーザーが広告主のサイトで広告を操作すると、ソース イベントが登録されます。その後、デバイスはレポート送信元のエンドポイントにリクエストを送信します。エンドポイントは、ソースイベントデータを含むヘッダーで応答します。
- トリガーの登録: 広告主様のサイトでコンバージョンが発生すると、トリガー イベントが登録されます。デバイスからレポート送信元に別のリクエストが送信され、トリガー イベントデータを含むヘッダーで応答します。
- ソースの照合: デバイスは、リンク先のサイト、レポートの送信元、有効期限などの条件に基づいて、ソース イベントとトリガー イベントを照合します。
- アトリビューション スコープのチェック: ソースとトリガーのアトリビューション スコープ値の交差に基づいてソースがフィルタされます。
- アトリビューション: 複数のソースが一致する場合、デバイスは優先度が最も高いソースをアトリビューションに選択します。優先度が同じ場合は、最新の優先度が選択されます。
- フィルタのチェック: デバイスは、ソース フィルタとトリガー フィルタを比較して、一致しているかどうかを判断します。フィルタが一致しない場合、アトリビューションは破棄されます。
- 他のソースの無効化: 選択したソースのフィルタが一致すると、デバイスはソースの一致ステージで一致したソースを無効にします。無効になるソースには、アトリビューション スコープがトリガー スコープと一致しないソースが含まれます。
- アトリビューション後のチェック: デバイスは、選択したアトリビューションに対して、ソースが偽のレポートでノイズが混入していないか、重複アトリビューションを除去キーを使用して確認する、トリガーがソースのレポート期間内にあるかどうかを確認する、レート制限を確認するなどの追加のチェックを行います。
- レポートの生成: すべてのチェックに合格すると、デバイスはアトリビューション レポートを生成してスケジュールし、レポートの送信元のエンドポイントに送信します。
次のステップ
- アトリビューション スコープについて詳しくは、アトリビューション前のフィルタリングに関する GitHub の説明をご覧ください。
- フィルタについて詳しくは、フィルタを使用して顧客ルールを定義するをご覧ください。