JavaScript
CoffeeScript
Rails
jQuery
GoogleAnalytics

Google AnalyticsをRails 4のTurbolinksに対応させる

More than 3 years have passed since last update.


  1. <head>要素内にトラッキングコードを置く(<body>に置いたスクリプトは毎回実行されるので二重に送信されてしまう)

  2. 以下のスクリプトを追加、もしくはgoogle-analytics-turbolinks gemを使う


google-analytics-turbolinks.js.coffee

$(document).on 'page:load page:restore', ->

# Universal Analyticsの場合
if window.ga?
ga('set', 'location', location.href.split('#')[0])
ga('send', 'pageview')

# 標準のアナリティクスの場合
if window._gaq?
_gaq.push(['_trackPageview'])



  • Turbolinksでページを読み込んだとき(とキャッシュから復元されたとき)page:changeイベントが発火するので、ここでPV送信メソッドを実行

  • page:changeは通常の遷移時にも発火してしまうため、page:load page:restoreでTurbolinksでの遷移と履歴復元時にPV送信メソッドを実行する

  • Universal Analyticsではなぜか正しいパスが取得できず元のURLのまま送信されてしまうため、ga('set', 'location')を使ってlocationを指定することで対処した


参考にしたページ