コンバージョン トラッキング

図 2: コンバージョン トラッキングの概要

概要

コンバージョン トラッキングは、Google のアクション センターとの統合のいずれかを通じて Google によって開始されたコンバージョンをトラッキングすることを目的としています。これは、統合を正常に維持し、実行するために不可欠であり、特定のページのランキングに影響する可能性があります。Google が action_link を表示するたびに、その URL が変更され、一意のクエリ パラメータ rwg_token が追加されます。そのトークンを保存し、ユーザーが予約を完了したときに適切な値を返すのは、お客様の判断に委ねられます。

統合を完了するには、次の操作を行う必要があります。

  1. rwg_token を収集して保存します。
  2. 販売者を収集して保存します。
  3. rwg_tokenmerchant_change の値を返します。
  4. コンバージョン トラッキングのテストと検証を行う。

rwg_token を収集して保存します。

この統合を完了するには、最初の Google 参照から 30 日以内に rwg_token を収集して保存する必要があります。rwg_token 値は、リンクとそのアクション リンクを生成した販売者に関するメタデータを含むエンコードされた文字列です。トークンにはユーザーデータが保存または暗号化されません

トークン コレクション

ユーザーが予約ページに誘導されると、指定された URL に新しいクエリ パラメータ rwg_token が追加されます。予約ページで値を解析する必要があります。ブラウザを介したデバイスレベルのトラッキング用にこのトークンを解析する方法の例が含まれています。

var query = location.search.substring(1);
var params = query.split('&');
var rwgToken = undefined;
for (var i = 0; i < params.length; ++i) {
  var pair = params[i].split('=');
  if (pair[0] == 'rwg_token') {
    rwgToken = decodeURIComponent(pair[1]);
    break;
  }
}

URL に追加されるクエリ パラメータは暗号化されたトークンになります。rwg_token の例を以下に示します。このサンプル トークンを使用して、"=" などの特殊文字を含むトークンが正しく解析されるようにします。次の例は、一般的なトークンの例です。

AJKvS9WeONmWKEwjG0--HdpzMq0yAVNL8KMxbb44QtbcxMhSx_NUud5b8PLUBFehAIxOBO-iYRIJOknEFkIJmdsofdVJ6uOweQ==

トークン ストレージ

rwg_token を保存する際に、コンバージョン トラッキングを実装できるレベルは、デバイスレベルとユーザーレベルの 2 つあります。トークンを保存する場所は任意ですが、トークンは最初の参照から 30 日間保存する必要があります

次の例は、ファーストパーティ Cookie を使用してウェブブラウザに値を保存するデバイス単位のコンバージョン トラッキングです。この例では、トークン ストレージの例のように、トークン値を変数に解析していることを前提としています。rootdomain.com は実際のドメインに置き換えてください。

if (typeof rwg_token !== 'undefined') {
  document.cookie =
  "_rwg_token=" + rwg_token + ";max-age=2592000;domain=rootdomain.com;path=/";
}

rwg_token の保存場所を決定する際は、次の点を考慮してください。

デバイスレベルのストレージ

デバイス単位では、ブラウザ Cookie、ローカル ストレージ、アプリのローカル ストレージ、または 30 日間のアトリビューション ウィンドウにわたってトークンを保持できるその他の方法を使用できます。トークンはユーザーのデバイスにローカルに保存されるため、ユーザーが使用しているデバイスを変更したり、ローカル ストレージや Cookie を消去したり、シークレット ブラウジングやシークレット モードを使用している場合、コンバージョン イベントが適切に割り当てられない可能性があります。デバイス単位のコンバージョン トラッキングを使用する場合は、サポートされているすべてのサーフェス(モバイルを含む)に再実装する必要があります。

ユーザーレベルのストレージ

ユーザーレベルでは、サーバーサイド分析システムやその他のサーバーサイド システムを介して、アプリケーション データベースにデータを保持します。トークンはサーバーサイドに保存されるため、ユーザーが使用しているデバイスを変更したり、ローカル ストレージや Cookie を消去したり、シークレット ブラウジングやシークレット モードを使用したりしても、ユーザーが再度ログインすると、コンバージョン イベントは引き続きアトリビューションされます。ユーザーレベルのコンバージョン トラッキングを使用する場合、システムのアーキテクチャによっては、サーバーサイドで一度実装すれば、サポートされているすべてのサーフェスで再利用できる場合があります。

フィードを通じて指定した action_link が Google に表示されるたびに、その URL が変更され、一意のクエリ パラメータ rwg_token が追加されます。rwg_token 値はエンコードされた文字列で、ユーザーがクリックしたリンクに関するメタデータが含まれますが、ユーザーデータは含まれません。このトークンを保存し、コンバージョン イベントの一部として返す必要があります。

