我应该在页面中放置dataLayer创建代码?是否必须将其置于GTM代码段之上?
我应该在哪里调用dataLayer.push()函数?是否应该始终将代码放入代码中,dataLayer创建代码的位置如下所示?
<script>
dataLayer=[{‘Pcategory’:’login’,‘Pno’:1}],
dataLayer.push({‘Pcategory’:’login’,Pno:1});
</script>
是否必须为我们推送的每个dataLayer声明一个事件?
在调用dataLayer.push()函数之前是否必须声明dataLayer,或者GTM是否提供了内置的dataLayer?
我应该在下面放置代码?如果我想宣布它,我该怎么办呢?
<a href="#" onclick="dataLayer.push({'event': 'GAEvent','pageURL': '/link-click/'});">Click Here...</a>
答案 0 :(得分:0)
您需要在GTM代码段上方初始化dataLayer。您需要在页面加载时放置应该可用的所有信息(页面加载时的GTM代码段只能访问标记managenemt脚本之前的内容)。如果您在页面加载时不需要自定义数据,则dataLayer可能为空。你仍然需要声明,否则稍后推送会失败。
如果要在页面加载后添加数据,请使用推送,例如如果您想响应用户交互。
您不需要为点击或表单提交添加自定义事件,因为GTM具有所谓的自动事件处理程序(即响应点击所需的javascript已经是GTM脚本的一部分)。
如果要在非点击或形式提交(或计时器)的用户交互上触发标记,则需要自定义事件。例如。如果您运行javascript函数并且需要根据结果触发标记,则该函数可以将每个可能结果的自定义事件推送到dataLayer,并且您可以相应地触发标记。
例如,您可以设置基于点击的触发器;如果链接文本是unqiue,您可以根据链接文本设置pageUrl变量(如果使用单击触发器,则可以通过{{Click Text}}变量自动获取)。因此,对于该示例,您根本不必使用任何自定义代码,只需使用GTM提供的内容即可。