Google 基于电子商务数据层对象的跟踪代码管理器自定义 javascript 变量
Google Tag Manager custom javascript variable based on ecommerce datalayer object
我正在尝试根据 GTM 数据层电子商务对象中包含的数据计算购物车的价值。我将整个电子商务对象放入数据层变量中,以便我可以在自定义 js 变量中使用它,但我无法进行递归计算。
这是来自数据层的代码示例:
{
"event": "checkout",
"ecommerce": {
"checkout": {
"products": [
{
"name": "coat",
"id": "14M",
"quantity": 1,
"price": "100.00"
},
{
"name": "pants",
"id": "12L",
"quantity": 3,
"price": "50.00"
}
]
}
}
}`
我的目标是确定产品数组中的产品数量,然后执行产品价格 * 产品数量的计算,次数与遍历整个产品数组所需的次数一样多。在这种情况下,它将是这样的:
(1*100) + (3*50) = 250.
我尝试修改 Simo Ahava's related blogpost 中的代码但没有成功。他的博文和我的意图的区别是:
- 我不需要将购物车价值设置为电子商务自定义指标。我只想 return 自定义 js 中购物车的值。
- 我不希望这涉及在购物车中添加或删除商品。相反,我只想在触发GTM事件"checkout"时计算价值并计算包含产品的价值。
提前致谢。
此 JS 函数将获取最新的数据层电子商务事件并计算产品总和:
function productSum() {
var result = 0;
var ecommerceDataLayers = dataLayer.filter(function(e){return e.event == "checkout";});
if (ecommerceDataLayers.length)
{
var lastEcommerce = ecommerceDataLayers[ecommerceDataLayers.length-1];
for(i=0;i<lastEcommerce.ecommerce.checkout.products.length;i++) {
var product = lastEcommerce.ecommerce.checkout.products[i];
result += product.quantity*parseFloat(product.price);
}
}
return result;
}
既然你已经创建了{{ecommerce}}变量,那么很容易根据产品的数量和产品的价格获取总金额。
您必须创建自定义 js 变量 订单小计
然后在那个自定义的js框中
粘贴下面的代码
function(){
var productList={{ecommerce}}.checkout.products;
var totalAmount=0;
for(var i=0;i<productList.length;i++)
{
totalAmount+=(productList[i].quantity)*(parseFloat(productList[i].price));
}
return totalAmount;
}
我希望这能帮助您解决问题
我正在尝试根据 GTM 数据层电子商务对象中包含的数据计算购物车的价值。我将整个电子商务对象放入数据层变量中,以便我可以在自定义 js 变量中使用它,但我无法进行递归计算。
这是来自数据层的代码示例:
{
"event": "checkout",
"ecommerce": {
"checkout": {
"products": [
{
"name": "coat",
"id": "14M",
"quantity": 1,
"price": "100.00"
},
{
"name": "pants",
"id": "12L",
"quantity": 3,
"price": "50.00"
}
]
}
}
}`
我的目标是确定产品数组中的产品数量,然后执行产品价格 * 产品数量的计算,次数与遍历整个产品数组所需的次数一样多。在这种情况下,它将是这样的:
(1*100) + (3*50) = 250.
我尝试修改 Simo Ahava's related blogpost 中的代码但没有成功。他的博文和我的意图的区别是:
- 我不需要将购物车价值设置为电子商务自定义指标。我只想 return 自定义 js 中购物车的值。
- 我不希望这涉及在购物车中添加或删除商品。相反,我只想在触发GTM事件"checkout"时计算价值并计算包含产品的价值。
提前致谢。
此 JS 函数将获取最新的数据层电子商务事件并计算产品总和:
function productSum() {
var result = 0;
var ecommerceDataLayers = dataLayer.filter(function(e){return e.event == "checkout";});
if (ecommerceDataLayers.length)
{
var lastEcommerce = ecommerceDataLayers[ecommerceDataLayers.length-1];
for(i=0;i<lastEcommerce.ecommerce.checkout.products.length;i++) {
var product = lastEcommerce.ecommerce.checkout.products[i];
result += product.quantity*parseFloat(product.price);
}
}
return result;
}
既然你已经创建了{{ecommerce}}变量,那么很容易根据产品的数量和产品的价格获取总金额。
您必须创建自定义 js 变量 订单小计 然后在那个自定义的js框中 粘贴下面的代码
function(){
var productList={{ecommerce}}.checkout.products;
var totalAmount=0;
for(var i=0;i<productList.length;i++)
{
totalAmount+=(productList[i].quantity)*(parseFloat(productList[i].price));
}
return totalAmount;
}
我希望这能帮助您解决问题