问题描述
无论如何,我在这里有点头疼,因为我对这一切都有些陌生。
我有一个 WP 站点,该站点的 GA 代码段插入了 Google Site Kit。 有一个插件可以在用户注册时将用户 ID 设置为自定义维度。
已使用 add_action('wp_footer')
命令将执行此“set”的代码添加到 WP 页脚中。
代码如下:
<script type=\"text/javascript\" id=\"set-google-id-dimension\">
document.addEventListener(\"readystatechange\",event => {
if (event.target.readyState === \"complete\") {
try{
gtag('event','registration',{'dimension1': '".$client."'});
}catch(e){
try{
ga(function() {
// Logs an array of all tracker objects
var trackers = ga.getAll();
var firstTracker = trackers[0];
console.log('tracker: '+firstTracker.get('name'));
ga(firstTracker.get('name')+\".set\",\"dimension1\",\"".$client."\");
});
}catch(e){
console.log('GA and GTAG not defined');
}
}
}
});
</script>
为什么是 GTAG 和 GA 命令?两种分析都在控制台中输出,但网站所有者不知道为什么“他们只使用 Google Site Kit”。
现在,此代码可在我控制的开发站点上运行(并且我已将其设置为尽可能模仿实时站点):
然而,当在“实时”站点上时,维度从未设置,即使我可以看到正在执行的“设置”命令(忽略控制台中的时间戳,我在离开站点之前忘记了截图,并且必须返回并重新加载页面):
实时站点不使用默认跟踪器,因此调用 ga.getAll()
来访问跟踪器信息。
据我所知,一切正常。
我从查看此问题中了解到 Google Analytics Custom Dimension Not Being Set 'set' 需要出现在 'send' 之前。
我不确定如何实现这一点,因为该插件不会将综合浏览量发送到 GA,据我所知,这是 Google Site Kit。我曾考虑在加载此插件代码时添加第二次浏览量发送(它仅在注册后立即执行,再也不会执行),但这会使页面点击量发生偏差。
多年来,该站点拥有无数的“管理员”,因此,如果其中一个插件中埋藏了某些东西导致某处发生冲突,我不会感到惊讶。有一次我认为这是一个时间问题,所以我每 50 毫秒加载一次函数检查要定义的“ga”,然后执行“set”命令(限制为 35 次迭代),但问题是一样(可以在控制台设置命令执行,但维度没有反映值)
我能得到的任何调试建议和找到根本原因对我都有很大帮助。请提出您需要的任何问题,我会尽快回复。
解决方法
这种情况似乎有点复杂,因此了解它的工作原理以及为什么同时存在 gtag
和 ga
并不容易。
无论如何,假设一切正常,您可以不发送第二次综合浏览量,而是发送专用事件(通过设置 {{1} } 到 non-interaction
),这样您就不会更改 Google Analytics 中的任何信息,并且您可以将您感兴趣的数据传递给平台(维度 1)。