2016-10-31 4 views
0

Google Analyticsを導入するには、Googleタグマネージャを使用しています。これは、特定のベンダーからJSを実行する場所を除いて、どこでもうまく動作します。外部のJSライブラリでもGoogleアナリティクスを安全に初期化する方法を教えてください。

このベンダーはGoogle Analyticsの独自のブートストラップを行い、独自のトラッカーを作成し、作成しているウィジェットの相互作用(おそらく)を追跡します。

問題は競合状態が存在することです。これはスクリプトが最初の「勝利」を初期化するようです。これによれば

https://code.google.com/p/analytics-issues/issues/detail?id=472

GAは、異なる名前空間にinittedされるのはサポートされていません。複数のトラッカーを作成することについてのすべての言及は、制御当事者が1人いるという基本的な前提を定めています。

同じことを試している別のJSライブラリがある場合とそうでない場合は、どうすれば安全にGAをブートストラップできますか?

+0

ウィジェットのコードは 'ga'名を使用するか、または、彼らはカスタム名を使用するのでしょうか? –

+0

カスタム名を使用します。 – geoff

+0

彼らはそれをしてはいけません。もしあなたが彼らと関係を持っているなら、私は手を差し伸べて彼らに言わないでください。サードパーティのコードは、ホストサイトのGoogleアナリティクスの実装を妨げてはなりません。 –

答えて

2

analytics.jsは、グローバルga()コマンドキューの名前をwindow.GoogleAnalyticsObjectで変更することをサポートしています。つまり、analytics.jsがダウンロードされると、値がwindow.GoogleAnalyticsObjectに設定されているかどうかが調べられ、見つかった場合は、その名前がグローバルコマンドキュー機能の名前であるとみなされます。見つからない場合は、デフォルト名はgaです。

サードパーティのプラグイン、ウィジェット、またはページにロードするその他のコードは、ホスト(ホスト)がwindow.GoogleAnalyticsObjectに割り当てた値を尊重する必要があります。彼らはではなく、自身で変更する必要があります。

サードパーティのプラグインの作者であれば、ホストページのコマンドキュー機能の名前が変更されているかどうかを確認する必要があります。ここで

は、ホストページが ga()コマンドキューに設定されたどのような値への参照を取得例です:あなたが参照を持っていたら、通常どおりに

var gaReference = window[window.GoogleAnalyticsObject || 'ga']; 

は、あなたがそれを使用することができますが、しかし、もしそれが最も可能性の高いホスト・ページを使用しているものだからdefault tracker nameを使用しないでください:

gaReference('create', 'UA-XXXXX-Y', 'auto', {name: 'someUniquePluginName'}); 
gaReference('someUniquePluginName.send', 'pageview'); 
関連する問題