0

私はデジタル アナリストで、JavaScript を学ぼうとしています。特に、私たちの組織は現在 Google タグ マネージャーを使用しています。

今朝、私のサイトは、特定のアウトバウンド リンク (アプリ ストアへのクリック) をイベントとして追跡するように設定されていました。カスタム HTML は次のとおりです。

  <script type="text/javascript"> 

$(document).ready(function(){ 

    $('.app-cta a').click(function(){ 
        dataLayer.push({ 'event':'GAevent', 'eventCategory':'App', 'eventAction':'Click to App Store', 'eventLabel':'iOS' }) 
    }); 

});

</script>

しかし、個人が終了リンクをクリックすると、Javascript がパラメータを Google アナリティクスに渡す前にブラウザが新しいサイトにアクセスするという問題がありました (明らかにかなり一般的です)。推奨される回避策は、次のように 500 ミリ秒の遅延を追加することでした。

<script type="text/javascript"> 

setTimeout(function(){
$(document).ready(function(){ 

    $('.app-cta a').click(function(){ 
        dataLayer.push({ 'event':'GAevent', 'eventCategory':'App', 'eventAction':'Click to App Store', 'eventLabel':'iOS' }) 
    }); 

});
},500);

</script>

Javascript を使用するのは 2 回目か 3 回目だったので、これはうまくいきました。

それから、もう少し大胆になりたいと思いました。私はコードを「きれいに」したいと思い、分析関数から変数を作成しようとし、その変数に対して setTimeout メソッドを実行しました。これは私が試したものです:

<script type="text/javascript"> 

setTimeout(function(){track_app},500);


var track_app = $(document).ready(function(){ 

    $('.app-cta a').click(function(){ 
        dataLayer.push({ 'event':'GAevent', 'eventCategory':'App', 'eventAction':'Click to App Store', 'eventLabel':'iOS' }) 
    }); 

});


</script>

これは非常に基本的なことのように見えますが、この最後の試みがうまくいかなかった理由を誰かが指摘できれば幸いです。私の最初の試み (それは機能しており、簡単に元に戻すことができた) は、分析機能に 500 ミリ秒の遅延を追加する「最も適切な」方法でしたか? setTimout メソッドを統合する最良の方法は何でしょうか?

4

3 に答える 3