1

私のすべてのサイトページで、終了ヘッドタグの直前に次のようにグーグルアナリティクス非同期コードを設定しています。

<script type="text/javascript">
var _gaq = _gaq || [];
_gaq.push(['_setAccount', 'UA-XXXXXX-X']);
_gaq.push(['_trackPageview']);

(function() {
    var ga = document.createElement('script');
    ga.type = 'text/javascript';
    ga.async = true;
    ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
    var s = document.getElementsByTagName('script')[0];
    s.parentNode.insertBefore(ga, s);
})();</script>

次に、チェックアウトページで、イベントトラッキングを使用して、ユーザーがさまざまなページで費やした時間をGoogleアナリティクスイベントの値として報告しようとしています。

これを行うには、jQuery.ready関数を使用して「開始」時刻を記録し、ユーザーをチェックアウトの次のステップに移動させる送信ボタンにイベントハンドラーを追加します。このコードは外部ファイルcommon.jsにあり、次のとおりです...

        $(document).ready(function() {
        recordStartTime();
        if ($("#checkoutPage1").length) 
        {   
            if ($("#customerDetailsForm").length) 
            {   
            // Time spent
                $('.customerDetailsSubmitButton').click(function() {
                time = durationWholeSeconds();
                _gaq.push(['_trackEvent', 'Checkout', 'Timing', 'CustomerDetailsPage', time]);
                return true;
                });
            }
        }

jQuery.ready、#checkoutPage1、#checkoutPage2、#checkoutPage3などの他のステップのコードの同様のセクションがあります。

ブラウザ(Chrome)でこのコードをテストすると、すべて期待どおりに機能し、ga.debugプラグインを使用すると、_trackEventパラメータがGoogleアナリティクスに送信されていることがわかります。

私の問題は、これが必ずしも実際に機能するとは限らないということのようです。私のライブサイトでは、断続的なイベントが発生しています。GAで予想されるイベントが一致しない「販売」がいくつあるかをかなり正確に知っていると仮定します。多くの場合、チェックアウト手順の後者のイベントの一部は、前のイベントが記録されずに報告されます。

私の質問は、基本的にjQuery.ready関数を使用して、必要に応じてイベントハンドラーとトラッキングコードを追加できるかどうかです。私が見つけていない別の問題はありますか?

4

1 に答える 1

2

jQuery.readyを使用できますが、起動しない場合があることに注意する必要がありますjQuery.ready。DOMの準備が整う前に、ユーザーが移動する場合があります。

recordStartTime関数とを投稿していませんdurationWholeSeconds。何らかの理由でブラウザで例外が発生した場合、そのセッションではイベントは発生しません。たぶん、失敗した場合でもイベントを発生させるために、キャッチブロックを試してシールドされていることを確認する必要があります。

$('.customerDetailsSubmitButton').mousedownまた、の代わりに使用することをお勧めしますclickmousedown最初に発砲し、ここではタイミングが不可欠です。イベントが通過する前にブラウザがリダイレクトした場合、イベントはキャンセルされ、GAに到達しない可能性があります。マウスダウンを使用したテストでは、クリックを使用した場合のほぼ2倍のヒットが見られます。

于 2012-08-26T21:43:06.937 に答える