0

私は次のコードを持っています:

var selectedLevel = true;
if (selectedLevel === true) {
    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-XX"); // <-- The ID _is_ here
        pageTracker._trackPageview();
    } catch(err) {}
}

FireCookieにCookieが設定されていることを期待していますが、何も表示されません。ga.js私のFirebugNETタブによると、これらはロードされているように見えます。

クッキーが設定されない理由を誰かが知っている理由はありますか?

4

2 に答える 2

1

try / catchブロックが同じスクリプト内にあるため、他のスクリプトがロードされる前にトラッカーを取得する行が実行され、_gat定義されていないために失敗するのではないかと思います。Googleドキュメントが示唆しているように、独自のスクリプトブロックに入れてみてください。

<script type="text/javascript">
    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"));
</script>
<script type="text/javascript">
    try{ 
        var pageTracker = _gat._getTracker("UA-xxxxxx-x");
        pageTracker._trackPageview();
    } catch(err) {} 
</script>
于 2012-07-09T12:37:16.817 に答える
0

(別の可能性)これは、ga.jsがまだロードされていないために発生することがあります。してもいいです

遅延を追加します。

<script type="text/javascript">
    var pageTracker;

    setTimeout('startGA();', 500);
    function startGA()
    {
        pageTracker = _gat._createTracker("UA-XXXXXX-X");
        pageTracker._trackPageview(); 
    }
</script>

---このリンクからの上記のコードスニペットのクレジット

またはより良い方法:

ページトラッカーのオンロードを定義することになる

<script type="text/javascript">
    var pageTracker;

    $(window).load(function(){ 
        pageTracker = _gat._createTracker("UA-XXXXXX-X");       
        pageTracker._trackPageview(); 
    });
</script>

ga.jsが読み込まれているかどうかを確認するには

(catchを試す代わりに)これを行うこともできます:

<script type="text/javascript"> 
    var pageTracker;

    if (typeof(_gat) == "object") { 
        pageTracker = _gat._createTracker("UA-XXXXXXX-X"); 
        pageTracker._trackPageview(); 
    } 
</script> 

注意点-varpageTrackerの宣言は、try-catchブロックまたはif/elseステートメントの外側にすることをお勧めします。これが誰かを助けることを願っています。

于 2014-04-03T08:54:46.213 に答える