事件跟踪:如何防止重复加载 analytics.js

Posted

技术标签:

【中文标题】事件跟踪:如何防止重复加载 analytics.js【英文标题】:Event Tracking: How To prevent double loading analytics.js 【发布时间】:2018-06-06 05:43:55 【问题描述】:

我的网页中有一个 iframe。此 iframe 包含一个包含许多选择的表单。要减少Loadtime,请在Document.Ready jQuery后加载此Iframe。现在我想跟踪表单中的按钮是否被点击。在网页中的Google Analytics跟踪事件,但如果要在IF帧中加载的文件中的表单中跟踪我必须包含Analytics.js的表单中的事件。

问题:iframe 事件跟踪有效,但 analytics.js 加载了两次,并且每个页面请求都将被计算两次。

为了解决这个问题,我检查是否已经加载了 analytics.js 以防止重复加载,但这必须通过一个小的超时来完成。超时取决于每个用户的可用频段,而不是针对每个用户修复。这同样适用于 document.ready。

跟踪代码不能包含在 html 文件中,因为 jquery 是在 document.ready 之后加载的

所以如何在没有双加载分析的情况下跟踪iframe事件。

【问题讨论】:

GA代码不会加载分析库两次(或至少是他们的调试器所说的内容 - 似乎是一个内置的功能来防止这个功能)。浏览器也擅长缓存相同的文件,所以我不确定影响会有多大。 【参考方案1】:

我发现您的 analytics.js 文件存在问题,因为它加载了两次。为了回答你的问题,我想提出几点建议。

Google Analytics(分析)如何收集数据?

Google Analytics 用于在您的报告中提供所有信息的数据来自以下来源:

用户browser/system的HTTP请求信息 First-party cookies

另外一点是,document.ready() 阻止脚本实际加载,直到整个文档加载完毕。因此,我建议您采取以下步骤。它应该可以完美运行。

将 analytics.js 文件放在 html 的正文结束标记之前。<script src="analytics.js"></script> </body> 删除 document.ready() 函数并将您的内部脚本也放在分析脚本标记之前。

这应该可以防止双重加载并有效地使脚本运行而无需重新加载。

PS。如果它不起作用,我想看看你的代码。但是,它应该可以完美运行。

【讨论】:

以上是关于事件跟踪:如何防止重复加载 analytics.js的主要内容,如果未能解决你的问题,请参考以下文章

求JS 大神指导,页面的防止重复点击事件(具体见补充)

防止重复无限滚动ajax加载器

Facebook 像素购买事件重复数据删除

Meteor CollectionFS:如何防止重复文件?

如何使用 UIImageViewExtension 与 Swift 异步加载图像并防止重复图像或错误图像加载到单元格

如何禁止用户连续点击一个按钮事件详细JS