同一ページに複数のGoogleアナリティクスIDの計測タグを設置する方法

複数のドメインのトラッキングタグと単一ページのトラッキングタグを同一ページに設置する必要があったので、

https://support.google.com/analytics/bin/answer.py?hl=ja&answer=1034342
https://developers.google.com/analytics/devguides/collection/gajs/?hl=ja#MultipleCommands

を参考にしつつ、設定をしてみた。

 

トラッキングタグを設置する。

まず、最初に以下のような非同期のトラッキングタグを取得する。

<script type="text/javascript">

var _gaq = _gaq || [];
 _gaq.push(['_setAccount', 'UA-XXXXX-X']);
 _gaq.push(['_trackPageview']);

(function() {
 var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
 ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
 var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
 })();

</script>

単一ページのトラッキングタグのトラッキングコードをUA-XXXXX-X、複数のドメインのトラッキングタグのトラッキングコードをUA-YYYYY-Yとすると以下のようなタグを書けばよい。

<script type="text/javascript">

var _gaq = _gaq || [];
 _gaq.push(['_setAccount', 'UA-XXXXX-X']);
 _gaq.push(['_trackPageview']);

 _gaq.push(['second._setAccount', 'UA-YYYYY-Y']);
 _gaq.push(['second._trackPageview']);
 _gaq.push(['second._setDomainName', 'none']);
 _gaq.push(['second._setAllowLinker', true]);

(function() {
 var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
 ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
 var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
 })();

</script>

このうち、

_gaq.push(['second._setAccount', 'UA-YYYYY-Y']);
_gaq.push(['second._trackPageview']);
_gaq.push(['second._setDomainName', 'none']);
_gaq.push(['second._setAllowLinker', true]);

が複数のドメイン関係のもの。
なお、「second」の部分は適当で構わない。

クロスリンクについて。

<a href="https://www.secondsite.com/?login=parameters">Login Now</a>

のようなリンクがあった場合、

<a href="https://www.secondsite.com/?login=parameters" onclick="_gaq.push(['second._link', this.href]); return false;">Login Now</a>

のようにする。
「second」の部分は統一することに注意。

フォームについて。

<form name="f" method="post">

のようなフォームがあった場合、

<form name="f" method="post" onsubmit="_gaq.push(['second._linkByPost', this]);">

のようにする。
こちらも「second」の部分は統一することに注意。

 

あとは、
https://support.google.com/analytics/bin/answer.py?hl=ja&answer=1034342
の「個別のドメイン名を表示します。」にあるように、レポートにドメイン名が含まれるように修正したら完了です。


もともと設置していた単一ページのトラッキングタグが従来のタグ(非同期タグでないほう)だったので、複数のドメインのトラッキングタグも従来のタグを使ったのだけど、クロスリンクでページが遷移しないなどの問題が発生しました。