本記事で対象とする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版)でのファイルダウンロードを計測するための設定
<この記事は「デジマのあれこれ」にて公開された記事を一部改良して移植したものです>