Ajax完成后的GTM触发器自定义标记

时间:2018-01-20 16:57:54

标签: google-tag-manager

我试图在jQuery ajaxComplete事件之后触发GTM标记。

标签1

应该在网页浏览上触发,每次都在 ajaxComplete

console.log('cleanup')

页面视图触发器清晰简单。

标签2

至于ajax我正在设置额外的标签以检测ajaxComplete:

  var gtm = google_tag_manager[{{Container ID}}];
  $(document).ajaxComplete(function() {
    try {
      gtm.onHtmlSuccess({{HTML ID}});      
      console.log('success');
    } catch(e) {
      gtm.onHtmlFailure({{HTML ID}});
      console.log('failure')
    }
  });

它在ajaxComplete上触发onHtmlSuccess()。 清除标记设置为标记1 以触发标记序列。

此标记组合应如下所示:

  1. 页面加载标记1 会触发(此标准可以)
  2. on ajaxComplete 标记2 触发onHtmlSuccess()
  3. onHtmlSuccess()标记1 应再次触发(由于标记序列)
  4. 不清楚为什么第2项和第3项没有按照我的预期运作。 有什么建议吗?

1 个答案:

答案 0 :(得分:0)

嗯,我是这样做的:

第1步

创建以下自定义HTML标记:

<script>
  (function($) {
    $(document).ajaxStop(function() {
      dataLayer.push({
        'event': 'ajaxStop'
      });
    });
  })(jQuery);
</script>

它在jQuery ajaxStop事件上向dataLayer事件键添加了ajaxStop值。

第2步

接下来添加事件名称值设置为ajaxStop的自定义事件标记:http://prntscr.com/i4swhv

第3步

创建以下自定义HTML标记:

<script>
  var gtm = google_tag_manager[{{Container ID}}];
  try {
    gtm.onHtmlSuccess({{HTML ID}});
  } catch(e) {
    gtm.onHtmlFailure({{HTML ID}});
  }
</script>

将任何其他自定义HTML标记添加为此标记。

它完全符合我的需要。