0

ブラウザバーからGoogleAnalyticsのURLトラッキングコードを削除して、ユーザーがURLをコピーして貼り付けたときに、すべてのトラッキングデータが一緒に表示されないようにします。これは、役に立たず、歪曲する可能性があります。将来のデータ。

そのため、history.jsを使用してreplaceStateを実行し、基本的に、少し休止した後、URLから追跡データを削除しています。

<script type="text/javascript">
setTimeout(function() {
    if( window.location.search.indexOf( "utm_campaign" ) >= 1 ) {
        window.history.replaceState( null, document.title, window.location.pathname);
    }
}, 1000 );
</script>

誰かがそのような方法で起こりうる合併症や問題を見ていますか?

4

1 に答える 1

1

唯一の問題は、タイムアウト コードが実行されるまでに Google アナリティクスが完全に読み込まれていない可能性があることです。

Google アナリティクス トラッカーには、GA データが Google に送信された後に関数をキューに入れる API があります。

次のようなことができます。

var _gaq = _gaq || [];
_gaq.push(['_setAccount', 'UA-XXXXX-X']);
_gaq.push(['_trackPageview']);
_gaq.push(function() {
  var newPath = location.pathname + location.search.replace(/[?&]utm_[^?&]+/g, "").replace(/^&/, "?") + location.hash;
  if (history.replaceState) history.replaceState(null, '', newPath);
});

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

関数が _gaq オブジェクトにプッシュされている 4 行目に注意してください。

この関数は、GA リクエストが送信された直後に URL を置き換えます。

于 2014-08-27T01:38:59.537 に答える