【发布时间】:2015-12-20 09:04:26
【问题描述】:
当用户使用右键单击(而不是左键单击)跳转域时,是否有办法传递 GA cookie 以进行跨域跟踪?
【问题讨论】:
-
总有办法,问题不是是否有办法,而是:你尝试了什么,什么没用?
标签: google-analytics cross-domain
当用户使用右键单击(而不是左键单击)跳转域时,是否有办法传递 GA cookie 以进行跨域跟踪?
【问题讨论】:
标签: google-analytics cross-domain
似乎依赖于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 扩展,使用:
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 的建议
【讨论】: