0

我正在尝试使用以下代码获取收入、订单价值等数据。签入控制台后,我收到:“未捕获的类型错误:无法读取未定义的属性‘购买’”

var revenue = 0;
var shipping = 0;
var tax = 0;
var orderID = 0;
var orderValue = 0;
var couponCode = "";

if (typeof dataLayer !== undefined && dataLayer.length > 0 && typeof dataLayer.ecommerce !== undefined) {
  orderID = dataLayer[0].ecommerce.purchase.actionField.id;

  revenue = parseInt(dataLayer[0].ecommerce.purchase.actionField.revenue) > 0 ? parseInt(dataLayer[0].ecommerce.purchase.actionField.revenue) : 0;

  shipping = parseInt(dataLayer[0].ecommerce.purchase.actionField.shipping) > 0 ? parseInt(dataLayer[0].ecommerce.purchase.actionField.shipping) : 0;

  tax = parseInt(dataLayer[0].ecommerce.purchase.actionField.tax) > 0 ? parseInt(dataLayer[0].ecommerce.purchase.actionField.tax) : 0;

  couponCode = dataLayer[0].ecommerce.purchase.actionField.coupon;

  orderValue = revenue - (shipping + tax);
}
4

1 回答 1

0

要从Google 跟踪代码管理器访问对象,您必须用点替换方括号。所以经典的 JavaScriptArray[0].name变成了Array.0.name.

一个实际的例子是电子商务跟踪。要在 ecommerce.purchase 对象(增强型电子商务)中获取第一个产品的 SKU,您可以在数据层变量中使用它:

ecommerce.purchase.products.0.id

这将检索存储在增强型电子商务购买对象的 products 数组中第一个产品的 id 键中的值。

https://www.simoahava.com/gtm-tips/access-array-members-in-the-data-layer/

于 2020-07-10T20:15:17.717 回答