我希望在任何时候单击任何外部链接时创建一个 dataLayer 推送事件 - 我计划将其用作触发 GTM 标记以进行外部链接跟踪的触发器。我设想它会是这样的:
<script>
Some code to detect clicks on any external links
dataLayer.push({'event': 'eventNameXYZ'});
</script
我希望在任何时候单击任何外部链接时创建一个 dataLayer 推送事件 - 我计划将其用作触发 GTM 标记以进行外部链接跟踪的触发器。我设想它会是这样的:
<script>
Some code to detect clicks on any external links
dataLayer.push({'event': 'eventNameXYZ'});
</script
一个示例函数:
function pushToDataLayer() {
var links = document.getElementsByTagName('a');
for(var i=0,cnt=links.length;i<cnt;i++) {
var current = links[i];
current.onclick = function() {
dataLayer.push({
'href': current.href,
'event': 'outbound' // event to trigger a rule in the tag manager
});
}
}
}
(如果你使用 jQuery 或类似的东西,这会容易得多)。这会将点击事件附加到所有链接。单击会将带有单击的 href 的事件和变量推送到 dataLayer。
在跟踪代码管理器中,您需要创建一个在自定义事件“出站”上触发代码的新规则,以及一个捕获“href”数据层变量的 dataLayer 类型的宏。您可以在代码中使用此变量(例如,使用 GA 虚拟“网页浏览”)并使用规则“触发事件“出站”来触发代码。
该代码可能不适用于所有浏览器,并且是对原理的演示,而不是生产代码(此外,它将捕获所有链接,您需要测试建议出站链接的绝对 url 或域名或 css 类名)。我建议使用 jQuery 来查找链接和附加事件。