Rails 4.x で TurbolinksとGoogleアナリティクスを共存させるには
以前記事を書きましたが、そのアップデート版です。
以前の記事
Rails / Google Analytics が動きを止めた & なぜかURLが正常に取得できない | Workabroad.jp
単純でよかった。
下記は Google Analytics で生成されるコードですが、ほぼまんま使います。
erb
1
2
3
4
5
6
7
8
9
10
<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');
を削っただけ。
erb
1
2
3
4
5
6
7
8
9
<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
haml
1
2
3
4
!!! 5
%html
%head
= render partial: 'shared/analytics'
みたいにして、
assets/javascripts/google_analytics.coffee
coffee
1
2
3
4
5
6
7
ready = ->
if window.ga != undefined
url = location.href.split('#')[0]
ga('send', 'pageview', url)
$(document).ready(ready)
$(document).on('page:load', ready)
とすれば良いのかと。
Chrome Inspector の Network で送信されているかどうか確認しましょう。
collect
などと入力してフィルタリングすると分かりやすいです。
以上です。