アトリビューション トリガーを登録する

アトリビューション トリガーを登録してコンバージョンをカウントする方法について説明します。

アトリビューション トリガーは、コンバージョンを取得するようにブラウザに指示するイベントです。

このドキュメントの手順に従って、トリガーを登録してコンバージョンを登録し、ブラウザが関連するソースイベント(広告のインプレッションまたは広告クリック)に関連付けます。

登録方法

トリガーを登録するには、HTML 要素または JavaScript 呼び出しを使用します。

  • <a> タグ
  • <img> タグ
  • <script> タグ
  • fetch 個の電話番号
  • XMLHttpRequest
  • window.open

これによりネットワーク リクエストが生成され、トリガー登録 HTTP レスポンス ヘッダーで応答します。

コンバージョンを結び付けるためのトリガーを登録する

トリガーの登録は、アトリビューション ソース イベントの登録と同様です。完全なステップについては後で説明します。概要は次のとおりです。

  1. トリガーの登録を開始する。ピクセルまたは fetch() 呼び出しを使用して、リクエストを送信します。
  2. トリガー登録ヘッダーで応答して、トリガーの登録を完了します。

    通常の src 属性で定義されたエンドポイントか、attributionsrc を使用して値を指定した場合は attributionsrc で定義されたエンドポイントに送信されたピクセル リクエストを受信すると、ヘッダー Attribution-Reporting-Register-Trigger で応答します。

    このヘッダーでは、最終的にレポートに表示されるトリガーデータを指定します。すべてのレスポンスでこのヘッダーを設定できます。destination に一致するサイトからのリクエストに対するレスポンスである限り、ソースが照合されます。ヘッダーを受信すると、ブラウザは一致するソースを検索し、レポートをスケジュール設定します。

    イベントレベル レポートの例:

    {
      "event_trigger_data": [{
        "trigger_data": "[unsigned 64-bit integer]",
        "priority": "[signed 64-bit integer]",
        "deduplication_key": "[unsigned 64-bit integer]"
      }]
    }
    ```
    
    **Example for summary reports:**
    
    ```json
    {
      ... // existing fields, such as "event_trigger_data"
    
      "aggregatable_trigger_data": [
       {
         "key_piece": "0x400",
         "source_keys": ["campaignCounts"]
       },
       {
         "key_piece": "0xA80",
         "source_keys": ["geoValue", "nonMatchingKeyIdsAreIgnored"]
       }
      ],
      "aggregatable_values": {
        "campaignCounts": 32768,
        "geoValue": 1664
      }
    }
    ```
    

サブドメインの取り扱い

destinationhttps://advertiser.example の場合、https://advertiser.example とそのサブドメインの両方(https://shop.advertiser.example など)のコンバージョンをアトリビューションできます。

destinationhttps://shop.advertiser.example の場合、https://advertiser.examplehttps://shop.advertiser.example の両方のコンバージョンをアトリビューションできます。

必須属性とオプション属性

HTML 要素を使用するか、JavaScript 呼び出しでトリガーを登録する場合、attributionsrc または attributionReporting の使用が必要になる場合があります。どのような場合にこれらが必要になるかについて詳しくは、次の表をご覧ください。

attributionsrc任意の場合、そのリクエストは Attribution Reporting の対象であることを示します。attributionsrc を使用した場合、ブラウザは Attribution-Reporting-Eligible ヘッダーを送信します。また、アプリからウェブの測定にも役立ちます。attributionsrc が存在する場合、ブラウザは Attribution-Reporting-Support ヘッダーを送信します。

登録方法 きっかけ
<a> タグ なし アンカーはトリガーを登録できません。
<img> タグ attributionsrc は省略可能です。ヘッダーだけでトリガーを登録できます。
<script> タグ attributionsrc省略可能です。トリガーの登録にはヘッダーだけで十分です。
fetch 個の電話番号 attributionReporting オプションは必須です。
XMLHttpRequest attributionReporting オプションは必須です。
window.open() なし window.open はトリガーを登録できません。

ステップ 1: トリガーの登録を開始する

トリガーは、ピクセル(<img> タグ)またはスクリプトタグを使用して登録できます。

新規または既存のコンバージョン ピクセルを使用する

<img src="https://ad-tech.example/conversionpixel"
     attributionsrc="https://adtech.example/attribution_trigger?purchase=13">

スクリプトタグを使用する

トリガーの登録はスクリプトタグで行うことができます。動作は <img> と同様です。次のコードサンプルは、fetch()XMLHttpRequest()(XHR)の使用方法を示しています。

次のコードは、attributionsrc を含む HTML リクエストの動作を効果的にシミュレートします。

// With fetch
const attributionReporting = {
  eventSourceEligible: false,
  triggerEligible: true,
};

// Optionally set keepalive to ensure the request outlives the page.
window.fetch("https://adtech.example/attribution_source?my_ad_id=123",
  { keepalive: true, attributionReporting });
// With XMLHttpRequest:
const attributionReporting = {
  eventSourceEligible: false,
  triggerEligible: true,
};

const req = new XMLHttpRequest();
  req.open('GET', url);
  req.setAttributionReporting(
      attributionReporting);
  req.send();

attributionsrc(値あり / なし)

attributionsrc は、値の有無にかかわらず追加できます。

<!-- Without a value -->
<img src="..." width="1" height="1" attributionsrc>

<!--With a value (URL) -->
<img src="..." width="1" height="1" attributionsrc="https://...">

attributionsrc の値を設定する場合は、単一の URL にする必要があります。

URL を使用すると、ブラウザから個別のキープアライブ取得リクエストが開始されます(URL ごとに 1 回)。これには Attribution-Reporting-Eligible リクエスト ヘッダーが含まれます。

これは、要素のメイン リクエストとは別のリクエストに応答してソースを登録する場合に便利です。

たとえば、アンカー要素のクリックのソースを登録する必要がある場合、実際にはデスティネーションを制御できない可能性があります。この場合、ナビゲーションとは別のリクエストに対するレスポンスとしてソース登録ヘッダーを送信し、完全に制御できる構成が必要になります。attributionsrc の明示的な値を指定することで、ブラウザはその追加リクエストを行い、その宛先を構成することになります。

ステップ 2: ヘッダーを使用して応答する

ブラウザ リクエストを受け取ったら、レスポンスに Attribution-Reporting-Register-Trigger ヘッダーを含めます。

JSON.stringify({event_trigger_data: [{
      trigger_data: '412444888111012',
      // Optional
      priority: '1000000000000',
      deduplication_key: '2345698765'
    }], debug_key: '1115698977'})

次のステップ

詳しくは、アトリビューション ソースを登録する方法をご覧ください。