gpt4 book ai didi

google-tag-manager - Google 跟踪代码管理器回调

转载 作者:行者123 更新时间:2023-12-02 01:28:08 28 4
gpt4 key购买 nike

我收到了一些要放在网站上的 dataLayer 定义。他们中的大多数都涉及点击,例如在主菜单链接上。但我看到以下问题:

  • 我做的dataLayer.push(some data...)
  • 然后 GTM 调用 AJAX 命中连接的服务,例如 Google Analytics
  • 但是随后页面重新加载(这不是像 angularjs 站点那样的 SPA)到新位置,并且这些点击(在我看来)中止 - 没有保存数据

  • 我在谷歌上搜索了一些解决方案,但似乎没有人遇到过这样的问题 - 很奇怪,它看起来像是一个基本问题。也许 GTA 会自动处理它而我不必考虑这个?

    感谢帮助。

    最佳答案

    GTM 不调用 AJAX(除非您将 Ajax 调用放在自定义 HTML 标记中)。

    Google Analytics 获取所有配置的标签、触发器和变量,并将它们包装到一个巨大的 javascript 文件中。该文件被加载到您的页面中并在您的页面上下文中进行评估。如果触发器匹配相应的标签,则将其插入到页面的 DOM 中。到那时,来自 GTM 的标记与编码到页面源代码中的标记之间没有太大区别。

    和硬编码标签一样,当页面重新加载时,命中会中止。这就是 GTM 具有称为“事件回调”的功能的原因,您可以在其中传递一个函数,该函数仅在由事件触发的所有代码都被触发后才执行。从 Google Analytics Enhanced E-Commerce Documentation 看这个例子:

    function(productObj) {
    dataLayer.push({
    'event': 'productClick',
    'ecommerce': {
    'click': {
    'actionField': {'list': 'Search Results'}, // Optional list property.
    'products': [{
    'name': productObj.name, // Name or ID is required.
    'id': productObj.id,
    'price': productObj.price,
    'brand': productObj.brand,
    'category': productObj.cat,
    'variant': productObj.variant,
    'position': productObj.position
    }]
    }
    },
    'eventCallback': function() {
    document.location = productObj.url
    }
    });

    这里的事件回调是一个函数,只有在所有标记都被触发后才会重定向到另一个 Url。

    值得一提的是,Google Analytics 试图通过 sendBeacon 发送命中来避免数据丢失。 API(如果适用),它不必等待服务器响应,因此即使用户导航离开页面,命中也会通过(但是 sendBeacon 在 IE/Edge 上不可用)。

    关于google-tag-manager - Google 跟踪代码管理器回调,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35804965/

    28 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com