javascript - 有没有办法在 GTM 的循环内使用查找列表?

标签 javascript google-tag-manager

我有一个添加到购物车事件,该事件将购物车发送到数据层。购物车商品包括 SKU、数量和价格。在GTM中,我需要将sku转换为产品url和图像url。

我希望使用查找列表,但我不确定这是否可能,如果可以的话,输入变量是什么?是我创建一个 javascript 函数来执行此操作的唯一选择还是我可以以某种方式利用 GTM 变量?

[{ 
   sku: "SU-LG",
   quantity: 1,
   price: 100.00},
 { 
   sku: "RS-SM",
   quantity: 1,
   price: 50.00}]


最佳答案

这可能最好使用函数来完成,因为查找表将在该 dataLayer.push 上输出一个变量,而不是数组中每个 sku 的变量。

您可以使用保存在 GTM 变量中的 JSON,然后在函数中引用 GTM 变量:


var array = [
 { 
   sku: "SU-LG",
   quantity: 1,
   price: 100.00
 },
 { 
   sku: "RS-SM",
   quantity: 1,
   price: 50.00
 }
]

var gtmJsonProduct = {
    "SU-LG": "su-lg-product.png",
    "RS-SM": "rs-sm-product.png"
};

var gtmJsonImage = {
    "SU-LG": "su-lg-image.png",
    "RS-SM": "rs-sm-image.png"
};

// Set these as a GTM variable instead?
// var gtmJsonProduct = {{gtmJsonProduct}};
// var gtmJsonImage = {{gtmJsonImage}};

for (var i = 0; i < array.length; i++) {
  var sku = array[i]['sku'];
  var productUrl = gtmJsonProduct[sku];
  var imageUrl = gtmJsonImage[sku];
  console.log(`product url for ${sku} = ${productUrl}`);
  console.log(`image url for ${sku} = ${imageUrl}`);
}

JSFiddle

关于javascript - 有没有办法在 GTM 的循环内使用查找列表?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59504074/

相关文章:

javascript - Laravel 5.0 : How to save multiple inputs of rows in the same column of database?

google-analytics - 当我无权访问跟踪代码管理器网站时,在 Google 跟踪代码管理器中实现自定义事件

javascript - 在空函数中返回函数的结果是否有任何目的?

javascript - 将字符串转换为函数,给出 ReferenceError

javascript - 谷歌地图 : unwanted resizing of the map

javascript - 向 CKEditor 添加自定义样式

javascript - 无论如何,在 Ramda 中是否可以使用路径和占位符?

google-tag-manager - 在 GTM 中跟踪的自定义维度,但未在 UA 中显示

javascript - 跨域表单提交 Google 标签管理器自动触发

javascript - 当我尝试在 Google 跟踪代码管理器中发布对讲机代码的更改时,为什么会出现 JavaScript 编译器错误?