RiTurban‘sサイト解析ブログ

複数ドメインでのGoogleAnalyticsの_link、_linkByPostメソッドについて

2011年03月11日

質問頂いたので、そのご回答です。

今回は_linkや_linkByPostメソッドの使い方で悩む方も多いと思いますので、
この両者は、そもそも何なのか?そして、どう使うべきか?というお話をします。
—-
なお新しい非同期のga.jsに関しては、httpとhttpsの違いを意識しなくても良いようになっています。ですので、複数ドメインのhttpsでの挙動もhttpの挙動も特に違いを意識する必要はありません。
—-


まず、なんで複数ドメインでGAのプロファイル(※レポート)を同一にしたい場合、
これらややこしい_linkなどを使用する必要があるか?ですが。。

これはGAがファーストパーティークッキーを使用しているためです。

そもそもGAのプロファイル情報というのは、
基本、ユーザーのブラウザに保存されたクッキーを元に
集計が行われています。

ところがこのクッキー。

セキュリティの仕様で、違うドメイン同士では覗き見ることができません。

以下、例としてAサイト、Bサイト間でデータを同一プロファイルで取得したいとします。

GAのプロファイルからしてみれば、
AサイトとBサイトでドメインが違えばクッキーが別になっちゃうので、
それぞれ別々に集計をするしかなくなります。

つまり同一プロファイルで複数ドメインのデータ(この場合AサイトとBサイト)を集計するのは不可能です。

そのために苦肉の策として考え出されたのが
_link(飛び先のURL)メソッド。

この_link(飛び先のURL)メソッドを使うと、なんと!

Aサイト⇔Bサイト間を移動した時に、ご丁寧に(笑)今までのサイトで保存していたクッキーデータを、飛び先のサイトのhttp(もちろんhttpsも)のGETパラメータに載せて運んでくれます。
GETパラメータとはhttp:hogehoge.com/?paraparapara…..という?以降の文字列です)

こうなればしめたもの。

例えばAサイト→Bサイトと移動した場合、Bサイト側でGET値を取得してクッキーに再セットすればいいですね。
そのために使われるのが

_setAllowLinker(true)


です。
このメソッドにより、Bサイトでもクッキー値を取得してセットくれます。

そうするとクッキー値が継続して取得できるので、
GAは継続して集計を続けることができるという訳です。
(例えば、Aサイトでのページビューが3ページ目というデータが飛べば、Bサイトでも次は4ページ目だとわかりますね)

つまりお分かりだと思いますが、
複数ドメインで同一プロファイルで集計する場合は
全ての<a>タグのリンクで、お互いにこのlinkメソッドを使わなくてはなりません。
そうしないと、継続して集計ができないのです。

大変ですね。。

更に!

もう一つポイントがあります。

それは、ドメイン名称をどうするか?です。

通常、GAのコードをあるサイトに貼ると、
自動的に、そのドメイン名称でプロファイルデータを収集します。

ところが、今回はAサイトとBサイトで別々に集計させるわけにはいかないですよね。

ということで、それぞれのデータを
ドメインをセットしない&収集データのドメインチェックをしない(クッキーに保存するドメインハッシュ値が1になる)として収集する必要がでてきます。

そのために使うのが

_setDomainName(none)


メソッドです。
これでどういうドメインとして集計するか決めるのです。
ということで、これらメソッドを駆使すると複数ドメインを1プロファイルでとれます。

つまり全てのページにおいて
・setAllowLinker(true)を呼び出す
・setDomainName(none)を呼び出す
・Aサイト⇔Bサイトにリンクする場合は_link()メソッドを使う
 →formでのデータ送信の場合は_linkByPostを使う(そうしないとうまく相手のサイトにGETパラメータが飛ばないから)


よかったらお試しを。

(僕はまだテストくらいで本番で試したことがないので、間違いがあったらご指摘ください)

※参考にした白井さんの記事(いつもありがとうございます!)
http://wiki.abc-analytics.com/api/tracking-api/tracking-apis/domain-directory-methods/-_setdomainname