从另一个脚本可靠地获取 Google 分析跟踪 ID

Reliably fetching the Google Analytics Tracking ID from another script

我需要通过 JavaScript 检索 Google 分析跟踪 ID,以便在另一个脚本中使用。类似于:

var ga_id = (typeof ga !== 'undefined') ? ga.getAll()[0].get('trackingId') : 'Unable to retrieve GA id'

我的分析是使用标签管理器加载的,所以即使我 运行 我自己的 JavaScript 在页面的很晚,它也没有检测到 ga 对象的存在. (我可以通过开发者工具控制台毫无问题地访问它。)

如何确保 ga 在尝试访问其属性之前已加载?

已加载 window,您可以在 GTM 预览中看到它,如下所示:

我在那个 var 中有这个 CJS(使用你的代码):

虽然这对我来说已经足够了,但您的情况可能会有所不同,因此您可以执行以下操作:

  1. 制作一个自定义 html 标签,在页面加载时运行并部署一个带有超时的闭包。
  2. 在超时回调中推送一个dataLayer事件。
  3. 现在将要获取 属性 id 值的标签移动到 dataLayer 事件触发器(自定义事件)。

这不是很优雅,但它会起作用。同样,对于正常实施,Window 加载应该足够了。