2017-08-01 2 views
0

状況: 単一ページアプリケーションでは、イベント:ArticleClickは、そのページで特定の記事を開くと発生します。私はArticleClickイベントの10秒後に記事を読んだと考えます。GTMタイマートリガー

これまでのところ、これはGTMのTimer機能を使用して実現できます。

イベントが発生してから9秒後に別のイベントを開くと、2番目のタイマーが開始され、1つのページであるため、ウェブサイトが開いている限り、読み取りイベントが常に存在します。 10秒に達する前に別の記事(と別のタイマー)を開いたときに、最初のタイマーを停止する簡単な方法はありますか?

答えて

0

タイマーの状態(実行中または実行中)を格納するためにdatalayer変数を使用して解決します。

ここで真偽がブール値ではなく文字列であることに注意してください。これはDL変数の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> 

は、だから今2回目のタイマーは、それが再びそれが継続しないと、それは始まり10000 milsecsだ達していません。