Google Analytics网站速度和自定义网址

时间:2014-07-30 17:22:28

标签: google-analytics

我有一个小型网络应用程序,我正在跟踪其在Google Analytics中的使用情况。该应用程序使用CakePHP框架,因此它在控制器和操作中进行组织。这是我在报告中关注的内容,而不是用户看到的URL 因此,为了从网址中过滤掉不相关的内容,我使用人工构建的网址调用send pageview命令:

var l = window.location;
ga('send', 'pageview', {
    location: l.protocol + '//' + l.hostname + '/' + controller_name + '/' + action_name,
    page: '/' + controller_name + '/' + action_name });

这也删除了我不关心的其他参数。

这一切都适用于大多数报告,如网页浏览量,流量,事件等,但不适用于网站速度。

“站点速度”报告显示浏览器地址栏中显示的URL(这些URL不同且更简单,用户不关心我的控制器和操作的实现),最糟糕的是它们包含操作参数,这意味着对“同一操作”的多次调用将被视为“网站速度”报告中的不同页面。

我知道我可以在Google Analytics端配置过滤以跳过参数并将多个网址“合并”为一个 但有没有办法让Site Speed报告尊重page命令的pageview参数?

1 个答案:

答案 0 :(得分:0)

当您最初拨打ga('create', 'UA-XXXX-Y')时,您会创建一个跟踪器对象。此时,跟踪器对象设置URL,标题,屏幕大小,浏览器版本等。

然后当您致电ga('send', ...)时,您将所有数据发送到Google Analytics。

您假设使用特定页面数据调用ga('send', 'pageview', ...)也会更新跟踪器对象上的内部存储数据,但事实并非如此。 (我同意这有点令人困惑。)

解决方案是在调用send之前更新跟踪器对象,然后正确的页面数据将用于所有后续命中。

以下是一个例子:

ga('set', {
  location: l.protocol + '//' + l.hostname + '/' + controller_name + '/' + action_name,
  page: '/' + controller_name + '/' + action_name
});

现在你可以这样做:

ga('send', 'pageview');

一切都会好起来的。如果您发送后续事件或社交点击,那么这些也将使用您更新的位置和页面值。