lor*_*o-s 7 javascript tracking google-analytics
我正在跟踪" 下载"按钮,点击具有此项代码的我的项目的网站:
function trackDownload(link) {
try {
_gaq.push(['_trackEvent', 'Downloads', 'Click', 'Setup executable']);
setTimeout('document.location = "' + link.href + '"', 100);
} catch (err) {}
return false;
}
Run Code Online (Sandbox Code Playgroud)
按钮是这样的:
<a href="files/setup.exe" onclick="return trackDownload(this);">Download</a>
Run Code Online (Sandbox Code Playgroud)
因此,当用户单击它时,会将事件推送到Google Analytics,然后将用户重定向到该文件.
这也适用于外部链接跟踪,没有差异.
现在我的问题.我可以确定在用户重定向之前"处理"了Google Analytics事件吗?如果没有,那重定向会导致事件丢失?目前,事件正在被跟踪,但我不能肯定所有的人都.
我读过我也可以尝试一些不同的东西,将重定向功能推送到Analytics队列:
_gaq.push(function() { document.location = link.href; });
Run Code Online (Sandbox Code Playgroud)
但目前尚不清楚这是否有效,或者它是否与前一个相同.事实上,这里说"调用_gaq.push [...]执行命令".
您是正确的,因为您可以将功能推送到分析队列.由于函数或跟踪事件按照将它们推送到数组的顺序执行/评估,因此您应该能够执行此操作:
function trackDownload(link) {
_gaq.push(['_trackEvent', 'Downloads', 'Click', 'Setup executable']);
_gaq.push(function() { document.location = link.href });
return false;
}
Run Code Online (Sandbox Code Playgroud)
请注意,try/catch不是必需的,因为push()没有记录任何东西(我建议删除它,因为空的catch块可以掩盖其他问题).
你问:
但目前尚不清楚这是否有效,或者它是否与前一个相同.
在您的第一个示例(push,setTimeout)中,如果您在执行重定向时尚未完成加载(因为那时_gaq只是一个数组),事件将会丢失.在带有的版本中push(function...,无论在用户点击下载按钮时是否已完成加载,都会在重定向之前记录事件.出于这个原因,我建议使用push(function....
请注意,push(function...版本将在重定向发生之前等待分析完成加载(这听起来像你想要的那样),但是你可能想要添加一种方法来处理分析无法加载的情况.
| 归档时间: |
|
| 查看次数: |
2361 次 |
| 最近记录: |