実装
まとめ
コンバージョン トラッキングの実装は、次の 3 つの要素で構成されます。
-
ランディング ページまたはアプリのエントリ ポイントから
rwg_token
を収集する。 -
適切なアトリビューション期間に合わせて
rwg_token
を維持する - ご購入手続き時にコンバージョン イベントを送信する
このコンバージョン トラッキングの実装にあたって、Google アナリティクスやその他のサードパーティの JavaScript を使用する必要はありません。
コンバージョン トラッキングの実装を始める前に、コンバージョンをデバイス単位とユーザーのどちら単位でトラッキングするかを決めておく必要があります。
- デバイスレベルには、ブラウザ Cookie、ローカル ストレージ、アプリのローカル ストレージなど、30 日間のアトリビューション期間の間トークンを保持できる任意の方法の使用が含まれます。トークンはユーザーのデバイスにローカルに保存されるため、ユーザーが使用しているデバイスを変更したり、ローカル ストレージや Cookie を消去したり、シークレット ブラウジングやシークレット モードを使用したりすると、コンバージョン イベントが適切にアトリビューションされない可能性があります。デバイスレベルのコンバージョン トラッキングを使用する場合は、サポートされているすべてのサーフェス(モバイルを含む)に再実装する必要があります。
- ユーザーレベルでは、サーバー側の分析システムや他のサーバー側システムを介した、アプリケーション データベースでのデータの保持が含まれます。トークンはサーバーサイドに保存されるため、ユーザーが使用しているデバイスを変更したり、ローカル ストレージや Cookie を消去したり、プライベート ブラウジングやシークレット モードを使用したりした場合でも、ユーザーが再度ログインしたときにコンバージョン イベントへの貢献度が割り振られます。ユーザー単位のコンバージョン トラッキングを使用する場合、システムのアーキテクチャによっては、これをサーバー側で一度実装すれば、サポートされているすべてのサーフェスで再利用できる場合があります。
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
を指定する必要があります。サンドボックス環境でのテストでは、次のテストトークンを使用できます。
ADQ7psRE9YyDSVR6YpfD-fYdxoFYVKS1xeTvXdSxqF8a3bnk0W62eMEnUjoNPwjhNHG0elwBnM1awTjr9vXET8yOowCeuODjwA==
デバイスレベルのコンバージョン トラッキング(ユーザーのデバイス上の Cookie を使用)の詳細な例については、JavaScript で POST リクエストを行う方法をご覧ください。
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 など)でのみ保存されている場合、クロスデバイス アトリビューションを提供することは想定されていません。この場合、ユーザーがそのデバイス上でアクション リンクをクリックした場合、各デバイスには個別のトークンが保持され、各デバイスは個別にアトリビューション ルールに従います。