1

哪些更优化?“dataLayer.push”或用“dataLayer =”声明分析电子商务跟踪GTM

我有一个感谢页面,我需要将所有交易销售信息加载到此页面以通过Google跟踪代码管理器将其发布到Google Analytics。

我是否使用下面的代码声明dataLayer并将其发布在我的GTM代码之前?

dataLayer = [{ 
    'ecommerce': { 
    'purchase': { 
     'actionField': { 
     'id': '40008', 
     'revenue': '90.00', 
     }, 
     'products': [{ 
     'name': 'Clothes', 
     'price': '9.00', 
     'category': 'Shirt', 
     'quantity': 10.00, 
     }] 
    } 
    } 
}]; 

还是我将数据推入自动创建的dataLayer并将其发布在我的GTM代码之后?

dataLayer.push({ 
    'ecommerce': { 
    'purchase': { 
     'actionField': { 
     'id': '40008', 
     'revenue': '90.00', 
     }, 
     'products': [{ 
     'name': 'Clothes', 
     'price': '9.00', 
     'category': 'Shirt', 
     'quantity': 10.00, 
     }] 
    } 
    } 
}); 

有什么区别?我将通过“DOM准备好”事件将dataLayer中的数据提供给Google。

回答

1

您在GTM标签上方声明dataLayer,以获取需要在页面加载时立即可用的信息。您可以使用dataLayer.push获取GTM标签后添加的信息。

我坦率地认为它在大多数用例中并没有太大的差别,但是如果你想确保数据在页面加载时可用,你应该声明一个dataLayer。 DOM就绪意味着源代码中的任何推送事件都已经发生,所以它可能对您没有任何影响。

+0

你能澄清Dom Ready和Pageview的区别吗?如果我在加载页面之前声明dataLayer,我想使用哪一个? – tkwitten

+0

页面浏览(从GTM的角度来看)只要浏览器遇到GTM代码就会发生(通常GTM直接集成在开始的主体标签之后),因此这是第一次启用标签的机会。 DOM准备工作只有在页面加载完成后才会发生完整的结构(同名的DOM),因此在加载过程中很久以后。 Windows加载(当所有连接的资源如图像和css /脚本文件已加载时)是最后一个。如果您在GTM片段上面声明dataLayer,那么您将使用页面视图触发器(使用页面视图作为触发器类型)。 –

相关问题