0

我需要将相同的 dataLayer 应用于使用相同电子商务系统的多个站点。我没有将完全相同的 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
      }
  });

谢谢

4

2 回答 2

4

我建议不要将此作为最佳实践。在自定义 HTML 标记中将内容推送到 dataLayer 可能会误导任何未来将处理网站代码的开发人员,因为他们很难确定代码中实际推送发生的位置。

如果您想在多个电子商务网站上实现 GTM,那么您的电子商务平台通常应该有某种模板系统,允许您构建某种类型的GTM 模板,该模板可以被所有网站加载。这将是更清洁的方法。

于 2017-08-24T05:28:16.830 回答
2

如果您能够维护它,您绝对可以做到这一点。如果您将此代码放在自定义 HTML 标记中,则没有任何问题

于 2017-08-22T10:12:58.970 回答