3

私はほとんどの標準的な例を実装しました:

        <script>

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

        <script>

            function recordOutboundLink(link, category, action) {
                try {
                    var myTracker=_gat._getTrackerByName();
                    _gaq.push(['myTracker._trackEvent', category ,  action ]);
                    setTimeout('document.location = "' + link.href + '"', 100)
                }catch(err){}
            }

        </script>

リンクには次の onclick イベントがあります。

<a id="latestDownload" href="https://example.com" onClick="recordOutboundLink(this, 'newDownloads', 'latest');return false;">Download latest version</a>

過去 3 日間、追跡されたイベントはありません。クロム用の GA デバッグ プラグインを使用してページをテストしました。これは、イベントが送信されることを示しています。

ここで何か間違いを犯しましたか?

Google GA デバッグ アドオンが表示されます (文字通り、難読化されていません)。

Account ID : UA-XXXXX-X

&utmac=UA-XXXXX-X

「_setAccount」を再度プッシュする必要がありますか?

4

3 に答える 3

4

tl;dr..._getTrackerByName()呼び出しを省略して、使用するだけです

_gaq.push(['myTracker._trackEvent', category ,  action ]);

より長い説明: 非同期トラッキングでは、次のような構文を使用してコマンドを複数のトラッカーにプッシュできます (「トラッキングの基本」を参照)。

_gaq.push(['_setAccount', 'UA-XXXXX-1']);
_gaq.push(['_trackPageview']);
_gaq.push(['b._setAccount', 'UA-XXXXX-2']);
_gaq.push(['b._trackPageview']);

コードは、上記のトラッカーのように_gaq.push(['myTracker._trackEvent', category , action ]);既に初期化されていることを前提としています。myTrackerb

myTrackeraccountId が設定されていないため、デバッグ中に accountId が表示されますUA-XXXXX-X

Specialized Tracking/Outbound Linksの分析コードが間違っているか、セットアップ コードが という名前の場合にのみ機能しますmyTracker

于 2012-04-18T16:27:10.537 に答える
2

myTrackerは変数であるため、文字列内で実際に参照することはできません。以下が機能するはずです:

_gaq.push(['_trackEvent', category ,  action ]);
于 2012-04-18T07:15:30.493 に答える
0

setTimeout のことは、私には少し危険に思えます。Google アナリティクスの呼び出しが 100 ミリ秒以内に行われたことを前提としています。

私はこれを好みます:

function trackOutboundLink(url) {
    _gaq.push(['_trackEvent', 'outbound', 'click']);

    _gaq.push(function() {
        window.location = url;
    });
}

これにより、Google アナリティクスの非同期呼び出しが完了するまで、リダイレクトがキューに入れられます。

引っ掛ける:

<a href="#" onclick="trackOutboundLink('your-url');return false;">Link</a>
于 2015-03-25T08:56:02.110 に答える