2009-08-06 18 views
54

私は他の人のウェブサイト(ウィジェットのようなもの)に埋め込まれるはずのWebアプリケーションを作成しています。私は、埋め込みWebサイト上のスクリプトのすべてのインスタンスを訪問するすべての人を追跡するためにGoogle Analyticsを使用しています。問題は、ウェブサイトのGoogleアナリティクスアカウントに干渉しないように、その使用方法がわからないことです。私は名前空間にトラッカー変数を格納しているので、それを行うべきだと思ったが、GAがその設定をクッキー(__utma、__utmzなど)に格納していることに気付きませんでした。これらのクッキーは両方のトラッカーによって使用されます同じページに2つあります。たとえば、_setVarを使用してGoogleアナリティクスにユーザー定義変数を保存し、埋め込みサイトが同じであれば、お互いの値を上書きします。google analytics - 1つのページに複数のトラッカー(Cookieの競合)

もちろん、Googleがクッキーの名前をカスタム名に変更する方法を提供していれば最も簡単かもしれませんが、私はそれを行う方法を見つけることができません。私は別のクッキーを強制するためにクッキードメインまたはパスを使用することについて考えましたが、実際のドメイン/パス以外のドメインまたはパスを設定すると、再ロード後にページのCookieが読み込めないため、これは機能しません。 ..

誰かが1つのページに2つのトラッカーを持ち、お互いの設定を上書きしないように別のクッキーを使用する方法を知っていますか?

これが完全に不可能な場合、これが可能なGAと同様の機能を備えた他の分析サービスがありますか? (イベントやキャンペーンのトラッキングなどの高度な機能が必要です...)

+2

なぜあなたはあなたに属していないサイトからの訪問者のデータへのアクセス権を持っている必要がありますか?コンポーネントはどのように埋め込まれていますか? – pjp

+6

ウィジェットの使い方を知りたいので。それは実際にはウィジェットよりも埋め込み型のウェブサイトです。 "ウィジェット"は小さくて複雑なものを示唆しています... をウェブサイトに挿入すると、ウィジェットのGUIがJavaScriptで動的に作成され、AJAX JSONP)、Googleアナリティクスを使用してウィジェット内のユーザーの行動を追跡する必要があります。 –

答えて

56

新しい非同期トラッキングコードで簡単にできました。:)私は私たちのサイトとクライアントのサイトでこの構造体を使用していると、それは魔法のように動作

https://developers.google.com/analytics/devguides/collection/gajs/#MultipleCommands

+1

情報ありがとう! –

+9

更新リンク:http://code.google.com/apis/analytics/docs/tracking/asyncUsageGuidehtmlの#MultipleCommands – cope360

+4

はそう簡単ではない、簡単な状況では動作しますが、あなたはbecareful必要があります:Torokのポストのリンクを参照してください - Googleは、複数の分析が同じページ上のアカウントはお勧めしません。https://developers.google.com/analytics/リソース/コンセプト/ gaConceptsCookies?HL = NL-NL =あなたは、同じウェブプロパティ(例えばページまたはページのセット)の追跡複数のアカウントをお持ちの場合は、両方のアカウントからの読み取りとクッキーの同じセットを設定します。この設定はお勧めできません。 –

-3

This person Google Analyticsのヘルプfourmで同じ問題が発生しています。私はスレッドを見てみることをお勧めします。しかし、GAは定期的に複数のトラッカーをサポートしていません。

私はClickyが好きですが、お金がかかります。

+0

ええ、私はそれを見ましたが、示唆された解決策は、GAスクリプトをダウンロードしてハックするか、外部から内部変数をハックすることです - どちらも危険で不安定です... –

10

Googleアナリティクスと同じページに複数のトラッカーがあれば、さまざまなCookie名を使用する必要はありません。質問Google Analytics - Multiple Trackers for Several Accounts?の回答を参照してください。

更新

それはmultiple trackers is a working method but has some pitfallsを使用していることが判明しました。そのうちの1つ、つまり、それぞれに異なるユーザーセグメンテーションを適用することはできません。 John Hensonはcoerces GA to use different cookiesという回避策を示していますが、確認する必要があります。

+0

私は確信していません。両方のトラッカーがカスタムトラッキング変数を設定するために_setVarを呼び出すと、2番目のトラッカーの変数のみがクッキーに見つかり、最初のトラッカーの変数は失われているようです。私が何か間違っているのでなければ... –

+0

