2

同僚が以前働いていたプロジェクトに飛び込みました。次のコードが表示されます。

  var _gaq = _gaq || [];
  _gaq.push(['_setAccount', "my id"]);
  _gaq.push(['_trackPageview']);

  _gaq.push(['_trackEvent', 'app', 'DEACTIVATE'])

問題は、Google アナリティクス ページにユーザー イベントが表示されないことです。コンテンツ->イベントを確認しました。

私はグーグルで検索し、ほとんどの人が使用していることを知りました

pageTracker = _gat._getTracker("id")
pageTracker._trackEvent("app","DEACTIVATE"); 

どちらが正しいですか?最初に自分でテストしたいのですが、アプリはすでに稼働しており、GA には 1 日遅れがあります。最初に確認するのが好きです。

更新:さらに掘り下げた後、最初のアプローチを使用する必要があることがわかりました。ただし、値を渡さないと機能しません。

  var _gaq = _gaq || [];
  _gaq.push(['_setAccount', "my id"]);
  _gaq.push(['_trackPageview']);

  _gaq.push(['_trackEvent', 'app', 'DEACTIVATE',""])   // must pass value even if it's empty
4

5 に答える 5

2

非同期バージョンを使用している場合 - 通常、使用しない理由がない場合は、常に使用する必要があります

_gaq.push(...)- (_gaq は単なる JavaScript 配列でありpush()、最後に追加するだけです)

この配列の要点は、イベントであろうと GA スクリプトが読み込まれる前のイベントであろうと、イベントを保存できることですtrackEventtrackPageViewこれが非同期トラッキングと呼ばれる理由です。スクリプトがロードされると、配列内のすべてが処理されます。

Google スクリプトの読み込みが完了する前に、この配列に何かをプッシュする JavaScript がページにある場合、イベントは読み込まれるとすぐに追跡されます。スクリプトがロードされた後も機能します。

私は(ただし、これを確認していません)-スクリプトが読み込まれる_gaqと、監視可能な配列に変換されるか、直接メソッド呼び出しに変換されるため、さらに何かをプッシュするとすぐに処理できると思います。

Google が公開している Chrome プラグインであるGoogle Analytics Debuggerを使用することをお勧めします - 送信される内容をリアルタイムで確認します。また、これは一般的な GA デバッグのヒントにも適しています。

于 2013-03-05T02:23:48.730 に答える
0

_getTrackerByName2番目のアプローチでは、代わりに使用したい_getTracker

pageTracker = _gat._getTrackerByName();
pageTracker._trackEvent("app","DEACTIVATE"); 

どちらの方法でも機能しますが、最初の方法が優先されます。

ライブ サーバーでテストしていますか、それとも localhost/イントラネット マシンでテストしていますか? サーバーが完全修飾ドメイン名を使用していない場合、Google アナリティクスはトラッキング リクエスト (__utm.gif) を送信しません。Google アナリティクスの GIF リクエストが送信されないを参照してください。

于 2012-06-14T01:30:43.600 に答える
0

_gaq は、Google アナリティクスの非同期ページ トラッキング グローバル オブジェクトです。
_gat は、Google の従来のページ トラッキング オブジェクトです。

Google のドキュメントによると、_gat(account) メソッドの呼び出しは推奨されていません。

詳細については、 https://developers.google.com/analytics/devguides/collection/gajs/methods/gaJSApi_gatを参照してください。

一般的な Google アナリティクスの詳細については、 https://developers.google.com/analytics/devguides/collection/gajs/も参照してください。

基本的な非同期トラッキングの Google の例を次に示します。

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

ページの Javascript のどこかに上記の匿名関数が表示されますか?

次のコードは私にとってはうまくいきます。 あなたが投稿したコードで、イベント トレース呼び出しの末尾のセミコロンが欠落していることに気付きました。 最初にあなたのコードをコピーしたところ、JavaScript 例外が発生しましたが、行の末尾にセミコロンを追加することで修正されました。

var _gaq = _gaq || [];
_gaq.push(['_setAccount', 'UA-######-1']);
_gaq.push(['_trackPageview']);

_gaq.push(['_trackEvent', 'app', 'DEACTIVATE']);

(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);
})();

繰り返しますが、上記のコードは私にとってはうまくいきます。

幸運を!

于 2012-06-13T22:22:22.143 に答える
0

最初の部分は正しいと思います。http://www.fiddler2.com/fiddler2/を使用して、イベントが発生したかどうかを確認するか、 Google Analytic debuggerをインストールしてください。

于 2012-06-13T22:09:57.437 に答える