Googleアナリティクス基礎:複数のトラッキングコード(マルチトラッキング)設定

マルチトラッキングUA

こんにちは。メディア立ち上げや運営の仕事をしていますカグア!です。

複数のサイトを管理していますと、個々のGoogleアナリティクス(ユニバーサルアナリティクス)を見つつも、全体を統合(マージ)してデータを見たくなるときがあります。そのときに使いますのがマルチトラッキングという、計測手法です。

Googleタグマネージャでの方法も含めて最新の情報でまとめましたので、ご参考になれば幸いです。

追記2015年7月17日 やはりドメインが同じ場合はcookieの処理をしないといけないっぽいです。ありがとうございます。

マルチトラッキングとは

マルチトラッキング

複数のサイトを運営するときに、それらをまたいで全体も見たいし、個々のサイトも見たい、というときにマルチトラッキング設定をして計測するケースが増えています。

ようは、サイトAとサイトBのトラッキングコードを別々に発行して、それぞれに貼り付け。

さらに、それらにまたがる統合的な計測のためのトラッキングコードを発行して、両方に貼るというものです。個々のサイトで見ますと、トラッキングコードが複数(マルチ)張られることになりますので、マルチトラッキングと呼ばれています。

マルチトラッキング公式ヘルプ
>>Advanced Configuration – Web Tracking (analytics.js)   |   Universal Analytics Web Tracking (analytics.js)   |   Google Developers

サブドメインのsetcookieの公式ヘルプ
>>Domains & Cookies – Web Tracking (analytics.js)   |   Universal Analytics Web Tracking (analytics.js)   |   Google Developers

どういうときにマルチトラッキングするの?

hatena

上図のようなサイト構成以外にも、ブログのプロバイダなどにもよく見られます。

ブログポータルの主催企業が全体のトラッキングをしたい、ただここのブログユーザーは自分のアクセス解析をしたい、というときに結果として、マルチトラッキングのGoogleアナリティクスのトラッキングコードが自動生成されているようです。

たとえば、ブログポータルで有名なはてなでは、以下のようなトリプルトラッキングのコードがはき出されているブログもありました。※ユニバーサル アナリティクスではなく非同期版のGoogleアナリティクスですが。

_gaq.push(
[‘_setAccount’, ‘UA-xxxxxxxxx-1’],
[‘_trackPageview’]
,[‘b._setAccount’, ‘UA-xxxxxxxxx-2’],
[‘b._setDomainName’, ‘.hatena.ne.jp’],
[‘b._trackPageview’]
,[‘c._setAccount’, ‘UA-xxxxxxxxx-3’],
[‘c._trackPageview’]
);

フィルタでビューを分けるのと何が違うの?

フィルタが適さない理由

ある程度Googleアナリティクスを知っている方ですと、上図のように思われる方もいらっしゃるのではないでしょうか。とりあえず、全体を取得しておいて、ビューを2つ複製しておいて、それぞれのビューでそのホスト名に一致したものだけを取得する、と。

ただ、これですと上図のように、切り分けて記録されたログの流入経路などが、特定できない可能性があります。フィルタというのは、ほんとに単純にデータを切り分けて記録するだけなのですね。

ですので、流入経路などセッションのひと通りの流れをも、個々にも、取ろうと思ったら、やはりマルチトラッキングになるのです。

クロスドメインでマルチトラッキングをする方法

1.トラッキングコード

それでは、ユニバーサル アナリティクスで、マルチトラッキング&クロスドメインをさせる、トラッキングコードを書いていきましょう。

具体的には、トラッカーを新しく生成し、そこにデータを送信する記述を追加します。ga(‘create’,~) メソッドでは、{} 内でカンマ区切りで、さまざまなキー(項目)とバリュー(値)を渡すことができます。

<script>
(function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
(i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
})(window,document,'script','//www.google-analytics.com/analytics.js','ga');

//トラッカーを宣言
ga('create', 'UA-xxxxxxxx-1', 'auto', {'allowLinker': true});
ga('create', 'UA-xxxxxxxx-2', 'auto', {'allowLinker': true ,'name': 'b'});

//クロスドメインを行き来するリンクにクッキーを渡す
ga('require', 'linker');
ga('linker:autoLink', ['aaa.jp','aaa-owned.jp']);

//データをsend
ga('send', 'pageview');
ga('b.send','pageview');
</script>

2.URLをマージするフィルタ

フィルタ構成

単にクロスドメイン設定をしただけですと、http://aaa.jp/index.html と http://aaa-owned.jp/index.html が同一の /index.html と記録され区別できません。Googleアナリティクスでは、ドメイン以下のURLしかデータ送信されないのです。

そこで、アナリティクス設定>ビュー設定>フィルタ を使い、計測URLにホスト名(ドメイン)をマージ(合体)させて、記録するフィルタを設定します。

これで、Googleアナリティクスで、レポート>行動>サイトコンテンツ>すべてのページ で見たとき、/index.html ではなく、http://aaa.jp/index.html と記録されるようになります。ただ、URL右につくアイコンをクリックしても、実際のページにジャンプする、という機能は動作しなくなりますがそこは仕方ありません。

