0

我希望在任何时候单击任何外部链接时创建一个 dataLayer 推送事件 - 我计划将其用作触发 GTM 标记以进行外部链接跟踪的触发器。我设想它会是这样的:

<script>
Some code to detect clicks on any external links
dataLayer.push({'event': 'eventNameXYZ'});
</script
4

1 回答 1

0

一个示例函数:

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 来查找链接和附加事件。

于 2013-03-05T13:06:56.010 回答