2015-02-17 4 views
0

Я ищу, чтобы добавить Google Analytics в приложение Rails 4 и прочитать о проблеме с Turbolinks.Rails 4 Turbolinks и Google Analytics

Я использовал следующий ответ, чтобы произвести обходной путь:

Google analytics with rails 4

Следующий код из нового analytics.js.coffee файла я создал под активы> JavaScripts

app/assets/javascripts/analytics.js 

// Coffee 
$(document).on 'page:change', -> 
if window._gaq? 
    _gaq.push ['_trackPageview'] 
else if window.pageTracker? 
    pageTracker._trackPageview() 

// Javascript 
$(document).on('page:change', function() { 
if (window._gaq != null) { 
    return _gaq.push(['_trackPageview']); 
} else if (window.pageTracker != null) { 
    return pageTracker._trackPageview(); 
} 
}); 

Представления> Макеты> _footer.html.erb (файл, который я установил для загрузки кода)

<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-837283948-1', 'myapplication.com'); 
    ga('send', 'pageview'); 

</script> 

Затем я поместил следующий код в моем файле application.html.erb соображениях> Макеты

<%= render 'layouts/footer' %> 

рендер код в application.html.erb файла приводит к сбою приложения, так что я предполагаю, что я что-то не так. Я следовал за проводником и не мог заставить его работать.

Благодарим вас за внимание и время.

+0

вы рассматривали, используя [Google-аналитику-turbolinks Gem] (https: // GitHub. ком/shukydvir/Google-аналитика-turbolinks)? – spickermann

+0

@spickermann Нет. Я не знал об этом решении. Это похоже на вышесказанное? Если я смогу сделать вышеупомянутую работу с простой заменой кода, было бы здорово. Посмотрите вперед к своим мыслям. – RubyMax

+0

Да, это в основном то же самое. Посмотрите [в исходном коде] (https://github.com/shukydvir/google-analytics-turbolinks/blob/master/lib/assets/javascripts/google-analytics-turbolinks.js.coffee) – spickermann

ответ

0

Ну, вы ошиблись, вы используете код из двух версий Google Analytics.

В вашем первом примере кода у вас есть строка _gaq.push(['_trackPageview']);, которая ссылается на старую глобальную переменную _gaq из библиотеки ga.js.

В вашем втором примере кода у вас есть строка ga('send', 'pageview');, которая ссылается на глобальную переменную ga из библиотеки analytics.js.

Кроме того, причина отслеживания страниц с Turbolinks - это сложно, потому что Rails конвертирует ваше приложение из традиционной модели запроса-ответа в модель приложения с одной страницей.

Я бы рекомендовал прочитать руководство разработчика по телефону building single page apps with analytics.js, чтобы получить обзор того, как правильно это сделать.

... или просто использовать turbolinks камень, если вы не хотите, чтобы изучить этот материал :)

Смежные вопросы