3.参照元除外リストにドメイン追加

参照元除外

Googleアナリティクスで、アナリティクス設定>プロパティ>トラッキング情報>参照元除外リスト に、クロスドメインのホスト名を追加します。複数あるときは都度入力してください。カンマ区切りで入力します。
※公式ヘルプと異なる表記だったため修正いたしました。2015/07/14 15:46

これをすることで、流入元が管理下のドメインであったときにも、ちゃんとそれを除外して記録してくれます。

>>【保存版】Google Analytics(UA版)のトラッキングコードカスタマイズ5選+組み合わせ例4選 | NUMBER

Googleタグマネージャでクロスドメイン&マルチトラッキング

Googleタグマネージャの場合は、どちらのドメインにも入れるタグは、Googleタグマネージャのコンテナタグ1つで大丈夫です。とても簡単。

基本的に、ユニバーサル アナリティクスのタグを2つ入れれば、マルチトラッキング自体は稼働します。トラッカーも自動で生成してくれるので、トラッカー名も入れる必要はないです。

ドメイン(ホスト名)が変わるときに、2つ目のユニバーサル アナリティクスのタグの、プロパティIDを切り替えます。

1.トリガーとタグとの設定

タグマネージャ

Googleタグマネージャでは、ホスト名を取得する変数はすでに用意されています。ですから、個々のドメインで稼働させる2番目のユニバーサルアナリティクスタグの発火条件指定時に、そのままトリガー新規作成で、そのドメインを指定すればOKです。

2.アナリティクス側の設定

前述の、(2)と(3)の、フィルタと参上元除外リストの設定を行ってください。

マルチトラッキングの注意点

マルチトラッキングはいっけん便利そうですが、設置後に気をつけないといけないこともあります。

クロスドメインの場合はその設定も個々に必要

複数サイトにまたがるトラッキングコードの場合、それぞれの行き来をするときに、ちゃんとクロスド名設定がなされていませんといけません。

ユニバーサル アナリティクスの場合は、リンカーをトラッキングコードに追加し、フィルタでドメイン以下のURLをホスト名と結合させて、参照元ドメインの除外という通常の設定も行ってください。

たとえば、イベントトラッキングでも以下のように設定しなくてはなりません。

<a href="~" onClick="ga('send','event','click','aaa');
ga('b.send','event','click','aaa');">~</a>

上記ですと、イベントもマルチに送信しなてくはならなくなる、ということです。またもう一つのほうでは、新しく定義したトラッカー名をちゃんと入れないといけない、となります。上記では、b.send というところです。

非クロスドメインでもcookie干渉の検証が必要

たとえば、いかのようなマルチトラッキングをしたとします。

http://aaa.jp トラッキングコードA
http://aaa.jp/bbb トラッキングコードA、B
http://aaa.jp/ccc トラッキングコードA、C

この場合は、全体にまたがるトラッキングコードAに、クロスドメイン設定は必要ありません。

ただし、サブディレクトリ単位で計測するとき、同一ドメイン配下でcookieを処理させなくてはいけないため干渉がおこり、うまく計測できない可能性があります。ユニバーサル アナリティクス以前では、setcookiePathというメソッドがあり、ユーザー独自にそういった干渉対策としてcookieをコントロールできたのですが、ユニバーサル アナリティクスでは非推奨になっているようです。

>>UAでのサブディレクトリ設定方法について – Google プロダクト フォーラム

ですので、上記の場合は自己責任で検証しながら、実装していくことになります。お困りのさいは、弊社でも対応いたします。

現状ではタグマネージャ利用がもっとも低コスト

以上のことをふまえますと、何か新規の計測をしようというときに、都度都度セカンドトラッカーのことをどうするかなど、検証項目が増えるかたちになります。

いっぽう、Googleタグマネージャを使いますと、トラッカーは自動生成してくれますし、リンククリックのイベントもプロパティIDで自動認識してトラッカー名を識別するかんじです。Googleタグマネージャの公式ヘルプでも極力トラッカー名は指定しないでください、とあるほどです。

>>Tags – Tag Manager Help
>>一つのサイトを複数のGoogleアナリティクスプロパティで計測してみる(マルチトラッキング)<Googleタグマネージャ>|Googleアナリティクス雑記帳

ですので要検証ですが、おそらく自動で第2、第3のトラッカーもそのまま識別してくれるはずです。そう考えますと複雑なトラッキングをしたいときには、GTMを使ったほうがトータルではコスト安になると思います。


できる逆引き Googleアナリティクス Web解析の現場で使える実践ワザ240 ユニバーサルアナリティクス&Googleタグマネージャ対応: 木田 和廣, できるシリーズ編集部: 本


実践 Google タグマネージャ入門 増補版: 畑岡 大作(アユダンテ株式会社): 本

・ ・ ・ ・ ・

>>安っ!アマゾンで半額以下になっている食品タイムセール
セール特設ページを見る

↓↓↓無料のニュースレターを配信中です

トラッカーを個別に作る。