実装
概要
コンバージョン トラッキングの実装は、次の 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 を使用してこのトークンをウェブブラウザに保存しています。この例では、上記の例のようにトークン値を変数に解析していることを前提としています。この例を使用するには、「ルートドメイン」をお使いのドメインにアップデートする必要があります。
<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 での投稿 リクエストの作成方法をご覧ください。
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 など)でのみ保存されている場合、クロスデバイス アトリビューションを提供する必要はありません。この場合、ユーザーが各デバイスでアクション リンクをたどった場合、各デバイスは個別のトークンが保持され、各デバイスは個別にアトリビューション ルールに従います。