実装
まとめ
コンバージョン トラッキングの実装は、次の 3 つの要素で構成されています。
- ランディング ページ / アプリ エントリ ポイントから
rwg_token
とmerchant_id
を収集します。 - 適切なアトリビューション期間を確保するため、
rwg_token
とmerchant_id
を維持する。 - コンバージョン発生時(予約完了時)に保持されている
merchant_id
とmerchant_id
を比較します。 - コンバージョンの日時にコンバージョン イベントを送信する(予約完了)。
このコンバージョン トラッキングの実装では、Google アナリティクスやその他のサードパーティの JavaScript を使用する必要はありません。
コンバージョン トラッキングの実装を始める前に、デバイス単位とユーザー単位のどちらでコンバージョンをトラッキングするかを決めておく必要があります。
- デバイスレベルには、ブラウザ Cookie、ローカル ストレージ、アプリのローカル ストレージ、または 30 日間のアトリビューション期間にわたってトークンを保持できるその他の方法の使用が含まれます。トークンはユーザーのデバイスにローカルに保存されるため、ユーザーが使用しているデバイスを変更したり、ローカル ストレージや Cookie を削除した場合、シークレット ブラウジングやシークレット モードを使用している場合、コンバージョン イベントが適切にアトリビューションされない可能性があります。デバイス単位のコンバージョン トラッキングを使用する場合は、サポートされているすべてのサーフェス(モバイルを含む)に再実装する必要があります。
- ユーザーレベルでは、サーバー側の分析システムや他のサーバー側のシステムを使用して、アプリケーション データベース内でデータを保持します。トークンはサーバーサイドに保存されるため、ユーザーが使用するデバイスを変更したり、ローカル ストレージや Cookie を消去したり、プライベート ブラウジングやシークレット モードを使用したりしても、ユーザーが再度ログインするとコンバージョン イベントへの貢献度が関連付けられます。ユーザー単位のコンバージョン トラッキングを使用する場合、システムのアーキテクチャによっては、サーバーサイドに一度実装すれば、サポートされているすべてのサーフェスで再利用できる場合があります。
rwg_token
を収集する
お客様がフィードを通じて指定した action_link を Google が検出するたびに、その URL に一意のクエリ パラメータ rwg_token
が挿入されます。rwg_token
値はエンコードされた文字列です。この文字列には、ユーザーがクリックしたリンクに関するメタデータが含まれますが、ユーザーデータは含まれません。このトークンを保存して、コンバージョン イベントの一部として返す必要があります。
ランディング ページまたはアプリのエントリ ポイントごとに、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;
}
}
merchant_id
を収集する
コンバージョン トラッキング ロジックをフロントエンドのランディング ページに実装する場合は、merchant_id
を検出してキャプチャするカスタム スクリプトを実装する必要があります。通常、merchant_id
はランディング ページまたは URL にすでに含まれている可能性があるため、そこから取得することができます。そうでない場合は、それをキャプチャできるように、どこかにそのコンテナを公開する方法を見つける必要があります。これにより、バックエンドでの変更が発生する可能性があります。
バックエンドにコンバージョン トラッキング ロジックを実装すると、内部システムにクエリを実行してフロントエンド ページを生成するデータと一緒に merchant_id
が表示されることがあります。
この merchant_id
は、フィードで Google と共有しているものと同じである必要があります。
rwg_token
と merchant_id
の永続化
デベロッパーが指定したすべてのアクション リンクに追加される rwg_token
URL パラメータは、合計 30 日間保持する必要があります。rwg_token
の値は、編集せずに保存し、返す必要があります。
rwg_token
とともに、アクション リンクに関連付けられた merchant_id
を保存する必要があります。
前回のアクセスで保持されている既存のトークンがある場合は、以前の rwg_token
と merchant_id
を置き換え、30 日間の保存期間をリセットする必要があります。
上記のペアを保持する場合は、デバイスレベルまたはユーザーレベルで値を格納できます。
- デバイスレベルには、ブラウザ Cookie、ローカル ストレージ、アプリのローカル ストレージ、または 30 日間のアトリビューション期間にわたってトークンを保持できるその他の方法の使用が含まれます。
- ユーザーレベルでは、サーバー側の分析システムや他のサーバー側のシステムを使用して、アプリケーション データベース内でデータを保持します。
以下は、ファーストパーティ Cookie を使用してこれらの値をウェブブラウザに保存する、デバイス単位のコンバージョン トラッキングの例です。この例では、上記の例のようにトークン値が変数に解析されていることを前提としています。この例を使用するには、rootdomain.com
をドメインに更新する必要があります。
if (typeof rwg_token !== 'undefined') {
document.cookie =
"_rwg_token=" + rwg_token + ";_merchant_id=" + merchantid + ";max-age=2592000;domain=rootdomain.com;path=/";
}
ユーザー単位のコンバージョン トラッキングを使用する場合、rwg_token
+ merchant_id
をサーバーに保存し、ユーザーに関連付ける必要があります。
コンバージョン データの送信
ユーザーが 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>,
"merchant_changed": 1|2
}
例(パートナー 20123456 のテストトークンを含む未変更の販売者):
{
"conversion_partner_id": 20123456,
"rwg_token": "AJKvS9WeONmWKEwjG0--HdpzMq0yAVNL8KMxbb44QtbcxMhSx_NUud5b8PLUBFehAIxOBO-iYRIJOknEFkIJmdsofdVJ6uOweQ==",
"merchant_changed": 2
}
Merchant_changed の値は、販売者が最初のリダイレクト販売者から変更されたかどうかを判断するために使用されます。モデルタイプに
販売者の変更値 | 要件 |
---|---|
1 | この値は、ユーザーが元の販売者のウェブサイトを離れ、別の販売者のプラットフォームで購入を完了した場合に使用されます。 |
2 | この値は、顧客が元のエンティティ(販売者)を通じてトランザクションを完了したときに使用します。 |
サンドボックス環境と本番環境の両方で、コンバージョン イベントの送信時に有効な rwg_token
を指定する必要があります。テスト目的で、起動するまで両方の環境で次のテストトークンを使用します。
AJKvS9WeONmWKEwjG0--HdpzMq0yAVNL8KMxbb44QtbcxMhSx_NUud5b8PLUBFehAIxOBO-iYRIJOknEFkIJmdsofdVJ6uOweQ==
サンドボックスでテストするには、サンドボックスのリンクに次の URL パラメータを手動で追加する必要があります。
rwg_token=AJKvS9WeONmWKEwjG0--HdpzMq0yAVNL8KMxbb44QtbcxMhSx_NUud5b8PLUBFehAIxOBO-iYRIJOknEFkIJmdsofdVJ6uOweQ%3D%3D
(ユーザーのデバイス上の 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
})
});
}
ユーザーレベルのコンバージョン トラッキングを使用する場合は、(表示しているサーフェスにかかわらず)ユーザーに関連付けられているトークンをサーバーサイドのストレージ メカニズムから取得し、本番環境またはサンドボックスの同じエンドポイントを使用して送信する必要があります。
コンバージョン アトリビューションの要件
Google が義務付けているコンバージョン アトリビューションの基準は、どの店舗でも場所のリンクを利用したインタラクションに対して 30 日間のアトリビューション期間です。
このアトリビューション期間は、次のいずれかのシナリオでコンバージョン イベントが送信されると想定されます。
- ユーザーが位置情報アクション リンクをクリックし、同じセッションで同じ販売者の注文を行います。(販売者の変更値 = 2)
- ユーザーが位置情報アクション リンクをクリックし、30 日以内に別のチャネルから再度アクセスし、同じ販売者の注文を行います。(販売者の変更値 = 2)
- ユーザーが位置情報アクション リンクをたどってから、30 日間の同じセッション内または別のセッションで、別の店舗で注文します。(販売者の変更値 = 1)
また、Google は、ユーザーが場所アクション リンクからアクセスできるすべてのサーフェスからコンバージョン イベントを送信することを想定しています。例:
- デスクトップまたはモバイルウェブ アプリケーション
- モバイルアプリ(アプリのディープリンクまたはドメインの登録済みアプリ インテント経由)
トークンがユーザーレベルで保存されている場合は(トークンの永続化を参照)、クロスデバイス アトリビューションを提供することが求められます。つまり、ユーザーがパソコンからアクション リンクをたどって、同じユーザー アカウントを使用してモバイルでトランザクションを完了した場合、コンバージョン イベントをトリガーします。
トークンがデバイスレベルでのみ保存されている場合(ブラウザの Cookie 内など)は、クロスデバイス アトリビューションを指定する必要はありません。この場合、ユーザーがそのデバイスでアクション リンクをたどった場合、各デバイスは個別のトークンを保持し、各デバイスは個別にアトリビューション ルールに従います。