トークンを更新する

ユーザーが Google から同じ販売者に誘導された場合、既存のトークンが保存されている場合は、そのトークンが最新の参照からの新しいトークンに置き換えられます。トークンが交換されると、トークン ストレージの 30 日間の期間がリセットされ、この販売者の新しいコンバージョンは最新のトークンに関連付けられます。

詳しくは、コンバージョン アトリビューションの要件をご覧ください。

販売者を収集して保存します。

ユーザーが予約ページに誘導されたときに、販売者を検出してキャプチャするロジックを実装する必要があります。通常、パートナーはアクション リンクに販売者メタデータまたは merchant_id を追加し、それを使用して販売者を識別して保存します。merchant_id(または選択した ID)を rwg_token とともに保存することをおすすめします。これにより、ユーザーが予約を確認した際に、コンバージョンの完了リクエストを送信する前に販売者を参照できます。トークンの保存期間と同様に、最初の参照から 30 日間は、トークンとともに販売者を保存する必要があります。

次の例では、以前に保存した rwg_token を調整します。これは、指定された URL のメタデータから販売者を解析し、merchant_id として保存するか、既存の merchant_id と照合することを前提としています。

if (typeof rwg_token !== 'undefined') {
  document.cookie =
  "_rwg_token=" + rwg_token + ";_merchant_id=" + merchantid + ";max-age=2592000;domain=rootdomain.com;path=/";
}

rwg_tokenmerchant_change の値を返します。

ユーザーがアクション リンクの参照から開始した予約を完了すると、コンバージョン エンドポイントに HTTP POST リクエストを送信する必要があります。2 つのエンドポイントがあります。1 つは本番環境用、もう 1 つはサンドボックス環境用です。

  • 本番環境: https://www.google.com/maps/conversion/collect
  • サンドボックス: https://www.google.com/maps/conversion/debug/collect

コンバージョン イベントを送信する際は、保存した rwg_tokenmerchant_change 値(1 または 2)を含める必要があります。merchant_change の詳細については、販売者の変更値を返すをご覧ください。

POST 本文は、次の形式の JSON エンコード オブジェクトにする必要があります。

{
  "conversion_partner_id": "<partnerId>",
  "rwg_token": "<rwg_token_val>",
  "merchant_changed": "1|2"
}
{
  "conversion_partner_id": "XXXXXXX",
  "rwg_token": "AJKvS9WeONmWKEwjG0--HdpzMq0yAVNL8KMxbb44QtbcxMhSx_NUud5b8PLUBFehAIxOBO-iYRIJOknEFkIJmdsofdVJ6uOweQ==",
  "merchant_changed": "2"
}

次の例は、ユーザーのデバイス上の Cookie を使用してデバイスレベルのコンバージョン トラッキングを行うもので、JavaScript で記述されています。

const partnerId = XXXXXXXXXX;

const endpoint = `https://www.google.com/maps/conversion/collect`;

const rwgTokenCookie = document.cookie
  .split('; ')
  .find(row => row.startsWith('_rwg_token='));

if (typeof rwgTokenCookie !== 'undefined') {
  const rwgTokenVal = rwgTokenCookie.split('=')[1];
  fetch(endpoint, {
    method: "POST",
    body: JSON.stringify({
      conversion_partner_id: partnerId,
      rwg_token: rwgTokenVal,
      merchant_changed: merchantChanged
    })
  });
}

販売者の変更値を返す

merchant_changed 値は、初期リダイレクト マーチャントからマーチャントが変更されたかどうかを判断するために使用されます。ランディング ページが他の販売者を含むプラットフォーム内にある場合、販売者の変更はよくあります。この場合、ユーザーが Google から貴社のプラットフォームに誘導され、別の販売者を訪問して予約を完了した場合、コンバージョンが発生したことは把握したいものの、別の販売者で発生したことは把握する必要はありません。コンバージョン イベントが発生し、販売者が異なることを把握するには、ブール値を使用します。

merchant_change に割り当てる値を決定する際は、販売者を収集して保存するで保存した元の販売者を取得し、販売者が変更されていないことを確認してから、値を割り当てる際に次の表を参照してください。

予約ページがプラットフォーム内にない場合や、ユーザーが別の販売者をナビゲートできない場合は、これらのリクエストの値を 2 にハードコードできます。これは、予約ページを販売者のウェブサイトに統合しているパートナーや、予約処理用のカスタム ランディング ページを使用しているパートナーによく見られます。

販売者の変更値 要件
1 この値は、ユーザーが元の販売者のウェブサイトを離れ、別の販売者のプラットフォームで購入を完了した場合に使用します。
2 この値は、お客様が元のエンティティ(販売者)を通じて取引を完了した場合に使用する必要があります。

