我有一个小型网络应用程序,我正在跟踪其在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
参数?
答案 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');
一切都会好起来的。如果您发送后续事件或社交点击,那么这些也将使用您更新的位置和页面值。