1.数据层损坏
Google跟踪代码管理器中的事件跟踪依赖于数据层。但是,您站点上粗心的配置可能会破坏它。
那么如何知道站点上的数据层是否损坏?启用预览和调试模式,然后检查哪些事件显示在调试控制台的左侧。
通常,您始终应该在预览模式下看到至少3个事件:
1.页面预览
2.DOM准备就绪
3.窗口已加载
另一方面,如果您仅看到DOM Ready和窗口已加载,并且看到的是一个神秘的 Message,而不是Pageview,这就意味着您遇到了问题。
2.您尚未创建触发器
这适用于您尝试在GTM中使用内置触发器的情况,例如Just Links,All Element Clicks或Form Submission (等等)。
一些GTM初学者只是启用了相关变量(例如Click ID,Click Text等),并希望他们将开始在Preview and debug console中看到Click事件。
但是,这还不够。
您还需要启用触发器以开始在预览模式下查看事件(这适用于GTM的内置事件跟踪功能)。因此,如果我们在谈论链接点击跟踪,则需要完成两个步骤:
启用与点击相关的变量
在页面上至少启用“ Just Links”触发器(任何条件都可以)
如果您对“所有点击”感兴趣,则至少启用一个“所有元素点击”触发器,依此类推。
完成此操作后,刷新预览和调试模式,然后与该元素进行交互。现在,您应该在预览控制台中看到该事件。
3.使用错误的触发器
有时,您可能使用了错误的触发器来跟踪特定的交互。这里有几个例子。
1.您正在尝试使用“ 仅链接”触发器来跟踪元素的点击,但是该元素没有链接。
2.您可以检查该元素(右键单击>检查),然后检查该元素是否被<a>标记包围。如果不是,则无法使用“ Just Link Clicks” 触发器来跟踪此元素。
4.iFrame
您可能会尝试跟踪iframe中某个元素的交互。简而言之,iFrame允许在网站上嵌入HTML文档。该文档可以只包含一个按钮、一个视频播放器、一个预订表单、也可以包含整个网站。
iFrame的内容可以属于您的站点,也可以托管在完全不同的域中。
以下是有关iFrame跟踪的注意事项:
即使作为网站访问者,您可以与其进行交互(单击,滚动等),但父页面(包括GTM)上的JavaScript也无法“看到”该iFrame内部发生的情况(除非您可以访问该iFrame内部内容的源代码)。
5.dataLayer.push不包含事件键
如果要在任何dataLayer.push上触发标签,则该推送必须包含“事件”键,例如:
window.dataLayer = window.dataLayer || [];
window.dataLayer.push({
‘event’:’formSubmitted’
});
然后,您可以使用自定义事件触发器 并激活代码。另一方面,如果dataLayer.push不包含’event’,则在“预览”模式下将看到的仅是Message。
即使它向数据层添加了一些数据,您也不能使用消息推送作为触发条件。
6.错别字(+区分大小写)
Google跟踪代码管理器中的许多内容都区分大小写。例如,这意味着 productid≠productID。创建触发器时请记住这一点。例如,您看到一个自定义dataLayer.push,其中“事件”键为“ formSubmission”:
window.dataLayer = window.dataLayer || [];
window.dataLayer.push({
‘event’:’formSubmitted’
});
如果创建了这样的自定义事件触发器:
它不起作用(因为您需要使用大写的S)。
7.别忘了发布您的容器
检查事件是否被正确跟踪之后,请不要忘记发布GTM容器。在预览模式下,您会在GA中正确看到数据。
但是,其余的网站访问量仍未得到衡量。那是因为其他访客没有看到预览模式。如果要公开更改,则需要发布GTM容器。
为此,请单击GTM界面右上角的“提交”,然后执行所有必要的步骤。完成此操作后,您将开始看到来自网站所有访问者的事件。
8.ga()方法被劫持
即使您的代码已触发,也请仔细查看预览和调试模式。如果您希望代码在“滚动深度”事件上触发,请在预览模式下单击该事件,然后检查代码的状态,是“仍在运行”吗?
如果是,则表示未发送到Google Analytics(分析)的请求。有三个可能的原因:
1.您将GA设置变量插入了错误的字段。
2.ga()方法被劫持。
3.网站上不存在Google Optimize容器。
下面我将重点讨论第二个原因。
其他代码/工具可能会覆盖Google Analytics(分析)使用的全局ga()方法。这意味着GA设置刚刚中断,无法发送任何匹配。
让我们检查一下是否是这种的情况。在浏览器中打开JavaScript控制台,然后输入以下命令:
console.log(window [window [‘GoogleAnalyticsObject’]]。answer);
如果返回42,则表示状态良好,问题出在其他地方。
如果返回的不是42,而是其他值(很可能是undefined),则说明您的ga()方法已被劫持。
如何解决?
您可以在GTM中定义另一个全局函数名称。其必须在所有GA标签中完成此操作,并设置对应的GA变量。