コンバージョン トラッキングのテストと検証を行う。

コンバージョン トラッキングの実装が正しいことを確認するには、次のテストを実行する必要があります。販売者に関連付けられたアクション リンクを使用し、リクエストは非公開またはシークレット ウィンドウで行うようにしてください。これにより、そのユーザーに関連付けられている以前のトークンが確実に消去されます。

  1. アクション リンクを使用して予約を完了する
    • 参照または以前に保存されたトークンがない直接予約では、Google にリクエストが送信されません。
  2. rwg_token が付加されたリンクを使用して予約を完了します。
    • リクエストが成功し、rwg_tokenmerchant_change の値が 2 で送信されていることを確認します。
    • rwg_token を 30 日間保存していることを確認する
  3. 新しい rwg_token を使用して、同じ販売者との新しい予約を完了します。
    • リクエストが成功し、新しい rwg_tokenmerchant_change の値が 2 で送信されていることを確認します。
    • トークンのアトリビューション ストレージ期間が 30 日間更新されていることを確認する
  4. テストしている販売者の予約ページに直接移動し、rwg_token を追加せずに新しい予約を作成します。
    • リクエストが、以前に保存された rwg_token とともに送信され、merchant_change 値が 2 であることを確認します。

ユーザーが別の販売者を使用して購入手続きを行えるプラットフォームの場合は、以下をテストします。

  1. rwg_token が付加されたリンクを使用して販売者の予約ページに移動し、別の販売者に移動して予約を作成します。
    • rwg_tokenmerchant_change の値が 1 のリクエストが送信されていることを確認します。

テストでは、HTTP POST リクエストをコンバージョン エンドポイントに送信します。2 つのエンドポイントがあります。1 つは本番環境用で、もう 1 つはサンドボックス環境用です。

  • 本番環境: https://www.google.com/maps/conversion/collect
  • サンドボックス: https://www.google.com/maps/conversion/debug/collect

アクション リンクまたは URL に次のトークンを追加する必要があります。

rwg_token=AJKvS9WeONmWKEwjG0--HdpzMq0yAVNL8KMxbb44QtbcxMhSx_NUud5b8PLUBFehAIxOBO-iYRIJOknEFkIJmdsofdVJ6uOweQ%3D%3D

追加のトークンを必要とするテストには、次のトークンを使用します。

rwg_token=AJKvS9U2QfiQanHFQrlJxBjD0AyFany3qpaJVEWOcY4nHqY_UkLYFFDj6RIa-EXS1iEmV8gtFPG6v1cU1jnusJK66ijXXnaqkQ%3D%3D

正常に送信されたコンバージョン イベントは、アクション センターの [コンバージョン トラッキング ダッシュボード] で集計された状態で確認できます。なお、コンバージョンがダッシュボードに表示されるまでに 1 時間ほどかかる場合があります。

conversion-tracking-dashboard

コンバージョン アトリビューションの要件

Google のコンバージョン アトリビューションの必須基準は、どの店舗でもプレイスリンクとのインタラクションに対して 30 日間のアトリビューション期間を設けることです。

このアトリビューション期間は、次のいずれかのシナリオでコンバージョン イベントが送信されることを意味します。

  • ユーザーがプレイス アクション リンクをたどり、同じセッションで同じ販売者の注文を行った場合。(Merchant Change Value = 2)
  • ユーザーがプレイス アクションのリンクをたどり、30 日以内に別のチャネルから戻ってきて、同じ販売者の商品を注文した場合。(Merchant Change Value = 2)
  • ユーザーがプレイスアクションのリンクをクリックし、同じセッション内または 30 日間の期間内の別のセッションで別の店舗で注文した場合。(販売者の変更値 = 1)

また、ユーザーが位置情報アクションのリンクからアクセスできるすべてのサーフェスからコンバージョン イベントが送信されることが求められます。例:

  • パソコンまたはモバイルのウェブアプリ
  • モバイルアプリ(アプリのディープリンクまたはドメインに登録されたアプリ インテントを使用)

トークンがユーザーレベルで保存されている場合(トークンの保持を参照)、クロスデバイス アトリビューションを提供することが求められます。つまり、パソコンからアクション リンクをたどり、その後(同じユーザー アカウントを使用して)モバイルで取引を完了したユーザーは、コンバージョン イベントをトリガーする必要があります。

トークンがブラウザ Cookie など、デバイス単位でのみ保存されている場合は、クロスデバイス アトリビューションを提供することは想定されていません。この場合、ユーザーがそのデバイスでアクション リンクをクリックした場合、各デバイスに個別のトークンが保持され、各デバイスがアトリビューション ルールに個別に従います。