增强型电子商务无法识别内部促销视图对象

Enhanced ecommerce don't recognize internal promotion view object

过去几周我一直在实施所有增强型电子商务轨道,感谢 Simo Ahava 的 blog,我可以成功完成大部分工作。但现在我正在为内部促销视图跟踪而苦苦挣扎。

我选择使用 True View Impressions 的概念来实现视图跟踪,同时基于 Simo 的工作,对于产品来说还不错。因此,我修改了 link 中的 customTasks 以跟踪内部促销,但由于某种原因,增强型电子商务无法识别 promoView 对象。但它正在识别 promoClick (?)。

我做了一个测试:我用 promoClick 代替了展示对象,它起作用了!所以,我强烈的客人,问题是它真的在我的对象上。可以看到我对象的格式here.

并说明对象的构造方式:

      var targetElement = {{Click Element}},
      event         = {{Event}},
      batch         = window[promoBatchVariableName],
      impressions   = google_tag_manager[{{Container ID}}].dataLayer.get('ecommerce.promoView.promotions'),
      ecomObj       = { };

  if (event === 'gtm.click') {
    while (!targetElement.getAttribute(promoIdAttribute) && targetElement.tagName !== 'BODY') {
      targetElement = targetElement.parentElement;
    }
  }

  var latestPromoImpression = impressions.filter(function(impression) {
    return impression.id === targetElement.getAttribute(promoIdAttribute);
  }).shift();

  var promoImpressionsArr = batch.map(function(id) {
    return impressions.filter(function(impression) {
      return impression.id === id;      
    }).shift();
  });

  if (event === 'gtm.elementVisibility'){
    promoImpressionsArr[maxPromoBatch - 1] = latestPromoImpression;
  }

  console.log(ecomObj)
  ecomObj.promoView = { promotions: promoImpressionsArr};

  if (event === 'gtm.click') {
    ecomObj.promoClick = {
      promotions: [latestPromoImpression]
    };
    console.log("click")
  }

  return {
    ecommerce: ecomObj
  };
}

有人可以帮我出出主意吗?

这个回答只是为了结束问题!正如我在评论中指出的:

" 我发现了问题。它不仅在我的对象本身上。xD 问题是你在我们谈话开始时指出的未定义元素。我正在等待开发团队更改数据-我们网站页面上元素的属性,因为有时我们得不到任何单独的标识符变量。因此,与此同时,即使在这些情况下,我也实现了一种始终获取产品 ID 的方法,但由于标识符不存在在 CSS 选择器中,如果元素在 'entrance object' 中有一个 id,则该元素被设置为未定义。“