使用Google跟踪代码管理器阻止登录的Wordpress用户混乱我的Google Analytics

问题描述 投票:0回答:1

我在https://therichtimes.com上使用Google跟踪代码管理器,并且如果用户在同一博客上登录Wordpress,则希望GA代码不会触发。

我做了以下事情:

1)将代码安装在“标题管理器”代码的“头部”上方。

2)验证当我登录时,它出现在我的代码中(完成视图源时) - dataLayer.push({'visitorLoginState':'logged-in'})

3)验证如果我没有登录或使用隐身模式,则以下内容在我的代码中 - dataLayer.push({'visitorLoginState':'logged-out'})

4)当visitorLoginState包含登录时,设置事件类型“页面视图”的GTM触发器以仅加载某些页面视图。

5)添加此触发器作为GA触发触发器的例外,即GA标记在所有页面视图上触发除访问者登录时登录。

6)问题是,当我通过GTM预览并访问我的博客时,即使登录,GA标签仍然会激活。我已经将问题确定为页面加载时“未定义”的数据层变量。我希望看到登录或注销的值;但显然这还没有完成。数据层推送不起作用吗?我的代码是错的还是设置?

<!-- exclude WP logged in -->
<script>
<?php
if ( is_user_logged_in() ) {
echo "dataLayer.push({'visitorLoginState': 'logged-in'});";
} else {
echo "dataLayer.push({'visitorLoginState': 'logged-out'});";
}
?>
</script>
wordpress google-analytics google-tag-manager
1个回答
0
投票

错误消息基本上消失了 - 您尝试将数据添加到尚不存在的数组中。在将数据推送到数据层之前初始化数据层:

window.dataLayer = window.dataLayer || [];
<!-- exclude WP logged in -->
<script>
<?php
if ( is_user_logged_in() ) {
echo "dataLayer.push({'visitorLoginState': 'logged-in'});";
} else {
echo "dataLayer.push({'visitorLoginState': 'logged-out'});";
}
?>
</script>

顶行说,“如果有一个全局数据层变量使用它,否则声明一个具有该名称的新数组”。

您还需要一个新事件(即密钥为“event”的键/值对),或者在推送数据层之后,否则GTM将不会在内部更新其变量。但是,由于您的脚本位于GTM脚本之上,因此内置标准事件将处理该事件(但如果您在页面加载后添加数据,请记住这一点)。

The indispensable Simo Ahava has more details

© www.soinside.com 2019 - 2024. All rights reserved.