実装
概要
コンバージョン トラッキングの実装には、次の 3 つの要素があります。
-
ランディング ページまたはアプリのエントリ ポイントから
rwg_token
を収集する。 -
適切なアトリビューション期間に
rwg_token
を保持する - 購入手続きでのコンバージョン イベントの送信
このコンバージョン トラッキングの実装では、Google アナリティクスやその他のサードパーティの JavaScript を使用する必要はありません。
コンバージョン トラッキングの実装を開始する前に、コンバージョンをデバイス単位でトラッキングするか、ユーザー単位でトラッキングするかを決める必要があります。
- デバイス単位には、ブラウザ Cookie、ローカル ストレージ、アプリのローカル ストレージ、または 30 日間のアトリビューション期間にトークンを保持できるその他の方法が含まれます。トークンはユーザーのデバイスにローカルに保存されるため、ユーザーが使用しているデバイスを変更したり、ローカル ストレージや Cookie を消去したり、シークレット ブラウジングやシークレット モードを使用している場合、コンバージョン イベントが適切に割り当てられない可能性があります。デバイス単位のコンバージョン トラッキングを使用する場合は、サポートされているすべてのサーフェス(モバイルを含む)でこれを再実装する必要があります。
- ユーザーレベルには、サーバーサイド分析システムやその他のサーバーサイド システムを介して、アプリケーション データベースにデータを保持することが含まれます。トークンはサーバーサイドに保存されるため、ユーザーが使用しているデバイスを変更したり、ローカル ストレージや Cookie を消去したり、シークレット ブラウジングやシークレット モードを使用したりしても、ユーザーが再度ログインすると、コンバージョン イベントは引き続きアトリビューションされます。ユーザー単位のコンバージョン トラッキングを使用する場合、システムのアーキテクチャによっては、これをサーバーサイドに 1 回実装して、サポートされているすべてのサーフェスで再利用できる場合があります。
rwg_token
の収集
フィードを通じて指定した action_link
が Google に表示されるたびに、その URL が変更され、一意のクエリ パラメータ rwg_token
が追加されます。rwg_token
値は、ユーザーがクリックしたリンクに関するメタデータを含むエンコードされた文字列です。このトークンを保存し、コンバージョン イベントの一部として返します。
各ランディング ページまたはアプリのエントリ ポイントで、rwg_token
クエリ パラメータに設定された値を解析して保存する必要があります。このパラメータを保存するための要件については、rwg_token
の永続化の手順をご覧ください。
ブラウザを介したデバイス単位のトラッキング用にこのトークンを解析する方法の例を以下に示します。または、リクエストに応答するときに、サーバーサイドでこのトークンを収集することもできます。
<script> 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; } } </script>
rwg_token
の永続化
rwg_token
URL パラメータを保持する必要があります。このパラメータは、指定したすべてのアクション リンクに追加され、合計 30 日間保持されます。rwg_token
の値は、編集せずに保存して返す必要があります。以前のアクセスから保持されている既存のトークンがある場合は、古いトークンを置き換え、保存期間の 30 日間をリセットする必要があります。
トークンを保持する場合は、トークンをデバイスレベルまたはユーザーレベルで保存できます。
- デバイス単位には、ブラウザ Cookie、ローカル ストレージ、アプリのローカル ストレージ、または 30 日間のアトリビューション ウィンドウでトークンを保持できるその他の方法が含まれます。
- ユーザーレベルには、サーバーサイド分析システムやその他のサーバーサイド システムを介して、アプリケーション データベースにデータを保持することが含まれます。
以下は、ファーストパーティ Cookie を介してウェブブラウザにトークンを保存する、デバイス単位のコンバージョン トラッキング例です。この例では、上記の例のようにトークン値を変数に解析していることを前提としています。この例を使用するには、「rootdomain」を自分のドメインに更新する必要があります。
<script> if (typeof rwg_token !== 'undefined') { document.cookie = "_rwg_token=" + rwg_token + ";max-age=2592000;domain=rootdomain.com;path=/"; } </script>
ユーザーレベルのコンバージョン トラッキングを使用する場合は、rwg_token
をサーバーに保存し、ユーザーに関連付ける必要があります。
コンバージョン データの送信
ユーザーが Google プレイスアクションのリンクに起因する取引を完了した場合は、コンバージョン エンドポイントに HTTP POST リクエストを送信する必要があります。2 つのエンドポイントがあります。1 つは本番環境用、もう 1 つはサンドボックス環境用です。
- 製品版:
https://www.google.com/maps/conversion/collect
- サンドボックス:
https://www.google.com/maps/conversion/debug/collect
POST 本文は、次の形式の JSON エンコード オブジェクトにする必要があります。
{ 'conversion_partner_id': partnerId, 'rwg_token': <rwg_token_val> }
サンドボックス環境と本番環境の両方で、コンバージョン イベントを送信する際に有効な rwg_token
を指定する必要があります。サンドボックス環境でテストする場合は、次のテストトークンを使用できます。
AJKvS9WeONmWKEwjG0--HdpzMq0yAVNL8KMxbb44QtbcxMhSx_NUud5b8PLUBFehAIxOBO-iYRIJOknEFkIJmdsofdVJ6uOweQ==
この POST リクエストを行う方法の JavaScript でのデバイスレベルのコンバージョン トラッキング(ユーザーのデバイス上の Cookie を使用)の完全な例を以下に示します。
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 }) }); }
ユーザー単位のコンバージョン トラッキングを使用する場合は、サーバーサイド ストレージ メカニズムからユーザーに関連付けられたトークンを取得し、同じ本番環境またはサンドボックス エンドポイントを使用してトークンを送信する必要があります(ユーザーがどのサーフェスを使用しているかは関係ありません)。
コンバージョン アトリビューションの要件
Google がコンバージョン アトリビューションに求める標準は、どの店舗でもプレイスリンクとのインタラクションに対して 30 日間のアトリビューション期間を設けることです。
このアトリビューション期間とは、以下のいずれかのシナリオでコンバージョン イベントが送信されることを意味します。
- ユーザーがプレイスアクションのリンクをクリックし、同じセッションで注文する
- ユーザーがプレイス アクションのリンクをたどり、30 日以内に別のチャネルから戻ってきて注文した場合。
- ユーザーがプレイスアクション リンクをたどり、同じセッション内または 30 日以内の別のセッションで別の店舗で注文した場合。
また、ユーザーが位置情報アクションのリンクからアクセスできるすべてのサーフェスからコンバージョン イベントが送信されることを想定しています。たとえば、以下が含まれます。
- パソコンまたはモバイルのウェブアプリ
- モバイルアプリ(アプリのディープリンクまたはドメインに登録されたアプリ インテントを使用)
トークンがユーザーレベルで保存されている場合(トークンの保持を参照)、クロスデバイス アトリビューションを提供することが求められます。つまり、パソコンからアクション リンクをたどり、その後(同じユーザー アカウントを使用して)モバイルで取引を完了したユーザーに対して、コンバージョン イベントがトリガーされる必要があります。
トークンがブラウザ Cookie など、デバイスレベルでのみ保存されている場合は、クロスデバイス アトリビューションを提供することは想定されていません。この場合、ユーザーがそのデバイスでアクション リンクをクリックした場合、各デバイスに個別のトークンが保持され、各デバイスが個別にアトリビューション ルールに従います。