33

Chrome デバッグ ログでサイト ページを表示すると、次のメッセージが表示されます。

Uncaught ReferenceError: _gaq が定義されていません

onloadページ自体は、イベント ハンドラーを使用してオブジェクトを追跡し、_trackEventGoogle アナリティクスの を起動することになっています。

私の最善の推測は、おそらくga.jsファイルが時間内にロードされないため、onload _trackEventトリガーされたものがキャッチされないということです。非同期スニペットは</body>終了前に使用されており、オブジェクトは中央に配置されてい<body>ます。

(他のいくつかの投稿でもjQueryの位置を参照していますが、これはニシンかもしれません)

どんな援助も大歓迎です。

4

5 に答える 5

34

https://developers.google.com/analytics/devguides/collection/gajs/から、このコードは既存の「従来のスニペット」を「最新の非同期バージョンです。最初に既存のトラッキング スニペットを削除する必要があります」に置き換えます。

<script type="text/javascript">

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

</script>

イベントの受信を確認するには (これが機能しているかどうかを確認するため)、[レポート] ページの左側にある [リアルタイム] メニュー オプションの下にある [イベント] を探します。

于 2014-03-10T18:14:36.007 に答える
16

非同期スニペットの位置に関して、GA ヘルプ ページには次のように記載されています。

このスニペットを Web サイトのテンプレート ページに貼り付けて、終了</head>タグの前に表示されるようにします。

私が最初に考えたのは、ページの速度を向上させるために JS をページの下部にロードする必要があるということでした。ただし、GA 非同期トラッキング スニペットは、ga.js をすぐには読み込まず、ページの実行をブロックしないため、head に読み込む必要があります。列の最後尾です。)

何らかの理由で非同期スニペットを先頭に移動できない場合は、次の_gaqように自分自身を定義できます-

<button onclick="var _gaq = _gaq || []; _gaq.push(['_trackEvent', 'button3', 'clicked'])"/><button>
于 2013-02-28T23:41:02.260 に答える
11

同じ問題がありました。_gaq配列を定義する必要があります。ヘッダーの Google アナリティクス スクリプトの後にこれを追加するだけです。

var _gaq = _gaq || [];
_gaq.push(['_setAccount', 'UA-XXXXXX-X']);
_gaq.push(['_trackPageview']);
于 2013-04-23T19:46:12.280 に答える