31
var gaJsHost = (("https:" == document.location.protocol) ? "https://ssl." : "http://www.");
document.write(unescape("%3Cscript src='" + gaJsHost + "google-analytics.com/ga.js' type='text/javascript'%3E%3C/script%3E"));

try 
{
    var pageTracker = _gat._getTracker("UA-XXXXXXX-1");
    pageTracker._trackPageview();
}
catch(err) {}

このスクリプトを外部の JS ファイルから呼び出すことはできますか? 私は次のようなことをしたかった:

<script type="text/javascript" src="googleanalytics.js" ></script>

これらの 1 つを各 HTML ページに配置します。
上記のコードは googleanalytics.js 内にあり
ます。Google の指示では、コードを各ページに配置することでした。問題は、トラッキング コードの変更が難しくなることです。(DEV ページと PROD ページでは異なるトラッキング コードを使用しています)。
私はそれを試してみましたが、うまくいかないようです。
そうすることに何か問題がありますか?それとも、問題を引き起こしている何か他のものがありますか?

重要な参考 までに、私たちは IE6 および 8 ブラウザーを使用していることに注意してください (はい、知っています。私に言う必要はありません)。

4

8 に答える 8

3

同様の問題を解決しようとしているときに、この投稿に出くわしました。さらに検索した後、私のために働いた別の投稿に出くわしました:

外部 JS ファイルからの Google アナリティクス非同期コードの使用

グローバルになるように、var _gaq を関数の外に移動する必要がありました。

お役に立てれば!

于 2011-07-07T18:19:37.800 に答える
2

これは、Google Analyticsが従来のスクリプトを2つのスクリプトタグに分割したのと同じ方法で、スクリプトを2つのスクリプトに分割した場合に機能します。

于 2011-04-16T21:07:55.143 に答える
0

@日光

考えられる理由の 1 つは、GA アカウントが古い分析を使用して作成されたためです。したがって、従来の分析コード ga.js (_gaq.push) を使用する必要があります。GA Web サイトで従来の GA アカウントを使用して新しい analytics.js を使用すると、互換性がないことがわかりました。ヒットが表示されないため、従来の ga.js を使用せざるを得ませんでした。

また、以下のように、ヒットが正常に送信されるようにコールバック関数を設定することもできます。

//traditional way
_gaq.push(['_set', 'hitCallback', function() {
  console.log("%c ga.js finished sending pageview data to analytics %s ", "color:black; background: pink", pageviewUrl);
}]);

//new analytics way
ga('send', 'pageview', {
            'page': pageviewUrl,
            'hitCallback': function() {
                console.log("%c analytics.js done sending data. pageview url = %s ", "color: black, background: pink", pageviewUrl);
            }
        });

pageviewUrl = サイトの URL

それが役立つことを願っています!

于 2014-03-31T04:01:26.463 に答える