如何将项目数组的产品 ID 发送回 Pinterest?

问题描述 投票:0回答:1

我正在尝试创建一个结帐事件以发送到 Pinterest 广告。我正在使用自定义 JavaScript 来转换我的数据,特别是我需要对商品总数和购物车总价值进行求和,因为这些没有通过数据层传递。

我已经能够为 Pinterest 所需的大部分参数(产品 ID 除外)编写自定义 JavaScript。系统未在阵列中拾取它。我尝试查看是否可以获得产品名称或产品 ID 来传递。我最初尝试了 id: items[i].id 并且系统没有拾取它,所以我后来尝试了product_id: items[i].id,但仍然没有运气。

function() {
  var items = {{dlv - olo - all products}};
  var numItems = 0;
  var totalValue = 0;
  var transformedItems = [];

  for (var i = 0; i < items.length; i++) {
    transformedItems.push({
      product_id: items[i].id,
      product_name: items[i].name,
      product_category: 'product',
      quantity: items[i].quantity,
      price: items[i].price
    });
    numItems += items[i].quantity;
    totalValue += items[i].price
  }
  
  return {
    value: totalValue,
    currency: 'USD',
    line_items: transformedItems,
    order_quantity:  numItems,
    order_id: {{dlv - olo - transaction ID}}
  };
}

这是我用来拉入 cjs 的 GTM 自定义 HTML 标签:

<!-- Pinterest Pixel Code -->
<script>  
  pintrk('track', 'checkout', {{cjs - Pinterest Data For Purchases}})
</script>
<!-- End Pinterest Pixel Code -->

这里是数据层推送:

{
    event: "begin_checkout",
    ecommerce: {
        items: [
            {
                item_id: "42353541",
                item_name: "Avocado Hummus",
                currency: "USD",
                price: 8,
                quantity: 1
            },
            {
                item_id: "41371457",
                item_name: "Avocado Caesar Salad",
                currency: "USD",
                price: 10.95,
                quantity: 1
            }
        ]
    }
}
javascript google-tag-manager ads pinterest
1个回答
0
投票

在您的自定义 JavaScript 中,您正在转换来自数据层的数据,但您面临着未获取产品 ID 的问题。我注意到在数据层推送中,您使用的是 item_id 而不是 id。让我们对齐数据层推送和自定义 JavaScript 中的键以确保一致性。

这是更新版本:

function() {
  var items = {{dlv - olo - all products}};
  var numItems = 0;
  var totalValue = 0;
  var transformedItems = [];

  for (var i = 0; i < items.length; i++) {
    transformedItems.push({
      product_id: items[i].item_id, // Use 'item_id' from the data layer
      product_name: items[i].item_name, // Use 'item_name' from the data layer
      product_category: 'product',
      quantity: items[i].quantity,
      price: items[i].price
    });
    numItems += items[i].quantity;
    totalValue += items[i].price;
  }
  
  return {
    value: totalValue,
    currency: 'USD',
    line_items: transformedItems,
    order_quantity: numItems,
    order_id: {{dlv - olo - transaction ID}}
  };
}

确保使用与您的数据层结构匹配的键(item_id 和 item_name)。此外,您可能需要检查数据层中的 id 是否为 item_id,因为它可能会根据您的实现而有所不同。

请记住,键名称的一致性对于数据完整性至关重要。根据数据层推送中的实际键相应地调整 JavaScript 中的键名称。

© www.soinside.com 2019 - 2024. All rights reserved.