0

无论如何,对我来说,我在这里有点头疼,因为我对这一切有点陌生。

我有一个 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 次迭代),但问题是相同(可以在控制台设置命令执行,但维度没有反映值)。

我能得到的任何调试和解决根本原因的建议都会对我有很大帮助。请提出您需要的任何问题,我会尽快回复。

4

1 回答 1

0

作为一种情况,这似乎有点复杂,因此了解它是如何工作的以及为什么会gtag同时ga存在并不容易。

无论如何,假设一切正常,您可以做的不是发送第二次网页浏览,而是发送一个专用事件(通过设置non-interactiontrue),这样您就不会更改 Google Analytics 中的任何信息,您可以传递给平台您感兴趣的数据(维度1)。

于 2021-02-27T09:59:27.937 回答