2012-04-24 10 views
1

私は別の企業のGoogleアナリティクスコードを使用しようとしています。残念ながら、私はそれに多くの経験がなく、コードの基本を理解するだけです。Googleアナリティクスが新しいウィンドウでブロックされています

私はクロスブラウザクリック追跡されなければならないと働いて、次のコード:今私が遭遇してる問題がある(私は、コードの大部分を切り取り、重要な部分を書きました)

if (($(link).attr('href').indexOf('example.com') != -1) && 
     (window.location.href.indexOf('example.com') == -1)) { 
    $(link).bind('click', function (l) { 
    if (typeof (_gat) == "object") { 
     l.preventDefault(); 
     _gaq.push(['_link', $(link).attr('href')]); 
    } 
    }); 
} 

をデフォルトの防止により、すべての外部リンクが新しいウィンドウで開くのをブロックするようになりました。

このコードを変更してトラッキングを維持するにはどうすればよいですか?

+0

どのようにGoogle Analyticsのは、それをブロックしているという結論になりましたか? – MilkyWayJoe

+1

l.preventDefault()は通常のアンカー動作を停止し、_gaq.pushはページリダイレクトを実行しています。私がコメントアウトすると、新しいウィンドウと同じウィンドウの両方が新しいページに移動します –

+0

'_gaq.push'がリダイレクトしているかどうかはわかりません。私はあなたが手作業で 'window.location'をurl *に設定しなければならないと思います*追跡後の情報をGoogleアナリティクスに追加しました..あなたはこの質問を見たことがありますかhttp://stackoverflow.com/questions/8692503/javascript-redirect- with-google-analytics? – MilkyWayJoe

答えて

2

_linkセットのlocation.hrefは内部的に新しいURLにジャンプしますが、リンクのターゲット属性は無視されます。代わりに_linkを使用して、あなたは_getLinkerUrlを使用し、URLに従うことができ、自分自身

$(link).bind('click', function (l) { 
    if (typeof (_gat) == "object") { 
     var pageTracker = _gat._getTrackerByName(); 
     var url = pageTracker._getLinkerUrl(this.href); 
     l.preventDefault(); 
     if ($(this).attr('target') != '_blank') location.href = url; 
     else window.open(url); 
    } 
}); 
+0

ありがとう、それを試してみよう。 –

関連する問題