为外部点击创建dataLayer自定义事件

时间:2013-03-04 17:02:07

标签: google-analytics google-tag-manager

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

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

1 个答案:

答案 0 :(得分: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。

在跟踪代码管理器中,您需要创建一个新规则,在自定义事件“outbound”上触发标记,并创建一个类型为dataLayer的宏,用于捕获“href”dataLayer变量。您可以在标记中使用此变量 - 例如使用GA虚拟'pageview - 并使用规则“fire on event”outbound“触发标记。

代码可能无法在所有浏览器上运行,并且是原型而非生产代码的演示(加上它将捕获所有链接,您需要测试绝对URL或域名或css类名称,表明出站链接)。我建议使用jQuery来查找链接和附加事件。