2

我正在尝试将 Google Analytics(网络)与我的聚合物应用程序一起使用(根据此 GA SPA doc更新 routing.html 中的跟踪器对象)。我使用 Polymer Starter Kit 作为起点。我没有看到任何综合浏览量,除了/- 跟踪应用使用情况的建议方法是什么?

路由.html

page('/topstories', function () {
  app.route = 'topstories';
  window.ga('set', 'page', '/topstories');
});

page('/about', function () {
  app.route = 'about';
  window.ga('set', 'page', '/about');
});

索引.html

<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-xxxxxxxxx-1', 'auto');
    ga('send', 'pageview');

</script>
4

2 回答 2

3

除了在跟踪器上设置页面值外,您还必须将浏览量命中发送到 Google Analytics。在您的路由回调函数中,您需要添加以下行:

ga('send', 'pageview');

您还可以编写一个函数来为您完成所有这些工作,这样您就不必每次都重复setand调用。send

function updatePage(path) {
  return function() {
    app.route = path.slice(1);
    ga('set', 'page', path);
    ga('send', 'pageview');
  }
}

您的页面路由声明如下所示:

page('/topstories', updatePage('/topstories'));
page('/about', updatePage('/about'));
于 2015-08-01T18:58:51.240 回答
1

我的解决方案利用了中间件式page.js处理程序:

// Routes
page('*', scrollToTop, closeDrawer, function(ctx, next) {
  ga('set', 'page', ctx.path); // simply add
  ga('send', 'pageview');      // these rows
  next();
});

但这也会在/路由初始化时触发,因此为了不重复计算访问,请ga('send', 'pageview');从您的<script>块中删除 final。

于 2016-01-15T05:58:23.033 回答