F.Ko-Jiの「一秒後は未来」

ユニバーサル アナリティクスで「ga」という関数名を変更したい場合

Google アナリティクスユニバーサル アナリティクスで使われているトラッキングコード(analytics.js)では、デフォルトで「ga」という名前の関数が使われるようになっています。

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

</script>

↑ この「ga(‘create’, …)」という部分。

サイトによっては他の JavaScript で定義されているグローバル変数名と衝突して、うまく動作しないことがあるかもしれません。従来の ga.js で使われていた「_gaq」という変数名より被りやすそうですし。

そういった場合に備えて、analytics.js ではこの「ga」を別の名前に変更するオプションが用意されています。

具体的には「Advanced Configuration – Web Tracking (analytics.js) – Google アナリティクス — Google Developers」の「Renaming the Global Object」というところにありますが、例えば以下のようなコードにすれば「__gaTracker」という名前に変更することが可能。

(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','__gaTracker');

最後の行の末尾のほうで「__gaTracker」としている箇所が変更部分です。元のトラッキングコードは、この部分が「ga」となっていると思います。

こうすることで、

ga('create', 'UA-XXXX-Y', 'auto');
ga('send', 'pageview');

の部分は、

__gaTracker('create', 'UA-XXXX-Y', 'auto');
__gaTracker('send', 'pageview');

と書き換えることができ、そのページ内では「ga」の代わりに使うことができるようになります。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

著者について

fkoji

F.Ko-Ji

Webエンジニアやってます。最近は ドットインストール の開発がお仕事です。その傍ら、個人で Meity電車遅延なう梅酒.in#グラドル自画撮り部 の部室といったネットサービスを開発・運営してます。梅酒と草野球とリアル脱出ゲームが好きです。

» 詳しいプロフィールや運営サービスの一覧など