Google 标签管理器:自定义 Html 标签中的数据层
Google Tag Manager: dataLayer in a Custom Html tag
我需要将相同的数据层应用于使用相同电子商务系统的多个站点。我没有 copying/pasting 在多个站点上使用完全相同的 DL,而是考虑在 GTM 控制台中使用自定义 HTML 标签推送到 dataLayer。
这是您会推荐做或不做的具体事情吗?
作为参考,这是我的 DL:
var impressions = [];
var i, len;
var date1 = new Date();
var date2 = new Date(abe_searchParams["arrivalDate"]);
var timeDiff = Math.abs(date2.getTime() - date1.getTime());
var leadDays = Math.ceil(timeDiff / (1000 * 3600 * 24));
for (i = 0, len = abe_roomRatesData.length; i < len; i++) {
impressions.push({
'name' : abe_roomRatesData[i]['roomCode'] + "-" + abe_roomRatesData[i]['rateCode'],
'id' : abe_roomRatesData[i]['rateCode'],
'price' : abe_roomRatesData[i]['totalRate'],
'category' : abe_roomRatesData[i]['roomCode'],
'variant': abe_searchParams["iataNumber"],
'metric1' : leadDays,
'metric2' : abe_roomRatesData[i]['totalRate'],
'metric3' : abe_searchParams['numberOfNights'],
'metric7' : abe_roomRatesData[i]['totalRate'] / abe_searchParams['numberOfNights']
});
}
window.dataLayer = window.dataLayer || [];
dataLayer.push({
'event' : 'addtoCart',
'metric6' : leadDays,
'ecommerce' : {
'currencyCode': abe_hotelInfo["hotelCurrency"],
'impressions' : impressions
}
});
感谢
如果你能维护它,你绝对可以做到。如果您将此代码放在自定义 HTML 标签
中也没有错
我不建议将此作为最佳做法。将内容推送到自定义 HTML 标记中的数据层可能会误导任何未来将处理网站代码的开发人员,因为他们很难确定代码中实际推送发生的位置。
如果您想在多个电子商务网站上实施 GTM,那么您的电子商务平台通常应该有某种模板系统,允许您构建 GTM 模板某种被所有站点加载的类型。这将是更清洁的方法。
我需要将相同的数据层应用于使用相同电子商务系统的多个站点。我没有 copying/pasting 在多个站点上使用完全相同的 DL,而是考虑在 GTM 控制台中使用自定义 HTML 标签推送到 dataLayer。
这是您会推荐做或不做的具体事情吗?
作为参考,这是我的 DL:
var impressions = [];
var i, len;
var date1 = new Date();
var date2 = new Date(abe_searchParams["arrivalDate"]);
var timeDiff = Math.abs(date2.getTime() - date1.getTime());
var leadDays = Math.ceil(timeDiff / (1000 * 3600 * 24));
for (i = 0, len = abe_roomRatesData.length; i < len; i++) {
impressions.push({
'name' : abe_roomRatesData[i]['roomCode'] + "-" + abe_roomRatesData[i]['rateCode'],
'id' : abe_roomRatesData[i]['rateCode'],
'price' : abe_roomRatesData[i]['totalRate'],
'category' : abe_roomRatesData[i]['roomCode'],
'variant': abe_searchParams["iataNumber"],
'metric1' : leadDays,
'metric2' : abe_roomRatesData[i]['totalRate'],
'metric3' : abe_searchParams['numberOfNights'],
'metric7' : abe_roomRatesData[i]['totalRate'] / abe_searchParams['numberOfNights']
});
}
window.dataLayer = window.dataLayer || [];
dataLayer.push({
'event' : 'addtoCart',
'metric6' : leadDays,
'ecommerce' : {
'currencyCode': abe_hotelInfo["hotelCurrency"],
'impressions' : impressions
}
});
感谢
如果你能维护它,你绝对可以做到。如果您将此代码放在自定义 HTML 标签
中也没有错我不建议将此作为最佳做法。将内容推送到自定义 HTML 标记中的数据层可能会误导任何未来将处理网站代码的开发人员,因为他们很难确定代码中实际推送发生的位置。
如果您想在多个电子商务网站上实施 GTM,那么您的电子商务平台通常应该有某种模板系统,允许您构建 GTM 模板某种被所有站点加载的类型。这将是更清洁的方法。