複数ドメインでのGoogleAnalyticsの_link、_linkByPostメソッドについて
2011年03月11日
質問頂いたので、そのご回答です。
今回は_linkや_linkByPostメソッドの使い方で悩む方も多いと思いますので、
この両者は、そもそも何なのか?そして、どう使うべきか?というお話をします。
—-
なお新しい非同期のga.jsに関しては、httpとhttpsの違いを意識しなくても良いようになっています。ですので、複数ドメインのhttpsでの挙動もhttpの挙動も特に違いを意識する必要はありません。
まず、なんで複数ドメインでGAのプロファイル(※レポート)を同一にしたい場合、
これらややこしい_linkなどを使用する必要があるか?ですが。。
そもそも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パラメータが飛ばないから)
よかったらお試しを。
(僕はまだテストくらいで本番で試したことがないので、間違いがあったらご指摘ください)
※参考にした白井さんの記事(いつもありがとうございます!)