0

GTM启动并运行,主要UA标签与ClickListener标签一起存在。GTM减少标签数量

为了减少宏的数量,我使用dataLayer变量宏进行事件类别,动作,标签,值&的交互,所以它们可以用于很多规则和标签。

所以我想从一个链接/按钮收集数据(添加到收藏),我添加了一个规则来监听点击使用{{事件}}等于gtm.click和{{事件标签}}等于Add_to_Fav(我通过onclick将标签推送到DL

目前为止还不错,但我需要创建另一个UA标签(Track Type - event),这个标签触发了以前制定的规则,这是我的问题,使用这种方法似乎创建了许多标签,如果我有另外20个链接想要从中收集数据,是否需要继续创建这样的标签?当然,这会影响页面加载速度,并且会在所有页面上触发多个标签。希望大家都清楚。

+1

要澄清,您正在寻找一种方法来动态设置事件标签,因为这是链接跟踪中唯一发生变化的部分? –

+0

嗨艾克,我的推理是否正确?我是否必须为每个点击事件创建标签和规则? – Ninjasys

+0

不,请参阅下面的答案。 –

回答

2

如果您需要检索链接文本以将其用作事件标签,则不需要太多的事件跟踪标签,这可能会非常冗长。相反,您可以使用自定义JavaScript宏 - 对他们来说很酷的是您可以使用自定义函数中的现有宏。

如果您创建点击侦听器或链接点击侦听器,则会创建几个宏 - 其中一个是{{element}},它是接收点击的DOM元素。

现在您创建一个类型为“自定义Java脚本”的宏,该宏必须包含具有返回值的匿名函数。

功能的准系统版本检索点击链接的文本将

function() { 
var el = {{element}}; 
return el.innerText; 
} 

(其实你不需要变量分配新建分配FY,你可以使用{{元素}}。innerText属性直接)。

您将该宏命名为Linktext,并在您的单个事件跟踪代码中使用宏{{Linktext}},并将其动态设置为点击链接文本的值(尽管您可能想要检查跨浏览器对innerText的支持,或者可以使用innerHTML代替它在你的使用案例中服务可能是相同的目的)。

+0

Great Eike,这是有道理的,并减少所需标签的数量。一旦创建宏(下面),我是否需要创建一个将文本传递给GA的标记? function(){ return {{element}}。innerText; } – Ninjasys

+0

也许我失去了一些东西,它的所有设置,但没有什么是在调试模式下通过新标签传递。我将{{Linktext}}作为事件标签并在我之前的回答中使用自定义Javascropt宏。有什么想法吗?? – Ninjasys

+0

我测试了这个,所以我很确定它的工作原理(但是,您应该也许不接受答案,直到这对你有用)。该宏应该使用Google Analytics(分析)事件跟踪标记进入事件标签字段(它本身不会跟踪任何内容,它只是在那里动态设置事件标签,因此您不需要使用许多事件跟踪标记)。 –