1

ユーザーがサインアップ フォームの送信ボタンをクリックしたときのイベントを追跡しようとしています。

私のページには次のコードがあります。

</head>Google アナリティクス - 終了タグの直前:

<script type="text/javascript">

  var _gaq = _gaq || [];
  _gaq.push(['_setAccount', 'UA-XXXXXXXX-XX']);
  _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>

フォーム イベント トラッキング:

<input onclick="_gaq.push(['_trackEvent', 'Forms', 'Submit', 'mylist', , false]);" name="submit" id="af-submit-image-873297158" type="image" class="image img-responsive" style="background: none;" alt="Submit Form" src="img/orange_free_instant_access_button.png" tabindex="503">

ページを読み込んでフォームをクリックするたびに、Analytics のリアルタイム イベント セクションにイベントが記録されます。これは問題なく機能しているように見えますが、過去 24 時間で合計 100 を超える既知のサインアップがリストに登録されましたが、ログに記録されたのはほんの一握りです。(全体で 12 件、そのほとんどが私自身のテスト提出でした)。

イベントが Google に送信されていないとしか思えませんが、コードを見る限り問題はなく、GA デバッグ プラグインを使用してコンソール経由でイベントが送信されていることも確認できます。

jQuery呼び出しでイベントをトリガーしようとしましたが、onmousedownや実際のフォーム送信イベントなどのさまざまなイベントを試しましたが、何もしませんでした. (「ベータ版」の問題である可能性があると考えたため、analytics.js から ga.js にロールバックして、まったく新しいプロファイルを作成しました。)

ページが場所を変更する前にイベントが発生していなかったのではないかと疑っていましたが、自分でテストすると、毎回発生しました。Chrome、FF、IE10を試しました。

これを修正するために、ページの本文に onload イベントを追加しました。ライブの訪問者からでも、イベントが記録されていることがわかります。問題はフォームイベントを中心にしているようです。

4

2 に答える 2

3

わかりました、他の人の利益のために私自身の質問に答える時が来ました:

掘り下げてみたところ、イベントが適切に追跡される前に、ページの場所が変更されたことが原因でした。Joel Peterson の投稿のおかげで、次のコードを思いつきました。

jQuery(document).ready(function($){
    $('form').submit(function(event){
        //if analytics object exists
        if(window._gat){
            event.preventDefault();
            optinForm = this;
            _gaq.push(['_set','hitCallback', function(){
                                                optinForm.submit();
                                             }]);
            _gaq.push(['_trackEvent', 'Forms', 'Submit', 'hbsanewtraffic']);
        }
        //if no analytics object, service as normal
    });
});

コールバック関数を使用して、イベントが最初に送信され、次にフォームが送信されるようにします。

于 2013-08-15T10:46:35.260 に答える
0

Replace _gaq.push(['_trackEvent', 'Forms', 'Submit', 'mylist', , false]);

以下と。

ga('send', 'event', 'category', 'action');

例 :

ga('send', 'event', 'Forms', 'Submit');

onClick 属性の値として配置します。

于 2014-04-08T16:51:29.723 に答える