0

複数のドメインとサブドメインのiFrameでアプリケーションを実行しているWebサイトがあります。メインのWebサイト(www.example.com)には、フレーム化されたアプリケーションサイトのあるサイトへのリンクを含む静的コンテンツのみがあります。したがって、sub.example.com、sub2.example.com、search.another.comでは、アプリケーションが実行されているすべてのiFrameがあります。

これらすべてのサイトをGoogleAnalytics(GA)で追跡したいと思います。サブドメインの追跡は正常に機能していますが、クロスドメインを正確に機能させる方法が見つかりませんでした。主な問題は、トップレベルドメイン間で訪問者のCookie情報を共有できないことです。したがって、sub.example.comとsearch.another.comにアクセスした同じ訪問者は、2つの異なるCookieを取得し、さまざまな問題が発生します。(例:訪問者カウンターが膨らんでいる、紹介情報を正しく追跡できないなど)

これを修正するのを手伝ってくれませんか。

(私はWebでかなり徹底的な検索を行い、いくつかのシナリオを試しましたが、これまでのところ運がありません)

GA実装のコアは次のとおりです。

sub.example.com(およびメインWebサイトのすべてのサブドメイン)

_gaq.push(['b._setAccount', 'UA-XXX']);
_gaq.push(['b._setDomainName', 'example.com']);
_gaq.push(['b._setAllowLinker', true]);
_gaq.push(['b._addIgnoredRef', 'example.com']);
_gaq.push(['b._addIgnoredRef', 'search.another.com']);
_gaq.push(['b._trackPageview']);

search.another.com(すべての外部サブドメインにはバリアントがあります)

_gaq.push(['b._setAccount', 'UA-XXX']);
_gaq.push(['b._setDomainName', 'search.another.com']);
_gaq.push(['b._setAllowLinker', true]);
_gaq.push(['b._addIgnoredRef', 'example.com']);
_gaq.push(['b._addIgnoredRef', 'search.another.com']);
_gaq.push(['b._trackPageview']);

すべてのページでiframeの直後

  <script type="text/javascript">
    _gaq.push(function ()
    {
      var iFrameTracker = _gat._getTrackerByName('b');
      var iframe = document.getElementById('myframe');
      iframe.src = iFrameTracker._getLinkerUrl(iframe.src);
    });
  </script>

www.example.comのリンク

<a href="http://search.another.com" onClick="_gaq.push(function ()
  {
    var tracker = _gat._getTrackerByName('b');
    var linkerUrl = tracker._getLinkerUrl('http://search.another.com');
  });">

linkerUrlには、www.example.comのCookieを持つ正しいURLがあります。しかし、奇妙な理由で、GAはsearch.another.comに新しいCookieを割り当てます。ドメイン名をnone(['b._setDomainName'、'none'])に設定しようとしましたが、役に立ちませんでした。ここで簡単な基本的なポイントが欠けているかどうかはわかりません。この問題はクロスドメインiFrameに関連している可能性があり、リンクはiFrameまたはフレームセットのいずれかにある可能性があります。だから私は両方を追跡したいと思います。

ChromeGADebuggerアドオンを使用してデバッグを行います。

(ところで、理論的には、トップレベル/サブドメインの数は無限になります。したがって、GAで各ドメインのフィルターを手動で作成することはできません。)

4

1 に答える 1

0

linkerUrl を変数に割り当てるだけです。代わりに、ユーザーをその URL にリダイレクトする必要があります。

ブラウザーが通常のリダイレクトを行わないようにするには、onClick ハンドラーで false を返す必要があります。

<a href="http://search.another.com" onClick="_gaq.push(function ()
  {
    var tracker = _gat._getTrackerByName('b');
    var linkerUrl = tracker._getLinkerUrl('http://search.another.com');
    window.location.href = linkerUrl;
  });return false;">

または、 を使用する必要があります_link。これはほとんど同じことを行います。

<a href="http://search.another.com" 
   onClick="_gaq.push(['b._link', this.href]);return false;">
于 2012-06-01T18:15:05.513 に答える