谷歌标签管理器 - dataLayer.push()与分页,继续推?

时间:2015-02-27 09:52:18

标签: knockout.js pagination google-tag-manager

我们正在使用适当的分页并使用KnockoutJS获取我们绑定到视图的产品。一切正常,花花公子。

我们公司希望记录每种产品的展示次数,因此我们可以轻松地将每个产品数组推送到dataLayerecommerce区块)。

通常的做法是不断添加和添加到此GTM dataLayer对象,如果您在具有客户端过滤/排序/缩小的产品列表页面上,则此dataLayer数组将转到变得非常臃肿,并可能对浏览器内存使用产生影响。

push()是否显着?或者我们可以简单地将新产品列表数组分配给dataLayer中的第一个索引吗?这会被GTM正确记录吗?

1 个答案:

答案 0 :(得分:0)

继续推送到dataLayer数组是正确的,因为当前DOM中的所有产品都应该作为展示进行跟踪。如果您未跟踪所有当前展示,则在点击时无法跟踪该展示位置。每次推送时,Google跟踪代码管理器数据模型都会更新,将新推送中的产品展示次数合并到初始页面加载的内容中。

为了防止数组变得太大,我决定在新的dataLayer.push之前清除ajaxSuccess上的dataLayer

$(document).ajaxSuccess(function (event, xhr, settings) {

    /* Clear dataLayer - prevents array getting too large */
    dataLayer.length = 0;


    dataLayer.push({
      'ecommerce': {
      'impressions': [
       {
         'name': 'Triblend Android T-Shirt',
         'id': '12345',
         'price': '15.25',
         'brand': 'Google',
         'category': 'Apparel',
         'variant': 'Gray',
         'list': 'Search Results',
         'position': 1
       }]
      }
    });
  });