Google Analyticsなどを使ってサイト分析をする際に、複数のサイトを横断したユーザ行動の分析をしたい場合があると思います。

こうしたときに利用する技術がクロスドメイントラッキングなのですが、最近仕事で知識が必要になってきたので調べた内容をまとめます。

1. セッションとCookieの基礎知識

クロスドメイントラッキングの仕組みを理解するためには、Webで一般的に使われるセッションとCookieを知る必要があります。

下図はセッションとCookieについて概要になります。

Cookieはブラウザの中にデータを保持する仕組みになります。同じドメイン内でのみ、ページを跨り情報を持ち回ることができます。

セッションはWebサーバ側にデータを保持する仕組みで、初回アクセスがあった際にサーバが新しいセッション領域を作りランダムのセッションIDを払い出し、ブラウザのCookieに保持します。

その後はブラウザが画面遷移の都度サーバへのリクエストにセッションIDを渡すことで、サーバは同じユーザーからのアクセスであることを識別することができます。

2. トラッキングの仕組み

トラッキングは先程のセッションとCookieを使ってユーザの画面遷移や操作を追跡していくことを指します。

分析用のタグを埋め込んだWebページをブラウザが開くと、分析用のサーバがセッションを払い出し、セッションIDをブラウザのCookieに保持します。その後はセッションIDとユーザ行動の情報を分析用サーバに都度送ることで特定のユーザの行動を追うことができます。

ただし、Cookieは同じドメインでしか共有できないため、ドメインの違う別サイトに遷移すると、そこでユーザ行動の情報が途切れてしまいます。このセッションIDをドメインを跨いで引き継ぎユーザ行動を紐付けることをクロスドメイントラッキングといいます。

3. クロスドメイントラッキングの方式

ドメイン間でセッションを引き継ぐ方法には大きく、ファーストパーティCookieを使った方法と、サードパーティCookieを使った方法があります。

3-1. ファーストパーティCookieを使った方法

ファーストパーティCookieを使った方法はGAなどで使われております。分析用のセッションをWebサイトと同じドメインのCookieに格納するため、ファーストパーティCookieといいます。

この方式では、下図のように別ドメインに画面遷移するとCookieが共有できないため、別ドメインへの遷移時に分析用のセッションIDをURLのGETパラメータ(クエリパラメータ)で渡します。

よくGTM/GAを使うとリンクのURLに「?_ga=xxx」といったパラメータが自動的に付けられるかと思いますが、それがこの方式になります。

アンカーリンクと相性が悪かったりするので、注意が必要です。

3-2. サードパーティCookieを使った方法

サードパーティCookieを使った方法は分析用のセッションIDを分析用サーバのドメインのCookieに保存する方法です。

Webサイトのドメインとは別のCookieなので、ドメイン間でのセッションの引き継ぎは必要ありません。

広告などがこの方法を使っていますが、ブラウザの設定で無効化が可能なためサイト分析などには向いていません。最近はプライバシーの観点からこの方式に制限をするブラウザも出てきています。(iPhoneのIntelligent Tracking Preventionなど)

よく、amazonで商品を調べたら、どのサイトに行ってもその商品の広告が執拗にでてくるのはこの仕組みを使っているからになります。

3-3. サブドメインだけが異なる場合について

サブドメインだけ異なるサイトではCookieを共有できるため、特殊な仕組みは特に不要となります。

例えば以下の3つのサイトはサブドメインのみが異なるため、Cookieドメインをsample.co.jpに設定することでセッションを共有できます。

http://sample.co.jp

http://www.sample.co.jp

http://aaa.sample.co.jp