クロスドメイントラッキングについて

クロスドメイントラッキングの基礎

GoogleアナリティクスではクライアントIDと呼ばれる文字列を使ってユーザーを一意に識別しています。このクライアントIDは、ドメインに紐づくCookieに格納されています。Cookieを使ってブラウザに保持しているため、通常はドメインを跨いでクライアントIDを共有することができません。

そこで、クロスドメイントラッキングでは異なるドメイン間で遷移するときに、リンク先URLにクエリ文字列の形でクライアントIDを付加させています。このようにすることで、リンク元ドメインのCookieとリンク先ドメインのCookieを同期させる処理のことをGoogleアナリティクスでは、クロスドメイントラッキングと呼んでいます。

ハッシュ形式のクロスドメイントラッキングとは

デフォルトでは、ドメインを跨ぐリンクをクリックしたときにリンク先URLに「 http://example.com/index.html?_ga=1.0000000.000000 」のようにクエリ文字列を付加することで、実現しています。
このクロスドメイントラッキングに関するコードの一部を変更すると、クエリ文字列ではなく、「 http://example.com/index.html#_ga=1.000000.000000 」のようなハッシュ文字列で情報を付加することができます。

ハッシュ形式クロスドメイントラッキングの設定

Googleタグマネージャを利用するケース

Googleアナリティクスタグの設定の中で、「その他の設定>クロスドメイントラッキング」から「区切り文字としてハッシュを使用」を「真」に設定すれば、クロスドメイントラッキングのパラメーターはハッシュ形式になります。

直接サイトに設置するケース

直接サイトに設置する場合は、linkerプラグインのautoLinkコマンドを下記のように変更します。

// 変更前
ga('linker:autoLink', ['destination.com']);

// 変更後
ga('linker:autoLink', ['destination.com'], true);

ハッシュ形式を使うべき場面

クエリ形式とハッシュ形式の違い

見た目上の違いは分かりやすいですが、ここでは見た目上の違いではなく技術的な観点から違いを説明します。一番大きな違いはここでは、「クエリ文字列はウェブサーバーに送信されるが、ハッシュ文字列はウェブサーバーには送信されない」点だと思います(ここでいうウェブサーバーは、Googleアナリティクスのサーバーではなく、ウェブサイトのサーバーを表します)。

ハッシュ形式を使わなければならない場面

ハッシュ文字列がウェブサイトのサーバーに送信されない、ということは、ウェブサイトのサーバーがハッシュ文字列を書き換える(削除してしまう)事態が発生しない、ことを表します。

動的なシステムが含まれるサイトの場合、ページが表示されるまでの間にサーバー側で何度かリダイレクト行われるケースがあります。このリダイレクトに置いて、せっかく付与したクロスドメイントラッキングのパラメーターが削除されてしまうケースがあります。

そんな時、サーバー側でリダイレクトが発生しても、ブラウザ上は残り続けるハッシュ形式のクロスドメイントラッキングの威力を発揮します。

実例

言葉で説明しても難しいと思うので、実例を出してみます。
あまり説明しやすいサイトが見つからなかったので、amazon.co.jpのサイトの注文履歴ページで説明してみます。このページは当然、amazonにログインしていないと閲覧することができないページです。

まずは通常にアクセス

amazonにログインしていない状態で、
https://www.amazon.co.jp/gp/your-account/order-history (注文履歴)
を開くと、
https://www.amazon.co.jp/ap/signin/************** (ログイン画面)
にリダイレクトされると思います。これが通常のアクセス結果です。

クエリ形式のパラメーターをつけてアクセス

今度は、
https://www.amazon.co.jp/gp/your-account/order-history?_ga=abc (注文履歴, クエリ形式)
のようにクエリパラメーターをつけてアクセスします。すると今度も
https://www.amazon.co.jp/ap/signin/************** (ログイン画面)
のようなURLにリダイレクトされます。上記ではマスキングしていますが、実際に試してみると、「_ga=abc」のパラメーターは付与されていないURLにリダイレクトされていることが分かります。

そのため、この状態ではクロスドメイントラッキングは失敗になります。

ハッシュ形式のパラメーターをつけてアクセス

次に、
https://www.amazon.co.jp/gp/your-account/order-history#_ga=abc (注文履歴, ハッシュ形式)
のようにハッシュ形式のパラメーターをつけてアクセスします。すると今度は
https://www.amazon.co.jp/ap/signin/**************#_ga=abc
にリダイレクトされます。先ほどと違って、「#_ga=abc」の部分が維持された状態でリダイレクトされています。

これであれば、クロスドメイントラッキングは成功するはずです。

まとめ

通常のクロスドメイントラッキングはGoogleタグマネージャが出てきたことで簡単に設定することができるようになりました。しかし、今回のようにリダイレクトを含むパターンを含め、サイトの構造によっては非常に手間のかかる状態になっていることもあります。

実際、ここに書かれていることを理解してクロスドメイントラッキングの設定を行っている人は皆無だと思います(自分もつい最近気づきました)。実はここに書かれていることは、クロスドメイントラッキングだけでなく、utm_source/utm_mediumのようなカスタムパラメータにも対応できます。

皆さんもクエリ形式とハッシュ形式のパラメーターを使い分けて、一歩先を行くアクセス解析の実装を行ってみてはいかがでしょうか。