Rails 4.x で TurbolinksとGoogleアナリティクスを共存させるには

以前記事を書きましたが、そのアップデート版です。

以前の記事
Rails / Google Analytics が動きを止めた & なぜかURLが正常に取得できない | Workabroad.jp

  
単純でよかった。
下記は Google Analytics で生成されるコードですが、ほぼまんま使います。

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

</script>

実装

views/shared/analytics.html.erb
ga('send', 'pageview'); を削っただけ。

<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-000000-00', 'your-website.com');

</script>

  
layouts/application.html.haml

!!! 5
%html
  %head
    = render partial: 'shared/analytics'

  
みたいにして、

assets/javascripts/google_analytics.coffee

ready = ->
  if window.ga != undefined
    url = location.href.split('#')[0]
    ga('send', 'pageview', url)

$(document).ready(ready)
$(document).on('page:load', ready)

とすれば良いのかと。

  
Screen Shot 2015-12-12 at 10.16.23 AM

Chrome Inspector の Network で送信されているかどうか確認しましょう。
collect などと入力してフィルタリングすると分かりやすいです。
  
以上です。

何かありましたらコメントをどうぞ

comments powered by Disqus

人気の記事

950 Points チリ出身のギタリストが弾くドラゴンボールZがむちゃくちゃかっこいい…
774 Points Wordpress + Heroku + PostgreSQL + Amazon S3 = ¥0 / 無料でサイト運営
700 Points Rubyのチートシート 変数 / クラス / モジュール
524 Points Rubyのチートシート / アクティブサポート
451 Points 紙のデザイナーがウェブ開発できるようになるまでに必要なこと
435 Points Rails / Google Analyticsのデータを使って分析や管理画面のためのグラフをつくる
323 Points RailsとHerokuでノーティフィケーションをプッシュする / PusherとTurbolinksの兼ね合い
222 Points Rails / RSpec テスト書いたことない メンドクサイ(n´Д`)という時のチートシート
193 Points Rails / Ajaxを使って画面遷移しない一時保存機能をつける
193 Points Protractorでスクレイピングしてみた