iframe - 如何检测 Google Analytics 是否已加载并能够跟踪自定义事件

标签 iframe google-analytics mobile-safari google-analytics-api google-analytics-firebase

当我们加载带有视频播放器的 iframe 时,我们遇到了一些问题,该播放器将播放事件发送到加载在该 iframe 中(在另一个域上)的 Google Universal Analytics (analytics.js)。 GA 跟踪器未加载到 iOS 设备上,因此,不会向 GA 发送任何事件跟踪。

在 Android 和其他设备(包括台式机)上它工作得很好,但在 iOS 上就不行了,除非我更改了 iOS Safari 上默认的第三方 cookie 设置。

我使用 Google Analytics ( https://github.com/Foture/cookieless-google-analytics ) 的无 cookie 方法进行了测试,这样 iOS 设备就能够正确地将跟踪事件发送到 GA。但是,我只想在常规 GA 方法不起作用时使用该方法作为后备,因为通过指纹方法创建的 UserId 在移动设备上不是很独特。

所以我需要一种方法来检测常规 GA 方法何时能够跟踪事件,如果不能,要么是因为没有加载跟踪器,要么是禁用了 cookie,然后使用无 cookie 方法来加载 GA 并跟踪事件。

谢谢!

最佳答案

您应该使用检查 JavaScript window.ga && ga.loaded使用 ga() 方法跟踪事件之前的变量:

if(window.ga && ga.loaded) { {
    // if yes, rely on GA to follow link
    ga('send', 'event', 'outbound', 'click', url, {
        'transport': 'beacon',
        'hitCallback': function(){document.location = url;}
    });
} else {
    // if not, follow link ourselves
    document.location = url;
}

更多关于 https://hacks.mozilla.org/2016/01/google-analytics-privacy-and-event-tracking/

关于iframe - 如何检测 Google Analytics 是否已加载并能够跟踪自定义事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29948923/

相关文章:

javascript - 如何跟踪页面重新加载后按下了哪些按钮?

javascript - 打印由 google docviewer 通过 javascript 在 iframe 中打开的 pdf

html - 最大化 iFrame(所以它看起来是请求页面)

android - 测试 Google Play 广告系列衡量

css - CSS 中指定的背景图像不会出现在 iPad 中

javascript - getSelection 不适用于 Chrome 中的图像

google-analytics - 清理 "dirty"Google Analytics 自定义变量键?

google-analytics - Google Analytics Reporting API v4缺少必需的身份验证凭据

jquery - 在 iPad 上设置日期输入的值

css - iPhone 版 Safari 上的表单宽度增加