"dataLayer.push" or declare with "dataLayer =" for Analytics Ecommerce Tracking GTM
以下哪个更好?
我有一个感谢页面,我需要将我所有的交易销售信息加载到此页面中,以便通过 Google 跟踪代码管理器将其发布到 Google Analytics(分析)。
我是否使用下面的代码声明 dataLayer 并将其发布在我的 GTM 代码之前?
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | dataLayer = [{ 'ecommerce': { 'purchase': { 'actionField': { 'id': '40008', 'revenue': '90.00', }, 'products': [{ 'name': 'Clothes', 'price': '9.00', 'category': 'Shirt', 'quantity': 10.00, }] } } }]; |
或者我是否将数据推送到自动创建的数据层中并在我的 GTM 代码之后发布?
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | dataLayer.push({ 'ecommerce': { 'purchase': { 'actionField': { 'id': '40008', 'revenue': '90.00', }, 'products': [{ 'name': 'Clothes', 'price': '9.00', 'category': 'Shirt', 'quantity': 10.00, }] } } }); |
有什么区别?我将使用 "DOM Ready" 事件将数据从 dataLayer 传送到 Google。
您在 GTM 标记上方声明 dataLayer,以获取需要在页面加载时立即可用的信息。您可以将 dataLayer.push 用于添加在 GTM 标记之后的信息。
坦率地说,我认为它在大多数用例中没有太大区别,但是如果您想确保页面加载时数据可用,您应该声明一个 dataLayer。 DOM 就绪意味着源代码中的任何推送事件都已经发生,因此它可能对您没有任何影响。