1. Qiita
  2. 投稿
  3. Rails

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

  • 47
    いいね
  • 5
    コメント
この記事は最終更新日から1年以上が経過しています。
  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を指定することで対処した

参考にしたページ