【问题标题】:Cross domain tracking on right click右键单击跨域跟踪
【发布时间】:2015-12-20 09:04:26
【问题描述】:

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

【问题讨论】:

  • 总有办法,问题不是是否有办法,而是:你尝试了什么,什么没用?

标签: google-analytics cross-domain


【解决方案1】:

似乎依赖于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 的建议

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-10-30
    • 2017-09-13
    • 2011-01-26
    • 1970-01-01
    • 2014-05-02
    • 1970-01-01
    • 1970-01-01
    • 2019-07-24
    相关资源
    最近更新 更多