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

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

概要

コンバージョン トラッキングでは、Google のアクション センターの統合のいずれかを通じて Google によって開始されたコンバージョンを追跡します。特定のページのランキングに影響する可能性があるため、統合を正常に実行し続けることが重要です。Google が action_link を生成するたびに、特定の URL が変更され、一意のクエリ パラメータ rwg_token が追加されます。トークンを保存し、ユーザーが予約を完了したときに適切な値を返すことができます。

統合を完了する手順は次のとおりです。

  1. rwg_token を解析して保存します。
  2. 販売者の情報を解析して保存します。
  3. rwg_tokenmerchant_changed の値を返します。
  4. コンバージョン トラッキングをテストして確認します。

rwg_token を解析して保存する

統合を完了するには、最初の Google 参照から 30 日以内に rwg_token を収集して保存する必要があります。rwg_token 値はエンコードされた文字列で、リンクに関するメタデータと、その action_link を生成する販売者情報を含みます。

トークンを解析する

ユーザーが予約ページにリダイレクトされると、指定された URL に新しい rwg_token が追加されます。予約ページで、トークン値を解析する必要があります。

次の例は、ブラウザを介したデバイスレベルのトラッキング用に 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=/";
}

フィードを通じて指定した action_link が Google によって生成されるたびに、URL が変更され、一意のクエリ パラメータ rwg_token が追加されます。このトークンを保存し、コンバージョン イベントの一部として返す必要があります。

デバイスレベルで保存

デバイスレベルには、ブラウザ Cookie、ローカル ストレージ、アプリのローカル ストレージ、または 30 日間のアトリビューション ウィンドウにトークンを保持できるその他の方法が含まれます。トークンはユーザーのデバイスにローカルに保存されます。そのため、ユーザーが次のいずれかの操作を行った場合、コンバージョン イベントを適切にアトリビューションすることはできません。

  • 使用しているデバイスを変更する。
  • ローカル ストレージまたは Cookie を削除します。
  • プライベート ブラウザまたはシークレット ブラウザを使用している。

デバイス単位のコンバージョン トラッキングを使用する場合は、モバイルを含むサポートされているすべてのデバイスでコンバージョン イベントを再度実装する必要があります。

ユーザーレベルで保存

ユーザーレベルでは、サーバーサイド分析システムまたはその他のサーバーサイド システムを介して、アプリケーション データベースにトークンが保持されます。トークンはサーバーサイドに保存されます。そのため、ユーザーがログインし直した後も、コンバージョン イベントは適切にアトリビューションされます。

システム アーキテクチャに基づいてユーザー単位のコンバージョン トラッキングを使用する場合は、コンバージョン イベントをサーバーサイドに 1 回実装し、サポートされているすべてのデバイスで再利用できます。

トークンを更新する

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_token 値と merchant_changed 値を返す

ユーザーが action_link の参照から始まる予約を完了した場合は、コンバージョン エンドポイントに HTTP POST リクエストを送信する必要があります。エンドポイントは 2 つあります。

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

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

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_changed に割り当てる値を決定する際は、販売者情報を解析して保存するで保存した元の販売者を使用する必要があります。販売者が変更されていないかを確認し、要件に応じて値を割り当てます。

  • 要件: ユーザーが元の販売者のウェブサイトから離れ、別の販売者のプラットフォームで購入を完了した場合。
    • 販売者の変更値: 1
  • 要件: ユーザーが元の販売者を通じて取引を完了したとき。
    • 販売者の変更値: 2

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

次のテストケースでは、テストトークンのセクションで提供されているテストトークンを使用します。これらのテストケースは、コンバージョン イベントにつながるさまざまなシナリオをすべて網羅することを目的としています。これにより、トークンが適切に保存され、merchant_changed 値が正しく設定され、必要に応じてコンバージョン イベントが送信されます。

フィードで指定されているアクション リンクまたは予約ページの URL を使用し、URL の末尾にテストトークンを追加して各テストケースを実行します。プライベート ブラウザまたはシークレット ブラウザ ウィンドウを使用してください。これにより、現在のユーザーに関連付けられている既存のトークンがすべて消去され、クリーンな状態で作業できるようになります。

