Google 导致网站重复 POST 的分析

Google Analytics causing website to duplicate POSTs

我们注意到从今年(2018 年)1 月 12 日清晨 (GMT) 开始,我们的网站 (asp.net MVC) 发生了非常奇怪的行为变化。

来自该站点的 Http POST 开始触发两次(未经证实,但我们怀疑有时超过两次),四处搜寻,我们找不到任何更改。

我们动态加载的少数内容之一是 Google Analytics(特别是 Google 标签管理器),在反复试验的过程中,我们尝试禁用所有外部内容(这使得现象消失),然后一个一个地重新启用它们,一旦我们重新启用 GA,问题又出现了。 我们也尝试删除除 GA 之外的所有内容,但问题仍然存在。

在搜索时我们找不到任何已在 GA 中更新的内容,因此非常不清楚为什么突然开始,我们也找不到其他人报告相同的问题(无论是历史上还是现在)。

我们目前的最佳猜测是 GA 的一个依赖项已经更新,并且它包含一个错误,或者它暴露了我们代码中已经存在的错误。

有没有其他人注意到同样的问题?有人在他们的代码中找到导致 GA 奇怪行为的东西吗?

我发现了错误,这是由两个错误设置的触发器引起的。

两个触发器都是表单提交类型,并且都有双激活器,一个 "Activate trigger when all conditions are met" 和一个 "Activate trigger on specific forms"。

问题是两个 "all conditions" 激活器都设置为 "url matches regular expression .*",其中第二个激活器分别针对每个正确的表单路径。

设置它的人一定假设 Google 标签管理器在两个激活器之间使用了合乎逻辑的 "and"(不是不切实际的假设),但至少根据我的测试看来触发器在任一激活器匹配时激活。

我看不出第一个正则表达式匹配“.*”的任何原因,所以解决方法是简单地为每个触发器提供一个唯一的 url 表达式。

暂时还没有解释为什么会突然出问题,因为配置错误至少有几个月了。

P.S。无论出于何种原因,我们的 GTM 不是英文的,所以请在翻译时对 fields/etc 上我引用的名字持保留态度。

更新 该网站使用 ajax 到 post 形式,它们的组合和触发器上的 "Await tags" 标志看起来可能是组合条件未按预期运行的原因。 这意味着关于 "Await tags" 的未宣布的 GTM 性能更新可能是导致问题以惊人的频率开始发生的催化剂。