2016-05-20 2 views
0

複数のドメインと複数のトラッキングIDがあります - 各ドメインには独自のトラッキングIDがあります。私は、正しいIDを挿入するには、以下のディレクティブを使用していGAトラッキングIDコードを動的に挿入すると、「HTTPレスポンスが検出されません」Googleタグマネージャ

app.directive('analytics', ['$compile', function($compile) { 
return { 
    restrict: 'A', 
    scope: { 
     id: '=analytics' 
    }, 
    link: function (scope) { 
     var el = $("#analytics"); 
     var text = "(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'); "; 
     scope.$watch('id', function (trackId) { 
      if (trackId) { 
       $(el).append(text, "ga('create','" + trackId + "', 'auto');"); 
      } 
      $compile(el)(scope); 
     }) 
    } 
};}]); 

<script id="analytics" type="text/javascript"></script> 確かに、私はちょうどスクリプトタグを作成することができ、代わりにIDを使用しての、ヘッドに挿入します。

私はHTTPレスポンスがGoogle Analyticsのコードをページのソースで検出されたが、スクリプト自体は実行されなかった、という意味欠落

HTTPレスポンスに見つからないエラーが発生しました。 Googleアナリティクスのスクリプトが実行されるたびに、Googleのサーバーにトラッキングリクエストを送信するHTTPレスポンスが必要になります。 これは、Googleアナリティクスのコードがページに正しく実装されておらず、データが収集されないことを意味します。

手動でindex.htmlにトラッキングIDを追加するとエラーは発生しません。 しかし、私はまだ何とかGoogleアナリティクスでデータを受信しますが、Googleアナリティクスで、次のエラーメッセージが表示されます

プロパティが見つかりません有効なトラッキングコードを。 ページに、サポートされているバージョンのトラッキングコードがタグされていることを確認してください。

トラッキングIDを動的に追加する有効な方法はありますか?

答えて

1

Googleタグマネージャを使用してください。

Googleタグマネージャでは、{{Page Hostname}}変数を使用して関連するトラッキングIDを出力するルックアップ変数を設定できます。

私が一緒に投げた例です。それが 'www。'で始まるならば、ホスト名は異なるとみなされ、ルックアップテーブルは正確な値にのみ一致します(デバッグ目的で使うことができるデフォルトオプションも提供します)。

Googleタグマネージャを使用してページビュータグを配置する場合は、トラッキングIDフィールドを変数の名前と同じに設定します。

domain lookup variable

page view tag

関連する問題