如何从GTM数据层中检索对象
How do I retrieve an object from the GTM dataLayer
我有一个图像标签,需要用电子商务购买的信息填充。我需要在Tagmanager数据层中作为"产品"对象存储的单个项目。根据谷歌分析增强的电子商务跟踪:
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
}]
}
}
});
所以现在我需要迭代产品来构建图像URL,比如:
http://some-domain.com/?p1=12345&v1=15.25&p2=67890&v2=33.75...
因为数据已经在dataLayer中,所以我应该能够编写一些JavaScript来检索产品对象,迭代它的元素,并创建需要附加到图像URL的字符串部分。有道理,不是吗?
但是:我不知道如何检索标签中的产品元素。我尝试在标记管理器中将产品对象创建为变量,但这似乎不起作用。我尝试通过访问它
google_tag_manager["GTM uniqueid"].dataLayer.get('commerce').purchase.products
但这同样不起作用。
一个选项是在dataLayer中包含一个事件,例如:
dataLayer.push({
'event': 'ecomm event',
'ecommerce': {
'purchase': {
'actionField': {
'id': 'T12345', // Transaction ID. Required for purchases and refunds.
// .... your original stuff
}]
}
}
});
在GTM中,您将创建一个变量,当事件发生时,该变量将在数据层中循环,并返回产品名称,类似于以下内容(您可以稍微整理一下):
function(){
var dl = {{DL - Ecomm products}};
var prodNames = '';
for (var i=0; i<dl.length; i++){
prodNames += dl[i].name + '|';
}
return prodNames;
}
其中CCD_ 1是具有值CCD_。
对于那些与之斗争的人:
- 将DL变量创建为电子商务.purchase.products
- 在GTM中创建一个自定义JS变量,如下所示:
function() { var prods = {{DL - products}}; var src = "http://YOUR URL/?a=1"; var len = prods.length; for (i=0; i < len; i++) { var b = i+1; src = src + "&ITEM" + b + "=" + prods[i].id + "&AMT" + b + "=" + prods[i].price + "&QTY" + b + "=" + prods[i].quantity; } src = src + "&CURRENCY=GBP"; return src; }
- 将图像标记作为自定义JavaScript变量进行流量传输
完成
PS:很抱歉格式不正确。
相关文章:
- 如何从类关系中检索对象列表
- 检索对象项的路径
- 正在根据ID从数组中检索对象
- 以文本形式检索对象元素中的SVG Dom
- AJAX来检索对象并将其存储在变量中
- 如何在帮助程序或事件中检索对象的内部_id
- 如何在 ydn-db 中检索对象的排序列表
- Javascript - 检索对象属性路径
- 从具有特定参数的数组中检索对象
- 如何从jsonString中检索对象
- 检索对象自己的标记
- 从URL检索对象/资源
- 如何从Google Apps脚本项目属性中存储和检索对象
- 如何从GTM数据层中检索对象
- JQueryAJAX检索对象数组
- 正在检索对象中嵌套的值
- 使用PHP从JSON中检索对象
- 如何从具有给定(键、值)对的长列表中检索对象
- 使用承诺从 mongo db 检索对象时出错
- 在树状的angularjs模型中检索对象