2017-01-12 11 views
0

ログインページのajax呼び出しで、is_first_login = 1という名前のパラメータが返された場合、GAイベントを送信するにはga()を呼び出す必要があります。ga()はどれくらい時間がかかりますか?

その直後に、ページはメインダッシュボードページにリダイレクトされます。 しかし、なぜga()が時々発射されないのかわかりません。

GAイベントの放火には平均してどのくらい時間がかかりますか?

// Make ajax call for login. 
    fn._post('user.post_login', { 
    username: username, 
    pwd: pwd, 
    redirect_to: redirect_to, 
    }, function (json) { 

    if (!json.error && json.is_first_login) { 

     if (typeof ga !== 'undefined') { 
     var event_category = 'Subscribe - First Login', 
      event_action = 'First Login', 
      event_label = 'Partner'; 

     ga('send', 'event', event_category, event_action, event_label); 
     ga('newTracker.send', 'event', event_category, event_action, event_label); 
     } 
    } 

    if (json.redirect) { 
     fn._redirect(json.redirect); 
     return; 
    } 

    $('.msg').remove(); 
    if (json.error) { 
     fn._inlineMsg(jUsername.parent(), json.msg); 
     jUsername.focus(); 
     jLoginBtn.parent().removeClass('loading'); 
    } 
    }); 
+0

Shure。それはGoogleのサーバーにpingする必要があります...それはどのように動作します... –

+1

奇妙な質問。量子コンピューティングや高速ネットワークのものでも、それを完了するのに時間がかかります。ゼロよりも大きいものです。私はあなたが実際にページがアンロードされたときにブラウザが保留中のAJAX要求を打ち切るかどうかを知りたがっていると思います... –

+0

@Alvaroちょうど変更されました。それが量子コンピューティングネットワークであることを教えていただきありがとうございます。私は知らなかった:D –

答えて

2

トラッキングリクエストがクライアントのコンピュータでどのくらいの期間かかるかを判断することはできません。私の追跡要求は通常25ミリ秒程度です(まれに960ミリ秒ほどかかる)。

あなた自身でテストすることができます。ブラウザのコンソールから次のコマンドを実行してください:

var start = (new Date()).getTime(); 
ga('send', 'event', 'event_category', 'event_action', 'event_label', { 
    hitCallback: function() { 
     console.log("Tracking took " + ((new Date()).getTime() - start)); 
    } 
}); 

しかし、あなたが得る時間はちょうど参考になり、あなたはそれに頼ることができません。他のクライアントのコンピュータでは、応答時間が異なることがあります。

したがって、リダイレクトコードをコールバック関数内に配置することができます。

setTimeout(function(){ 
    //redirect here 
}, 2000); 

ga('send', 'event', event_category, event_action, event_label, { 
    hitCallback: function() { 
    //redirect here 
    } 
}); 

のsetTimeoutを念のため使用され、hitCallbackは(も可能である)が起こることはありません。

読むより上https://developers.google.com/analytics/devguides/collection/analyticsjs/sending-hits#knowing_when_the_hit_has_been_sent

event.preventDefault()を呼び出すことを忘れないでくださいデフォルトでリダイレクトしない要素へのトラッキングコードを結合する場合(例えば< >、<ボタン> ...)

-1

ga()は主にダウンロードするには、完全な分析ライブラリを待つために、分析の要求をキューに入れます。 (https://developers.google.com/analytics/devguides/collection/analyticsjs/command-queue-reference

リソースが読み込まれる前にリダイレクトしている場合、Googleアナリティクスへの呼び出しは行われません。

+0

analytics.jsがこのイベントの前に既に完全に読み込まれていた解雇される。私は、ガ(「送信」)コールを完了するのにどれくらいの時間がかかるかを知りたい。 –

+1

これはサーバーの応答時間に依存し、異なる場合があります。 set timeout-functionを指定してコールバック関数を記述する必要があります。 1秒はコールバックを送信するのに十分な時間でなければなりません。タイムアウトはあなたのsciptがGAに依存しないようにすることです。それは、もしかしたら、GAが反応していない場合に進む。 – Medda86

関連する問題