GTM定时器触发器

时间:2017-08-01 11:28:27

标签: google-tag-manager

以下情况: 在单页面应用程序上,当我们在该页面上打开特定文章时会触发ArticleClick。我认为在ArticleClick事件发生10秒后读取了一篇文章。

到目前为止,这可以通过GTM中的Timer功能实现。

唯一的问题是,当事件被触发时,9秒后我打开另一个事件,这将导致第二个计时器启动,无论我做什么,只要网站打开(因为它是单页)那里将永远是一个阅读事件。有没有一种简单的方法可以在10秒钟之前打开另一篇文章(和另一个计时器)时停止第一个计时器?

1 个答案:

答案 0 :(得分:0)

通过使用datalayer变量来存储计时器的状态(运行与否)。

请注意,这里的真或假是字符串而不是布尔值,这是因为需要将DL-variable的GTM中的默认值设置为false以使其工作,在GTM界面中执行此操作会自动生成值一个字符串。

<script>                           
(function() { 
var timerNumber = 1;
var limit = 1;
// timer
var fireTimer = function() {      
      window.dataLayer.push({
        'event' : 'ArticleRead',            
        'custom.timer.running' : 'false'
      });   
    timerNumber += 1;
    if (limit < timerNumber) { 
    window.clearInterval(timerId);
    }
    };  


   if ({{custom.timer.running}} == 'false') {


   window.dataLayer.push({ 'custom.timer.running' : 'true'});
   var timerId = window.setInterval(fireTimer, 10000);  }     

  })();
</script>

所以现在当我们第二次触发计时器并且计时器没有达到10000毫秒时,它不会继续并且它会再次启动。