Ember.js и Google Analytics
Я хотел получить окончательный ответ здесь для более поздней справки о том, что у нас стабильный Ember RC. Комбинация двух лучших результатов поиска для emberjs google analytics
показывает, что это хороший способ отслеживать изменения маршрута:
App.ApplicationController = Ember.Controller.extend
routeChanged: ( ->
return unless window._gaq
Em.run.next ->
page = if window.location.hash.length > 0 then window.location.hash.substring(1) else window.location.pathname
_gaq.push(['_trackPage', page])
).observes('currentPath')
но затем я также вижу результаты использования отслеживания событий для одностраничных веб-приложений.
Я еще не тестировал приведенный выше код, для распространения изменений на панели инструментов GA требуется несколько часов. Обновление. Это не отображается под Категория контента на моей панели инструментов Google Analytics. Ни в разделе "Страницы", ни "События".
Если у кого-нибудь есть совет или есть что-то, что я пропускаю, то дайте мне знать. Я также могу PR-руководство для веб-сайта на основе ответов здесь.
Ответы
Ответ 1
Я бы использовал _trackPageview для вещей, которые имеют маршрутизируемые URL-адреса и _trackEvent для вещей, которые этого не делают.
В Отслеживание событий, когда они ссылаются на "Элементы страницы встроенного AJAX". Они не означают SPA, а скорее те случаи, когда URL-адрес остается прежним, но какое-то событие, которое вы хотите отслеживать, происходит на странице (в случае с AJAX).
Могут быть и другие случаи, когда имеет смысл использовать _trackEvent, но для переходов маршрута я использую _trackPageview.
Ответ 2
Алекс ДиЛиберто дал очень хороший разговор о надежном и масштабируемом способе добавления Google Analytics в приложение ember в своем разговоре EmberConf 2014 здесь.
- Слайды
- GitHub
App.ApplicationRoute = Ember.Route.extend({
actions: {
didTransition: function() {
Ember.run.once(this, function() {
ga('send', 'pageview', this.router.get('url'));
});
}
}
});
Разговор был направлен на независимость от того, какая библиотека аналитики была использована.
В настоящее время существует официальная Cookbook Ember по внедрению Google Analytics здесь.
Ответ 3
Использование routeChanged() не является хорошим способом отслеживать динамические сегменты, такие как /category/food/category/something, поскольку он будет запущен только один раз. Я написал статью об этом здесь: http://www.randomshouting.com/2013/05/04/Ember-and-Google-Analytics.html. Я также консультировался с ребятами из Ember и подтвердил, что это действительно правильный способ отслеживать изменения URL-адресов для Google Analytics.
Ответ 4
Большинство из этих ответов устарели. Вы должны использовать mixin и добавить его в свой маршрутизатор, чтобы прослушать событие didTransition
и запустить свой просмотр страницы там. Таким образом, он обрабатывается для всех маршрутов. Есть несколько аддонов, в том числе один, который я написал, называемый ember tracker, который дает вам pageviews
и отслеживание событий вне коробки.
Вы можете видеть, как я это сделал здесь. Это довольно прямолинейно.