javascript - 使用 Google Analytics 跟踪出站链接时,为什么要延迟出站点击而不是将函数插入队列?

标签 javascript google-analytics outbound

official suggestion使用 Google Analytics(的异步版本)跟踪出站链接是将跟踪事件推送到队列中,例如:

gaq.push(['_trackEvent', 'Outbound', 'http://foo.bar/']);
setTimeout('document.location = "http://foo.bar"', 100);

push an anonymous function into the GA queue不是更好吗,比如:

gaq.push(['_trackEvent', 'Outbound', 'http://foo.bar/']);
gaq.push(function() { document.location = 'http://foo.bar/'; });

setTimeout 版本中,不能保证事件会在重定向发生之前被处理,而在第二个版本中,它只会在事件被处理之后才重定向——对吗?

最佳答案

执行您的建议的问题是它没有时间在页面更改之前执行请求。

<罢工>

浏览器不会等待这 2 个事件完成后再继续导航用户。如果您熟悉 jQuery,它类似于添加一个 click。链接的事件处理程序,添加 ajax向该处理程序请求,但不放置 event.preventDefault()在那里。换句话说,ajax 请求将不会被处理,因为用户已经转到下一页。

edit 如您在评论中提到的,如果您申请 return false,这无关紧要以及链接。

如果您实际上可以像您在示例中说明的那样推送一个函数,我真的不明白为什么它不会更好地工作,除了第一个请求超时某种原因,使用户等待的时间远远超过他们通常会等待的 100 毫秒。

那些被谷歌屏蔽的用户呢?有很多插件/程序等可以完全屏蔽 google analytics、adsense 等。这些用户会有正常的用户体验吗?

关于javascript - 使用 Google Analytics 跟踪出站链接时,为什么要延迟出站点击而不是将函数插入队列?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6230760/

相关文章:

javascript - 如何设置输入文本字段的默认光标属性?

google-analytics - 获取不活跃用户 Google Analytics

google-analytics - Google电子商务代码问题

google-analytics - 过滤来自 Google Analytics Reporting API 的结果

xml - 骡子 http :outbound-endpoint + multipart/form-data

javascript - 通过 jQuery 在 chrome 扩展内容脚本中访问跨源 iframe 的 HTML?

javascript - 仅当 flask 中的变量发生变化时才更新网站

javascript - 咕噜声 : Destination File Same Name as Source File After Templating

kubernetes - Knative/Kubernetes唯一IP用于出站流量

java.net.UnknownHostException : fba-outbound. amazonaws.com