Google tag manager 数据层变量中以逗号分隔的列表

Google tag manager 数据层变量中以逗号分隔的列表,google-tag-manager,Google Tag Manager,我有一个页面上类别的数据层变量。我已经正确地触发了该变量,但是该变量中的值可以是多个类别,因此以逗号分隔的列表显示: dataLayer = [{ 'storeCategory': 'major store', 'food', 'childrenswear', 'health & beauty' }]; 我想做的是为列表中的每个catgeory启动GA活动: Event catgeory: "Store" Event action: "ViewCategory" Event lab

我有一个页面上类别的数据层变量。我已经正确地触发了该变量,但是该变量中的值可以是多个类别,因此以逗号分隔的列表显示:

dataLayer = [{
'storeCategory': 'major store', 'food', 'childrenswear', 'health & beauty'
 }]; 
我想做的是为列表中的每个catgeory启动GA活动:

Event catgeory: "Store"
Event action: "ViewCategory"
Event label: {storeCategory value}
我有一种感觉,我需要使用一个自定义JavaScript变量来解析列表,但不确定该变量如何与触发器或标记链接

  • 您的数据层不正确,“storeCategory”变量应该是一个数组,我认为您只是缺少括号
  • 我不确定你需要多少帮助,但基本上你需要:

  • 创建数据层变量以捕获storeCategory数组

  • 创建一个自定义html标记,该标记在“所有页面”上触发,以在storeCategory数组中循环,如下所示:

  • 
    var cats={{store category}};
    var catLen=cats.length;
    对于(变量i=0;i
  • 创建另一个数据层变量以捕获步骤2中的“category”变量

  • 创建一个自定义事件触发器,以在“类别视图”或任何您命名的视图上触发

  • 创建GA事件标记并在“标签”中捕获“类别”变量,确保将其设置为非交互


  • 您不应该从GTM本身内部推送到数据层。这是一种不好的做法,因为当事件可能来自GTM的外部和内部时,它可能会令人困惑。如果要实现标记之间的依赖关系,请使用内置的标记排序功能。
    <script>
      var cats = {{store category}};
      var catLen = cats.length;
    
      for (var i = 0; i < catLen; i++){
       dataLayer.push({
         'event': 'category-view',
         'category':cats[i]
       });
    
      }
    </script>