javascript - 如何让 GTM 标签等待加载一些 jQuery?

标签 javascript jquery google-analytics google-tag-manager

我想跟踪是否通过 GTM 使用 Google Analytics(分析)事件跟踪显示 toast (或任何“弹出元素”)。 toast 是否显示由 jQuery 代码定义,并基于 cookie 信息,如下所示

function ShowToast(Msg){
    $('#toast-msg').html(Msg);
    $('#toast').animate({ left: '-10px' });
}

调用者

<script type="text/javascript">
    $(function() {
        ShowToast("SOME HTML");
    });
</script>

这是我目前使用自定义变量在 GTM 中得到的结果

function(){
    if(document.querySelector("#toast #toast-msg").length > 0){
        return true;
    }
}

使用触发器监听此变量是否为真以及通常的 Universal Analytics 事件代码。这个想法是简单地检查 toast-msg 是否显示,这在预览模式下工作正常。

现在问题来了:标签正在监听 gtm.js(页面浏览),但来自 toast 的 jQuery 代码可能仅在 gtm.js 准备就绪后加载。因此,有时当跟踪代码准备好触发且事件未被记录时,toast 尚未显示。

有没有办法使用 GTM 和 Javascript/JQuery 来确保在解析 GTM 变量/触发器/标签之前加载所有 JQuery?还是完全不同的方法?

最佳答案

  1. 确保在 <head> 中初始化数据层通过包含这行代码来编辑您的文档:<script>window.dataLayer = window.dataLayer || [];</script>
  2. 将此代码添加到您的 jQuery toasts(或您要跟踪的任何其他内容)dataLayer.push({'event': 'event_name'});
  3. 创建 Custom Event使用 event_name 在 GTM 中触发你在上面选择了。
  4. 使用上述触发器创建事件类型的 GA 标签

关于javascript - 如何让 GTM 标签等待加载一些 jQuery?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38970113/

相关文章:

javascript - 如何在 HTML5/Jquery 和 Cordova/PhoneGap 中存储首选项?

jquery - Bootstrap 数据切换 ="toggle"已检查,jquery 未检查

magento - 设置谷歌分析magento

javascript - 使用javascript以百分比计算div高度?

google-analytics - 我的 JSON api key 格式不正确

google-analytics - Google Analytics - 目标漏斗步骤

JavaScript 循环数组 - ReferenceError |我没有定义

javascript - SVG 文本(带 tspan)垂直偏移

javascript - 将元素的内容打印到控制台

Javascript Curry 函数对这段代码有好处吗?