gpt4 book ai didi

javascript - 使用事件通过 Analytics 跟踪下载按钮点击

转载 作者:数据小太阳 更新时间:2023-10-29 04:41:06 24 4
gpt4 key购买 nike

我正在使用以下代码跟踪一个网站上的下载按钮点击:

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>

因此,当用户单击它时,一个事件将被推送到 Analytics,然后用户将被重定向到该文件。

这也适用于外部链接跟踪,没有区别。

现在是我的问题。 我能否确定在重定向用户之前“处理”了 Analytics 事件?如果不是,该重定向会导致事件丢失?目前正在跟踪事件,但我不能确定所有都是。

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

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

但尚不清楚这是否有效,或者它是否仅等同于前一个。事实上, here 据说“调用 _gaq.push [...] 在命令被推送时执行命令”

最佳答案

你是对的,你可以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;
}

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

你问:

But it's not clear if this works or if it's just equivalent to the previous one.

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

请注意,push(function... 版本将在重定向发生之前等待分析完成加载(无论如何听起来就像您想要的),但您可能想添加一种方法处理未加载分析的情况。

关于javascript - 使用事件通过 Analytics 跟踪下载按钮点击,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8481176/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com