私のすべてのサイトページで、終了ヘッドタグの直前に次のようにグーグルアナリティクス非同期コードを設定しています。
<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関数を使用して、必要に応じてイベントハンドラーとトラッキングコードを追加できるかどうかです。私が見つけていない別の問題はありますか?