アトリビューション スコープを使用してアトリビューションの前にソースをフィルタする

アトリビューション スコープを使用すると、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 番目のソースが完全に削除された場合:

同じ画像に、1 ~ 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" />

アトリビューション フローのオペレーション

アトリビューション フロー中に実行されるさまざまなオペレーションの概要は次のとおりです。

  • ソースの登録: ユーザーが広告主のサイトで広告を操作すると、ソース イベントが登録されます。その後、デバイスはレポート送信元のエンドポイントにリクエストを送信します。エンドポイントは、ソースイベントデータを含むヘッダーで応答します。
  • トリガーの登録: 広告主様のサイトでコンバージョンが発生すると、トリガー イベントが登録されます。デバイスからレポート送信元に別のリクエストが送信され、トリガー イベントデータを含むヘッダーで応答します。
  • ソースの照合: デバイスは、リンク先のサイト、レポートの送信元、有効期限などの条件に基づいて、ソース イベントとトリガー イベントを照合します。
  • アトリビューション スコープのチェック: ソースとトリガーのアトリビューション スコープ値の交差に基づいてソースがフィルタされます。
  • アトリビューション: 複数のソースが一致する場合、デバイスは優先度が最も高いソースをアトリビューションに選択します。優先度が同じ場合は、最新の優先度が選択されます。
  • フィルタのチェック: デバイスは、ソース フィルタとトリガー フィルタを比較して、一致しているかどうかを判断します。フィルタが一致しない場合、アトリビューションは破棄されます。
  • 他のソースの無効化: 選択したソースのフィルタが一致すると、デバイスはソースの一致ステージで一致したソースを無効にします。無効になるソースには、アトリビューション スコープがトリガー スコープと一致しないソースが含まれます。
  • アトリビューション後のチェック: デバイスは、選択したアトリビューションに対して、ソースが偽のレポートでノイズが混入していないか、重複アトリビューションを除去キーを使用して確認する、トリガーがソースのレポート期間内にあるかどうかを確認する、レート制限を確認するなどの追加のチェックを行います。
  • レポートの生成: すべてのチェックに合格すると、デバイスはアトリビューション レポートを生成してスケジュールし、レポートの送信元のエンドポイントに送信します。

次のステップ