テストケース テストの説明 ユーザーフロー 期待される効果
1 ユーザーが Google 以外の経路で予約を完了した。 ユーザーが Google から参照されたり、既存の参照を経由したりせずに、予約ページに直接移動します。この場合、コンバージョン イベントは発生しません。 コンバージョン イベントなし: ユーザーが以前に予約ページにアクセスしたことがない、または Google から参照されたことがないため。
2 ユーザーが Google で開始した予約を完了した。 ユーザーが Google で販売者を見つけ、販売者の予約ページに誘導され、予約を完了します。 ユーザーが Google から予約ページに誘導されたため、トークン A販売者が変更された値が 2コンバージョン イベントが送信されます
3 ユーザー(Google からアクセス)が予約フローを開始したが、予約が完了する前にセッションを放棄した。

注: テスト 4 と 5 では、このセッションを開いたままにしてください。
ユーザーが予約ページに誘導されたものの、セッションが終了し、予約が完了しなかった。 ユーザーが予約を完了しなかったためコンバージョンなしですが、トークン B は 30 日間保存する必要があります。
4 ユーザーが Google からアクセスせずに予約ページに戻り、予約を完了します。

注: 予約フローの URL に rwg_token を含めることはできません。
ユーザーが テスト 4 後に予約ページに戻ります。トークン B は 30 日間保存され、その 30 日間に発生したコンバージョンはコンバージョン イベントとして返されます。 ユーザーが Google からの以前の参照後に予約ページに戻ってきたため、トークン B販売者が変更された値が 2コンバージョン イベントが送信されます
5 ユーザーが テスト 4 の後に Google から新しい予約を完了します。 ユーザーが以前に Google からリファラルされた後、再度 Google からリファラルされて予約ページに戻ってきた場合、30 日間の保存期間がリセットされ、古いトークン トークン B に代わって新しいトークン トークン C が生成されます。今後のコンバージョンはすべて トークン C に割り当てられます。 ユーザーが予約を完了し、以前に保存されたトークンが新しいトークンに置き換えられたため、トークン C販売者が変更された値が 2コンバージョン イベントが送信されます

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

テストケース テストの説明 ユーザーフロー 期待される効果
6 ユーザーが Google から予約ページに誘導され、別の販売者で予約を完了した。 ユーザーが Google から予約ページに誘導され、トークン A が使用されたが、予約を完了する前に別のページに移動し、元の参照元とは異なる販売者で予約を完了した場合。 コンバージョン イベントが送信されます。ユーザーが Google からの参照から発生した予約を完了したため、トークン A販売者が変更された値が 1 になります。これは、ユーザーが参照元とは異なる販売者で予約を完了したためです。

テスト中は、HTTP POST リクエストをコンバージョン エンドポイントに送信します。エンドポイントは 2 つあります。

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

テスト用トークン

コンバージョン トラッキングをテストするには、フィードで指定したアクション リンクまたは予約ページの URL の末尾に、次のいずれかのテストトークンを追加します。

トークン A:

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

トークン B:

rwg_token=AJKvS9U2QfiQanHFQrlJxBjD0AyFany3qpaJVEWOcY4nHqY_UkLYFFDj6RIa-EXS1iEmV8gtFPG6v1cU1jnusJK66ijXXnaqkQ%3D%3D

トークン C:

rwg_token=AJKvS9VwInjZ_hGZPvBz0COVWJ5oFDzocFt9hGi7TMurlo2l71uiXP48PspPUMmRnqCUDE1mF_A5H_dMV78cBTF8jIfSQK6lEA%3D%3D

コンバージョンに至ったイベントを送信すると、アクション センターのコンバージョン トラッキング ダッシュボードに集計されたイベントが表示されます。

conversion-tracking-dashboard

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

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

このアトリビューション期間とは、Google がコンバージョン イベントが送信される可能性があると想定している次のいずれかのシナリオを指します。

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

また、Google は、ユーザーが位置情報アクションのリンクからアクセスできるすべてのデバイスからコンバージョン イベントが送信されることを想定しています。対象となるデバイスは次のとおりです。

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

トークンがユーザーレベルで保存されている場合は、クロスデバイス アトリビューションを提供することが想定されます。詳細については、ユーザーレベルで保存するをご覧ください。この場合、デスクトップからアクション リンクをたどり、同じユーザー アカウントでモバイルで取引を完了したユーザーは、コンバージョン イベントをトリガーする必要があります。

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