右键单击跨域跟踪

时间:2015-12-18 16:11:28

标签: google-analytics cross-domain

当用户使用右键点击(而非左键点击)跳转域时,是否有办法传递GA Cookie进行跨域跟踪?

1 个答案:

答案 0 :(得分:0)

似乎依赖于autoLink,它会在左键单击时自动修饰链接,并不直接提供替代事件。

由于我正在做假设,我没有提供完整的解决方案。

autoLink in GA's analytics.js devguide:

// Loads the Linker plugin
ga('require', 'linker');

// Instructs the Linker plugin to automatically add linker parameters
// to all links and forms pointing to the domain "destination.com".
ga('linker:autoLink', ['destination.com'], false, true);

此操作也会在oncontextmenu上运行,因此如果访问者右键单击并选择“在新标签页中打开”,该链接仍会进行修饰,并会附加数据。

在其他事件需要装饰的情况下,需要使用以下内容 manually adding linker parameters 扩展autoLinking:

ga('linker:decorate', destinationLink);

这样的函数调用基于上面'linker:autoLink`数组中列出的域来修饰链接。它可以适用于所有跨域链接。

假设需要禁用上下文菜单: From Andy E's answer

destinationLink.oncontextmenu = function ()
{
    ga('linker:decorate', destinationLink);
    console.log(destinationLink.href);
    document.location = destinationLink.href;
    return false;
}

这将在右键单击时修饰链接并将浏览器定向到装饰的URL。

如果已禁用上下文菜单,请缩写Andy E的代码:

destinationLink.addEventListener('mousedown', function (e) {
    console.log('mousedown', e);
    if (3 == e.which) { // is it a right click
        ga('linker:decorate', destinationLink)
        document.location = destinationLink.href;
    }
})

请注意,在访问者点击之前必须尽快进行装饰,因为参数在2分钟后过期。

Analytics Ninja,根据您的具体要求调整您的代码,如果您遇到其他问题,请遵循Philip Walton的建议