ひとつのページで複数のGoogle Analytics(analytics.js版)のトラッキングコードを使う方法(カスタムディメンションを用いた場合も対応)

本記事で対象とするGoogle Analyticsはユニバーサルアナリティクス(analytics.js)とします.ひとつのページに設置できるGoogle Analytics(Google Analyticsのトラッキングコード)は通常は1つですが,ちょっとしたカスタマイズで複数のGoogle Analyticsを設置できます.つまり,複数のGoogle Analyticsのプロパティの環境下で別々にデータ集計ができるようになります.ひとつのページで複数のGoogle Analyticsを使うことができると,記事「ユーザーエージェントの情報を利用したリファラスパム対策」で書いたようなリファラスパムなどの問題で複数のGoogle Analyticsを設置する必要がある(設置したい)場合などで活用できます.

オリジナルのユニバーサルアナリティクス(analytics.js)のトラッキングコード(トラッキングID「UA-12345678-X」とします.このIDは例示のための適当な番号です)は,

<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-12345678-X', 'auto');
  ga('send', 'pageview');

</script>

以上のようになっていますが,これに新たなトラッキングID「UA-12345678-Y」を追加して計測する場合のカスタマイズは以下のようになります.

<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-12345678-X', 'auto');
  ga('send', 'pageview');

  ga('create', 'UA-12345678-Y', 'auto', {'name': 'newTracker' });
  ga('newTracker.send', 'pageview');

</script>

つまり,赤字の部分が追加されたコードです.さらにGoogle Analyticsを追加したいならば,新たなトラッキングIDと「newTracker」の箇所を変えた(例えば「newTracker2」などに変えた)コードを追加することになります.

さて記事「GA(analytics.js版)でクライアントID・アクセス時間等を取得する(JavaScriptのみ版)」で紹介したカスタマイズした場合(カスタムディメンションを用いている場合)で,上記のようにトラッキングID「UA-12345678-X」と「UA-12345678-Y」の2つを使って計測する場合は,どうすればよいでしょうか?それは以下のような記述となります.

<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-12345678-X', 'auto');
 ga('create', 'UA-12345678-Y', 'auto', {'name': 'newTracker' });

 ga(function(tracker) {
  var clientId = tracker.get('clientId');
   ga('set', 'dimension1', clientId); 
   ga('newTracker.set', 'dimension1', clientId);
 });

 var now = new Date();
 var year = now.getFullYear();
 var month = now.getMonth()+1;
 var date = now.getDate();
 var hour = now.getHours();
 var minute = now.getMinutes();
 var second = now.getSeconds();
 var at_js = year+"/"+('0' + month).slice(-2)+"/"+('0' + date).slice(-2)+" "+('0' + hour).slice(-2)+":"+('0' + minute).slice(-2)+":"+('0' + second).slice(-2)
 ga('set', 'dimension2', at_js); 
 ga('newTracker.set', 'dimension2', at_js);

 var ua = navigator.userAgent;
 ga('set', 'dimension3', ua);
 ga('newTracker.set', 'dimension3', ua);

 var uri_js = location.pathname;
 ga('set', 'dimension4', uri_js);
 ga('newTracker.set', 'dimension4', uri_js);

 ga('send', 'pageview');
 ga('newTracker.send ', 'pageview');

</script>

記事「GA(analytics.js版)でクライアントID・アクセス時間等を取得する(JavaScriptのみ版)」のコードとの違いは赤字の箇所です.この赤字のコードによって,トラッキングID「UA-12345678-Y」にも通常のデータの他にクライアントIDとアクセス時間とパスとユーザーエージェントのデータがカスタムディメンションが送られます.

補足

その他のGoogleアナリティクスのカスタマイズ関連の記事はカテゴリー「GAのカスタマイズ」を参照していください.例えば,下記のような記事があります.

GA(gtag.js版)でクライアントID・アクセス時間等を取得する(JavaScriptのみ版)

GA(analytics.js版)でIPアドレス・クライアントID等を取得する(外部サーバー使用版)

設定関係で以下のような記事もあります.

Google Analytics(analytics.js版)でURLが変わらないサイトを仮想ページで計測する

Google Analytics(analytics.js版)でのファイルダウンロードを計測するための設定

 

 

<この記事は「デジマのあれこれ」にて公開された記事を一部改良して移植したものです>