11

既然我们有一个稳定的 Ember RC,我想在这里得到一个明确的答案供以后参考。前 2 个搜索结果的组合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')

但随后我也看到了将事件跟踪用于单页 Web 应用程序的结果。

我还没有测试上面的代码,需要几个小时才能将更改传播到 GA 仪表板。 更新:这不会显示在我的 Google Analytics 仪表板上的内容类别下。不在“页面”或“事件”下。

如果有人有建议,或者如果我在某处遗漏了什么,请告诉我。我还可以根据此处的答案公关该网站的指南。

4

4 回答 4

2

Alex DiLiberto 在他的 EmberConf 2014 演讲中就将 Google Analytics 添加到 ember 应用程序的稳健且可扩展的方式进行了非常精彩的演讲。-幻灯片 - GitHub

App.ApplicationRoute = Ember.Route.extend({
   actions: {
     didTransition: function() {
       Ember.run.once(this, function() {
         ga('send', 'pageview', this.router.get('url'));
       });
     }
   }
});

该演讲旨在独立于使用的分析库。

现在还有一本关于在此处实施 Google Analytics 的官方 Ember Cookbook 。

于 2015-01-08T11:18:54.090 回答
1

对于具有可路由 URL 的事物,我会使用 _trackPageview,而对于没有可路由 URL 的事物,我会使用 _trackEvent。

事件跟踪链接中,当他们引用“嵌入式 AJAX 页面元素”时。它们不是指 SPA,而是指 URL 保持不变的情况,但您希望跟踪的某些事件发生在页面内(在通过 AJAX 的情况下)。

可能在其他情况下使用 _trackEvent 是有意义的,但对于路由转换,我会使用 _trackPageview。

于 2013-04-16T21:58:08.670 回答
1

使用 routeChanged() 不是跟踪动态段(例如 /category/food /category/something)的好方法,因为它只会被触发一次。我在这里写了一篇关于此的文章:http ://www.randomshouting.com/2013/05/04/Ember-and-Google-Analytics.html 。我还咨询了 Ember 背后的人,并确认这确实是跟踪 Google Analytics 的 url 更改的正确方法。

于 2013-06-19T13:44:46.757 回答
0

这些答案中的大多数已经过时了。您应该使用 mixin 并将其添加到您的路由器以侦听didTransition事件并在那里触发您的综合浏览量。这样它就适用于所有路线。那里有几个插件,包括我写的一个叫做ember tracker的插件,它为您提供pageviews开箱即用的事件跟踪。

你可以在这里看到我是如何做到的。这是相当直接的。

于 2017-04-18T22:37:00.523 回答