Google跟踪代码管理器自定义javascript以获取数据层变量

时间:2015-11-19 20:11:13

标签: javascript jquery google-tag-manager

我想在数据层变量上进行一些处理,然后才想在标记中使用它。例如,我有许多带有fontawseome框架的社交图标。现在我想创建一个变量,它给我一个单击的变量。

如何获取数据层elementClasses值的一部分?

在预览模式下,我可以看到当我点击按钮时,Data Layer values after this message框看起来像这样:

{
  gtm: {
    ...
    ...
    elementClasses: 'fa fa-twitter',
    ...
  }
}

我基本上想要创建一个GTM类型Custom JavaScript的变量来执行此操作

function(){
  return elementClassesString.match(/fa-.*/);
}

任何提示?

EDIT ::

在控制台中,我可以通过输入dataLayer[dataLayer.length-1]来获取最新的数据层条目,所以我认为这样可以解决问题:

function(){
  latest = dataLayer[dataLayer.length-1]["gtm.elementClasses"];
  if(latest === ""){
   social = "not-set" 
  }else{
    social = latest.match(/fa-.*/)[0];
    social = social.substring(3,social.length);
  }
  return social;
}

但我只在GTM预览中获得undefined。那是为什么?

1 个答案:

答案 0 :(得分:1)

要在推送它时获取gtm.ElementClasses(即在gtm.click或gtm.linkClick事件中),您可以创建一个自动事件变量,如下所示:

enter image description here

此变量返回单击的元素的类。然后,您可以在其他自定义JS变量中使用此变量。