Google 跟踪代码管理器 - dataLayer 有以前的值

Google Tag Manager - dataLayer has previous value

我在同一个页面上有两个标签。

第一个标签适用于页面视图并包含将值推送到数据层的自定义 html。

<script>
  $(document).ready(function ($) {
    $('ul li').click(function(){
        console.log("index:"+$(this).index());
        dataLayer.push({'clicked_slider_tab_index': $(this).index()});
    });
  });
</script> 

第二个标签在使用标签字段中的此 dataLayer 变量的通用分析类型点击元素时触发。

问题是。当触发第二个标签时,它的 {{dataLayer - clicked_slider_tab_index}} 变量具有先前的值。 console.log 按预期工作,但不知何故 dataLayer.push 未按预期工作。

我只能检测到在上一个操作中点击的索引。

这很可能发生,因为 link 点击事件同时触发了您的自定义 HTML 标签和通用事件标签,因此自定义 HTML 标签没有有时间更新 'clicked_slider_tab_index' 值。

在这种情况下,最好的跟踪方式是扩展您的 dataLayer.push 以包含一个事件。下一步是更改触发器以触发新事件 "indexClicked"。这将确保在单击元素时填充 dataLayer 变量。

<script>
  $(document).ready(function ($) {
    $('ul li').click(function(){
        console.log("index:"+$(this).index());
        dataLayer.push({
        'event': 'indexClicked'
        'clicked_slider_tab_index': $(this).index()
      });
    });
  });
</script>