无论如何,对我来说,我在这里有点头疼,因为我对这一切有点陌生。
我有一个 WP 网站,它的 GA 片段插入了 Google Site Kit。有一个插件,当用户注册时,将用户 ID 设置为自定义维度。
执行此“设置”的代码已使用add_action('wp_footer')
命令添加到 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>
为了便于阅读,我去掉了 PHP,但这在页脚中得到了回应。
为什么是 GTAG 和 GA 命令?两种分析都在控制台中输出,但网站所有者不知道为什么,因为“他们只使用 Google Site Kit”。
现在,此代码可在我控制的开发站点上运行(并且我已将其设置为尽可能模仿实时站点):
但是,当在“实时”站点上时,从未设置维度,即使我可以看到正在执行的“设置”命令(忽略控制台中的时间戳,我在离开该站点之前忘记截图了,不得不去返回并重新加载页面):
实时站点不使用默认跟踪器,因此ga.getAll()
调用访问跟踪器信息。据我所知,一切都应该正常。
我了解到,通过查看 Google Analytics Custom Dimension Not Being Set这个问题 ,“set”需要在“send”之前出现。
我不确定如何做到这一点,因为插件不会将综合浏览量发送到 GA,据我了解,这就是 Google Site Kit。我曾考虑在加载此插件代码时添加第二次网页浏览发送(它仅在注册后立即执行,不再执行),但这会扭曲页面点击。
多年来,该站点拥有无数的“管理员”,因此如果其中一个插件中埋藏了什么东西导致某处发生冲突,我不会感到惊讶。有一次我认为这是一个时间问题,所以我让函数每 50 毫秒加载一次,检查要定义的“ga”,然后执行“set”命令(限制为 35 次迭代),但问题是相同(可以在控制台设置命令执行,但维度没有反映值)。
我能得到的任何调试和解决根本原因的建议都会对我有很大帮助。请提出您需要的任何问题,我会尽快回复。