javascript - dataLayer.push后数据什么时候发送到google

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

我有一个单页电子商务应用程序,需要设置 Google 电子商务 channel 。我的应用程序在跟踪代码管理器数据层中设置漏斗步骤

文档中没有任何内容表明数据层实际发送到 Google 跟踪代码管理器的时间。

window.dataLayer 开始页面:

  event: 'checkout',
  ecommerce: {
    checkout: { actionField: {step: 1, option: 'Checkout Options'}}
  }

点击第一个按钮

$(document).one('click','#button-payment-address', function () {
        window.dataLayer.push({
            'event': 'checkout',
            'ecommerce': {
                'checkout': {
                    'actionField': {
                        'step': 2,
                        'option': 'Billing Details'
                    }
                }
            }
        });
}); 

数据层变为:

event: 'checkout',
ecommerce: {
    checkout: { actionField: {step: 2, option: 'Billing Details'}}
}

在第二个按钮上

$(document).one('click', "#button-shipping-address",  function(){
        window.dataLayer.push({
            'event': 'checkout',
            'ecommerce': {
                 'checkout': {
                    'actionField': {
                       'step': 3,
                       'option': 'Delivery Details'
                    }
                }
            }
        }); 
        console.log(window.dataLayer);
}); 

数据层变为:

  event: 'checkout',
  ecommerce: {
    checkout: { actionField: {step: 3, option: 'Delivery Details'}}
  }

等等...

什么时候发送dataLayer,或者有没有办法强制发送,重新初始化dataLayer,然后推送下一步?

更新:我在 Firefox DevTools/network/XHR 下查找流量,但找不到任何流量。查看 DevTools/network/images 下会显示每次点击时发布的数据。

最佳答案

将数据添加到 dataLayer 不会将其发送到任何地方。它只是在 GTM 内以结构化方式提供数据。每当您将名为“event”的键推送到数据层时,GTM 都会扫描数据层结构并使用更改或添加的值更新其内部数据模型。

这基本上为您的变量创建了一个命名空间。变量可以被覆盖,因此每次创建新的 JS 变量时,您需要确保不会重复使用现有名称并意外地为变量分配新值,等等。相反,如果您将数据添加到 dataLayer,那么您只需注意不要有第二个 dataLayer 变量。

话虽如此,您的情况有些不同。您拥有的是 Google Universal Analytics 增强型电子商务的特殊数据结构。您的 Google Analytics(分析)综合浏览量或事件代码中至少应配置一个启用增强型电子商务,并进行从数据层提取数据的设置。

如果您在 GTM 中没有标签,则根本不会发送数据。

关于javascript - dataLayer.push后数据什么时候发送到google,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59760514/

相关文章:

jquery - 如何使我的悬停标题覆盖整个图像大小?

node.js - Node : Google Analytics data via service account

javascript - 如何通过路由提供者将范围值传递给 Controller ​​?

javascript - 转换特定字符串日期

javascript - 在 IE 中的输入文本字段中按下 Enter 键时按钮 OnClick 触发

javascript - 悬停多个实例 div 时发出独特的声音

javascript - 如何从 react 组件在浏览器范围中存储一些值?

javascript - 如何将同一个父级中的 div 与变量 className 组合起来?

google-analytics - GA 的 Measurement Protocol 将事件发送到错误的 View ,而不是因为过滤器

r - 警告 : Error in as. 矢量 : cannot coerce type 'environment' to vector of type 'character' in R while running on the shiny. 我能做什么?