价格比较器的跟踪代码管理器销售跟踪
Tag Manager sales tracking for a price comparator
我在尝试解决跟踪代码管理器上的问题时遇到了困难。如果你能帮助我,我将不胜感激,我完全迷路了。
我必须为我们希望在其中引用的价格比较网站实施销售跟踪标签。
我找到了公司提供的标签跟踪模式,但是,我没有得到相同的结果。这是我被要求实施的网站上可用的标签:
var _kkstrack = {
merchantInfo : [{ country:"COUNTRY_CODE", merchantId:"COMID_VALUE" }],
orderValue: 'ORDER_VALUE',
orderId: 'ORDER_ID',
basket: [{ productname: 'PRODUCT1_NAME',
productid: 'PRODUCT1_ID',
quantity: 'PRODUCT1_QUANTITY',
price: 'PRODUCT1_PRICE'
},
{ productname: 'PRODUCT2_NAME',
productid: 'PRODUCT2_ID',
quantity: 'PRODUCT2_QUANTITY',
price: 'PRODUCT2_PRICE'
}
]
};
(function() {
var s = document.createElement('script');
s.type = 'text/javascript';
s.async = true;
s.src = 'https://s.kk-resources.com/ks.js';
var x = document.getElementsByTagName('script')[0];
x.parentNode.insertBefore(s, x);
})();
我实现了这个标签,我创建了基于我的数据层的变量,也就是说:"ecommerce.purchase.products.0.id" 例如 productid。
但是,它没有用,我的意思是我得到了重复,对于订购的 2 种不同的产品,我最终得到了相同的标题,两者的 ID。第二项与第一项具有相同的功能。
所以我尝试了第二种解决方案:
对于我使用自定义 Javascript 的每个变量(Kelkoo - 购买对应于数据层变量 "ecommerce.purchase" )这就是我写的:
function() {
var products = {{Kelkoo - purchase}};
return products.map(function(prod) { return prod.price; });
}
不幸的是,出现了另一个问题:我将所有产品数据彼此相邻并用逗号分隔(productid:34756、8546)如下所示:
basket: [{ productname: 'PRODUCT1_NAME', 'PRODUCT2_NAME',
productid: 'PRODUCT1_ID', 'PRODUCT2_ID',
quantity: 'PRODUCT1_QUANTITY', 'PRODUCT2_QUANTITY',
price: 'PRODUCT1_PRICE','PRODUCT2_PRICE'
}
]
};
我想return数据遵循这种格式
basket: [{ productname: 'PRODUCT1_NAME',
productid: 'PRODUCT1_ID',
quantity: 'PRODUCT1_QUANTITY',
price: 'PRODUCT1_PRICE'
},
{ productname: 'PRODUCT2_NAME',
productid: 'PRODUCT2_ID',
quantity: 'PRODUCT2_QUANTITY',
price: 'PRODUCT2_PRICE'
}
]
我该怎么做,我必须建立一个数组吗?
感谢您对此事的关注。
谢谢
据我了解,您已经有一个包含产品数据的数据层,它与 Google 分析所需的增强型电子商务的内容和数据结构相匹配。您希望将产品数据转换为 _kkstrack
变量的 basket
键中使用的格式。
基于增强型电子商务 Developer guide,增强型电子商务购买数据具有以下格式。
dataLayer.push({
'ecommerce': {
'purchase': {
'actionField': {
'id': 'T12345', // Transaction ID. Required for purchases and refunds.
'affiliation': 'Online Store',
'revenue': '35.43', // Total transaction value (incl. tax and shipping)
'tax':'4.90',
'shipping': '5.99',
'coupon': 'SUMMER_SALE'
},
'products': [{ // List of productFieldObjects.
'name': 'Triblend Android T-Shirt', // Name or ID is required.
'id': '12345',
'price': '15.25',
'brand': 'Google',
'category': 'Apparel',
'variant': 'Gray',
'quantity': 1,
'coupon': '' // Optional fields may be omitted or set to empty string.
},
{
'name': 'Donut Friday Scented T-Shirt',
'id': '67890',
'price': '33.75',
'brand': 'Google',
'category': 'Apparel',
'variant': 'Black',
'quantity': 1
}]
}
}
});
您有多种方法来引用此数据,方法是将整个电子商务对象指向 GTM 中的 dataLayer 变量(然后在您的代码中引用其键),或直接指向产品数组。 (我正在使用后者,因此 dataLayer 变量名称将为 ecommerce.purchase.products
)
将产品分配给 {{DLV - 电子商务购买产品}} GTM 变量名称,您可以创建自定义 JavaScript 函数来进行必要的转换。
function() {
return {{DLV - Ecommerce purchase products}}.map(function(e) {
return {
productname: e.name,
productid: e.id,
quantity: e.quantity,
price: e.price
};
});
}
在您的函数中,您循环遍历所有产品数组元素,以及 return 不同键下的现有数据,这是其他工具所请求的。您现在可以在自定义 HTML 标签中使用此自定义 JavaScript 变量,您可以在其中设置 basket
变量的内容。
显然,您可以使用自己的变量命名约定,只要您在自定义 JavaScript 变量中引用它即可。
我希望我理解你的问题,你可以通过这个答案解决你的任务。
我在尝试解决跟踪代码管理器上的问题时遇到了困难。如果你能帮助我,我将不胜感激,我完全迷路了。
我必须为我们希望在其中引用的价格比较网站实施销售跟踪标签。
我找到了公司提供的标签跟踪模式,但是,我没有得到相同的结果。这是我被要求实施的网站上可用的标签:
var _kkstrack = {
merchantInfo : [{ country:"COUNTRY_CODE", merchantId:"COMID_VALUE" }],
orderValue: 'ORDER_VALUE',
orderId: 'ORDER_ID',
basket: [{ productname: 'PRODUCT1_NAME',
productid: 'PRODUCT1_ID',
quantity: 'PRODUCT1_QUANTITY',
price: 'PRODUCT1_PRICE'
},
{ productname: 'PRODUCT2_NAME',
productid: 'PRODUCT2_ID',
quantity: 'PRODUCT2_QUANTITY',
price: 'PRODUCT2_PRICE'
}
]
};
(function() {
var s = document.createElement('script');
s.type = 'text/javascript';
s.async = true;
s.src = 'https://s.kk-resources.com/ks.js';
var x = document.getElementsByTagName('script')[0];
x.parentNode.insertBefore(s, x);
})();
我实现了这个标签,我创建了基于我的数据层的变量,也就是说:"ecommerce.purchase.products.0.id" 例如 productid。 但是,它没有用,我的意思是我得到了重复,对于订购的 2 种不同的产品,我最终得到了相同的标题,两者的 ID。第二项与第一项具有相同的功能。
所以我尝试了第二种解决方案: 对于我使用自定义 Javascript 的每个变量(Kelkoo - 购买对应于数据层变量 "ecommerce.purchase" )这就是我写的:
function() {
var products = {{Kelkoo - purchase}};
return products.map(function(prod) { return prod.price; });
}
不幸的是,出现了另一个问题:我将所有产品数据彼此相邻并用逗号分隔(productid:34756、8546)如下所示:
basket: [{ productname: 'PRODUCT1_NAME', 'PRODUCT2_NAME',
productid: 'PRODUCT1_ID', 'PRODUCT2_ID',
quantity: 'PRODUCT1_QUANTITY', 'PRODUCT2_QUANTITY',
price: 'PRODUCT1_PRICE','PRODUCT2_PRICE'
}
]
};
我想return数据遵循这种格式
basket: [{ productname: 'PRODUCT1_NAME',
productid: 'PRODUCT1_ID',
quantity: 'PRODUCT1_QUANTITY',
price: 'PRODUCT1_PRICE'
},
{ productname: 'PRODUCT2_NAME',
productid: 'PRODUCT2_ID',
quantity: 'PRODUCT2_QUANTITY',
price: 'PRODUCT2_PRICE'
}
]
我该怎么做,我必须建立一个数组吗?
感谢您对此事的关注。
谢谢
据我了解,您已经有一个包含产品数据的数据层,它与 Google 分析所需的增强型电子商务的内容和数据结构相匹配。您希望将产品数据转换为 _kkstrack
变量的 basket
键中使用的格式。
基于增强型电子商务 Developer guide,增强型电子商务购买数据具有以下格式。
dataLayer.push({
'ecommerce': {
'purchase': {
'actionField': {
'id': 'T12345', // Transaction ID. Required for purchases and refunds.
'affiliation': 'Online Store',
'revenue': '35.43', // Total transaction value (incl. tax and shipping)
'tax':'4.90',
'shipping': '5.99',
'coupon': 'SUMMER_SALE'
},
'products': [{ // List of productFieldObjects.
'name': 'Triblend Android T-Shirt', // Name or ID is required.
'id': '12345',
'price': '15.25',
'brand': 'Google',
'category': 'Apparel',
'variant': 'Gray',
'quantity': 1,
'coupon': '' // Optional fields may be omitted or set to empty string.
},
{
'name': 'Donut Friday Scented T-Shirt',
'id': '67890',
'price': '33.75',
'brand': 'Google',
'category': 'Apparel',
'variant': 'Black',
'quantity': 1
}]
}
}
});
您有多种方法来引用此数据,方法是将整个电子商务对象指向 GTM 中的 dataLayer 变量(然后在您的代码中引用其键),或直接指向产品数组。 (我正在使用后者,因此 dataLayer 变量名称将为 ecommerce.purchase.products
)
将产品分配给 {{DLV - 电子商务购买产品}} GTM 变量名称,您可以创建自定义 JavaScript 函数来进行必要的转换。
function() {
return {{DLV - Ecommerce purchase products}}.map(function(e) {
return {
productname: e.name,
productid: e.id,
quantity: e.quantity,
price: e.price
};
});
}
在您的函数中,您循环遍历所有产品数组元素,以及 return 不同键下的现有数据,这是其他工具所请求的。您现在可以在自定义 HTML 标签中使用此自定义 JavaScript 变量,您可以在其中设置 basket
变量的内容。
显然,您可以使用自己的变量命名约定,只要您在自定义 JavaScript 变量中引用它即可。
我希望我理解你的问题,你可以通过这个答案解决你的任务。