@Psionides:それは本当です - これまでは、私は常に異なるトラッカーに同じ設定を使用しました。私は自分の答えを更新しました。 –

3

Törökに掲載されているdocumentationによれば、正しい答えは_setCookiePathです。これにより、各トラッカーは全く異なるCookieを使用します。ウェブサイトから

例コード:

<script type=”text/javascript”> 
    var pageTracker = _gat._getTracker(”UA-11111-1″); 

    pageTracker._setDomainName(’domain.com’); 

    pageTracker._setCookiePath(’/subdirectory/’); 
    pageTracker._trackPageview(); 

    var otherTracker = _gat._getTracker(”UA-22222-1″); 
    otherTracker._setDomainName(’domain.com’); 
    otherTracker._trackPageview(); 
</script> 

使用すると、1つのドメインから別のものにリンクすると、すべてのリンクは、他のドメインへの投稿はこのように見えるように持っていること:

<a href="pageTracker._linkByPost('otherdomain.com/petStoreCart/legalTerms.php');" 

これはグーグルが追加されますCookieを設定するために上記のスクリプトで使用される特定のクエリ文字列値を分析します(source)。

+0

はい、ドメイン間では機能しません - ロケーションバーに表示されている別のドメインのCookieを設定することはできません。私のウィジェットが例えばhttp://website.comでスクリプトがhttp://widget.comから読み込まれたら、http://website.comのCookieのみを設定できます(埋め込みウェブサイト自体も同様です)。紛争。 –

+0

クロスドメインリンクの詳細を追加しました。 –

-2
var otherTracker = _gat._getTracker(”UA-22222-1″); 
otherTracker._setDomainName(’domain.com’); 
otherTracker._trackPageview(); 
1

...

<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 { 

//Original tracking 
var pageTracker_ORIG = _gat._getTracker("UA-XXXXXXX-1"); 
pageTracker_ORIG._setDomainName('.sleepinggiantmedia.co.uk'); 
pageTracker_ORIG._trackPageview(); 

//New Analytics tag 
var pageTracker_SGM = _gat._getTracker("UA-XXXXXXX-1"); 
pageTracker_SGM._setDomainName('.sleepinggiantmedia.co.uk'); 
pageTracker_SGM._trackPageview(); 


} catch(err) {} 

3

Googleがこのような行為に対して推奨していますように見えます:

Google Analyticsトラッキングコードの複数のインスタンスをインストールする1つのWebページはサポートされている実装ではありません。 1つを除くすべてのインスタンスを削除し、追跡するすべてのページに正しいプロファイルのコードがインストールされていることを確認することをお勧めします。

https://support.google.com/analytics/bin/answer.py?hl=en-GB&answer=1032400

8

誰もが、まだこの問題を持っており、簡単にペーストを望んでいる、私の問題はまた、Googleのトラッキングを使用している可能性があり、他の人のページに追加されていた私のコードのために自分のGoogleのトラッキングを使用していた場合には。私はこれをテストし、期待どおりに動作を確認しています

var _gaq = _gaq || []; 

_gaq.push(['some_unique_name._setAccount', 'UA-xxxxxxxx-1']); 
_gaq.push(['some_unique_name._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); 
})(); 

私も誰がそれで問題を見た場合、私に知らせてくださいイベント

_gaq.push(['some_unique_name._trackEvent', 'Event Category', 'Event Action', 'Event Label']); 

を使用して使用しています。

+2

これは私にとって完璧に機能しました - シンプルで効果的です。 – arlomedia

+0

ありがとうarlomedia。このページや他の多くのサイトでは、解決策がかなり混じっているので、しばらく時間がかかりました。 –

18

ウェブページにGoogleアナリティクストラッキングコードの複数のインスタンスをインストールして、アカウントの複数のプロパティにデータを送信できます。 https://support.google.com/analytics/answer/1032400?hl=en

また、Googleの指示に従ってクリエイティブを作成し、次の操作を行うこともできます。 https://developers.google.com/analytics/devguides/collection/analyticsjs/advanced#multipletrackers

<script> 
    (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){ 
    (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o), 
    m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m) 
    })(window,document,'script','//www.google-analytics.com/analytics.js','ga'); 

    ga('create', 'UA-XXXX-Y', 'auto'); 
    ga('create', 'UA-XXXX-Y', 'auto', {'name': 'newTracker'}); 
    ga('send', 'pageview'); 
    ga('newTracker.send', 'pageview'); 

</script> 
関連する問題