跟踪下载按钮,点击使用事件分析

时间:2011-12-12 21:34:12

标签: javascript google-analytics tracking

我正在跟踪下载按钮,点击我的项目网站,其中包含以下代码:

function trackDownload(link) {
    try {
        _gaq.push(['_trackEvent', 'Downloads', 'Click', 'Setup executable']);
        setTimeout('document.location = "' + link.href + '"', 100);
    } catch (err) {}
    return false;
}

按钮就是:

<a href="files/setup.exe" onclick="return trackDownload(this);">Download</a>

因此,当用户点击它时,会将事件推送到Google Analytics,然后将用户重定向到该文件。

这也适用于外部链接跟踪,没有差异。

现在我的问题。 我可以确定在用户重定向之前“处理”了Google Analytics事件吗?如果没有,那重定向会导致事件丢失?目前正在跟踪事件,但我无法确定所有是否正确。

我读过我也可以尝试一些不同的东西,将重定向功能推送到Analytics队列:

_gaq.push(function() { document.location = link.href; });

但目前尚不清楚这是否有效,或者它是否与之前的相同。实际上, here 表示“对_gaq.push [...]的调用会在按下”时执行命令。

1 个答案:

答案 0 :(得分:7)

你的意思是正确的push functions onto the analytics queue。由于函数或跟踪事件按照将它们推送到数组的顺序执行/评估,因此您应该能够执行此操作:

function trackDownload(link) {
    _gaq.push(['_trackEvent', 'Downloads', 'Click', 'Setup executable']);
    _gaq.push(function() { document.location = link.href });
    return false;
}

请注意,try / catch不是必需的,因为push()没有记录任何东西(我建议删除它,因为空的catch块可以mask other problems)。

你问:

  

但目前尚不清楚这是否有效,或者它是否与之前的相同。

在您的第一个示例(push,setTimeout)中,如果您在执行重定向时尚未完成加载,则事件将会丢失(因为那时_gaq只是一个数组)。在具有push(function...的版本中,无论在用户点击下载按钮时是否已完成加载,都会在重定向之前记录事件。出于这个原因,我建议使用push(function...

警告push(function...版本会在重定向发生之前等待分析完成加载(这听起来像你想要的那样),但是你可能想要添加一种方法来处理分析没有的情况。 t load。