Google跟踪代码管理器-解析动态数据层变量

时间:2018-08-08 12:54:55

标签: google-tag-manager

我想解析一个“推送”数据层字符串。我打算用它来跟踪点击事件并在Google Analytics(分析)中设置适当的渠道,如下所示:products.view.19 |查看最新产品| 19

  • 第一部分(products.view.19)是唯一的页面标识符。
  • 第二部分(查看最新产品)是操作。
  • 最后一部分是(19)是动作标识符,这样可以更容易地对动作进行分组和比较。

因此,我执行以下操作,首先创建了一个触发器(当链接中包含标签“ data-trackclick”时将触发),该触发器将数据值推入变量(数据层变量)。但是,如上所述,现在我想将该变量分成3个新变量。我为此选择了“ javascript宏”,但以某种方式返回“未定义”。宏如下所示:

function() {
  var data = {{TrackClickData}};
  var pieces = data.split('|');

  if (pieces[0].length()) {
      return pieces[0];
  } else {
      return data;
  }
}

显然这没有用,因为它只会在初始加载时运行,而不是(如我所想)在请求宏时运行,因此应该以某种方式在“点击”上触发它,然后相应地设置变量。

这有可能吗?还是真的必须在脚本标签中添加dataLayer.push()?

1 个答案:

答案 0 :(得分:0)

几件事:

  • .length()错误,数组长度的属性为.length,而没有()
  • 如果存在,pieces [0]不是数组,则.length将返回字符串长度,有关更标准的检查空字符串的方法,请参见How do you check for an empty string in JavaScript?
  • 这有可能吗? GTM几乎没有什么可以做的,因为您可以编写JavaScript代码,可以执行任何代码允许做的事情,并将字符串拆分为使用它的一部分作为变量肯定在可能性范围之内。

我的建议是首先让您的代码在GTM之外运行(例如,在浏览器控制台中对其进行测试),然后在所有代码正常运行后,将其移植到GTM。