Google Analyticsが開発作業をヒットとしてカウントするのを止める方法はありますか?


151

Google Analyticsを利用できるように、ページの下部に必要なJavaScriptを追加しました。唯一の問題は、それが私のすべての開発作業をヒットとしてカウントしていることを確信しているということです。おそらく私がそれらのページのいくつかを1日に100回見ているように見ると、それは私の測定値を本当に歪めます。特定のIPアドレスからそれをオフにする方法はありますか?これは私のビルドプロセスに組み込む必要があるため、展開用にビルドしたときにのみ追加されますか?


6
どの言語/テクノロジーで開発していますか?ホスト名= 127.0.0.1またはlocalhost(またはローカルインスタンスが何であれ)の場合、分析スクリプトブロックを表示しないようにすることができるためです。サーバー側のコードは1行にする必要があります...
davewasthere

4
なぜ誰かがこれをSuperUserに移行したいのかわかりません。これは明らかにプログラミング/開発に関する質問です。
Thomas Owens、

私はasp.net、vs2005を使用していますが、これはWebプロジェクトです。
uriDium 2009

umatrixuBlockなどのスクリプトブロッカーとして使用できます。googles分析スクリプトを含むすべての広告スクリプトをブロックします。
Simon、

回答:


102

ええ、Analytics設定に移動し、サイトを編集し、+ Add Filterを使用して、IPアドレスを除外するフィルターを定義します。

過去のデータはフィルターを適用しても再生成されないので、フィルターを前進させるだけのメリットがあります。


17
[新しく作成された]フィルターは、将来のデータにのみ適用されます。
viam0Zah 2009

1
パーフェクトです。私はこれを積極的に行っています。Google Analyticsが必要とするJavaScriptをまだ追加していません。フィルターを配置して展開します。
uriDium 2009

7
この質問にランダムに出くわしました...開発環境に別のUA-IDを使用します。それが今私がしていることです。これは、IPアドレスやその他のものをブロックする必要があるよりも良いアプローチだと思います。
karry

3
実際にはもっと簡単な方法があります。ただし、この手法は将来のデータに対してのみ機能します。gaオブジェクトを初期化するときは、明示的なcookieドメインを設定するだけです。参考:developers.google.com/analytics/devguides/collection/...
ダレン

2
開発環境によっては、ホスト名を除外することもできます。私はasp.netで開発しているため、を含むすべてのホスト名を除外しましたlocalhost。通常、サブドメインの下にテスト環境がある場合は、それを除外します。
CularBytes 2016

205

私はJavaScriptを使用する単純なアプローチが好きです。それはどこでも機能します。

<script type="text/javascript">
if (document.location.hostname.search("myproductiondomainname.com") !== -1) {

//google analytics code goes here

}
</script>

3
非常にエレガントなソリューション:)
Sushant Gupta 2013

28
ありがとう。私は個人的に使用しています。if (document.location.hostname == "example.com") { /* ga code */ } else { _gaq = {push: function(arg) {console.log("ga:", arg)}}}これにより、コード内の任意の場所で一部のイベントトラッカーとカスタム_gaq呼び出しを安全に使用でき、同時に開発環境でGA呼び出しをデバッグできます。
seriyPS 2013

1
もう一つ、少し読みやすくソリューションは、正規表現リテラルを使用することです:if(/example\.com/.test(window.location.hostname)) { /* GA code */ }
mjswensen

Azureのサイト(または同様の設定)を持っている場合は、開発とプロダクションの両方でページを表示できるため、このアプローチはさらに気に入っています。IEがxxxxx.azurewebsites.netにアクセスしても、セッションは取得されません。ありがとう!簡単な修正でも、本番環境に導入するのに5分かかりました。
Jhayes2118 2014年

11
上記で提供されたソリューションをさらに詳しく説明します(gaがオブジェクト名であると想定): var ga; if (document.location.hostname == "example.com") { /* GA script here */ } else { console.log("Running non-production google analytics replacement now"); ga = function(arg) { console.log("ga:", arguments);};} ga('create', 'UA-xxxxx', 'auto'); ga('send', 'pageview');
Bryan

34

それは2014年であり、私はまだすべての既存のソリューションに満足していません...

  • IPフィルターには静的IPアドレスが必要です。自宅やコーヒーショップで作業している場合はどうなりますか?
  • ホスト名を確認すると、開発環境からのヒットがなくなりますが、ライブサイトをデバッグしている場合はどうなりますか?
  • サーバー構成の編集は煩わしい/高度であり、複数のドメインは複雑です。
  • オプトアウト拡張機能は、ユーザーの要求に応じて、すべてのWebサイトのヒットをブロックするか、まったくブロックしません。

そこで、独自のブラウザ拡張機能を作成しました... https://chrome.google.com/webstore/detail/lknhpplgahpbindnnocglcjonpahfikn

  • どこへ行ってもついてくる
  • 開発環境とライブ/パブリックドメインで動作します
  • それは私と私が開発しているサイトにのみ影響します
  • ワンクリックでオン/オフ
  • それが本当に分析にデータを送信していないことを確認するのは簡単です

これは、選択したドメインに対してのみ、常にマシンに「開発者cookie」を設定しておくことで機能します。次に、アナリティクスにデータを送信する前に、スクリプトでこのCookieを確認するだけです。拡張機能の設定で、Cookieの独自の名前と値をカスタマイズします。これはチームで簡単に使用できるため、開発者、コンテンツ作成者、校正者、および組織内の他の誰もが、統計を膨らませることなくすべてのページを表示できます。

コードをページに配置する方法の例...

JavaScript

if (window.location.host==="mydomain.com" || window.location.host==="www.mydomain.com") {
   if (document.cookie.indexOf("COOKIENAME=COOKIEVALUE") === -1) {
      // Insert Analytics Code Here
   }
}

PHP

if ($_SERVER['HTTP_HOST']==="mydomain.com" || $_SERVER['HTTP_HOST']==="www.mydomain.com") {
   if (@$_COOKIE["COOKIENAME"] !== "COOKIEVALUE") {
      // Insert Analytics Code Here
   }
}

ホスト名がライブサイトのドメイン(「mydomain.com」)と等しいことを確認すると、「localhost」や「beta.mydomain.com」などのテストドメインから表示しているときに、訪問者が分析データを送信することはありません。 。上記の例では、「www.mydomain.com」と「mydomain.com」は、訪問を記録する2つの有効なドメインです。

ライブサイトは、一致する値を持つ開発者Cookieが見つからない限り、期待どおりにデータを分析に送信します。デバイスに固有のCookieが設定されていることが検出された場合、アクセスはGoogleアナリティクスやその他の使用したい分析ツールの合計にカウントされません。

私のソリューションを自由に共有し、私の拡張機能を使用してこれらのCookieを設定しておいてください。


これは素晴らしいソリューションです。ありがとう!
2015年

1
Seebigsさん、これをさらに一歩進めて、開発者にアナリティクスコードの変更を要求する代わりに、代わりにgaオブジェクトを傍受してモックオブジェクトに置き換える方法を見つけますか?理論的には、JSが読み込まれた後、分析コードが実行される前に行うことができます。chrome.google.com/ webstore / detail / analytics-blocker / …がありますが、壊れており、サポートされていないようです。
jmort253 2015

25

静的IPを使用していない場合、GAでIPフィルターを設定しても効果がありません。

環境変数を設定し、条件付きで表示します。たとえば、次のRuby on Railsコードを見てください。

<% unless RAILS_ENV == "development" %>
    <!-- your GA code -->
<% end %>

この動作は、任意のオペレーティングシステムで使用するすべての言語/フレームワークを拡張できます。PHPでは、getenv関数を使用できます。環境変数の Wikipediaページをチェックして、システムの処理方法を確認してください。


これは、開発マシンとテスト対象のシステムが同じものである場合にのみ適用されるため、用途が限られています。
JoshJordan

1
これはおそらく最も広く使用されているソリューションだと思いますが、「開発」と比較するのではなく、「本番」と比較します。つまり、サイトが本番環境で実行されている限り、GAスクリプトをレンダリングします。それ以外の場合(ステージングサーバー、開発サーバー、テストサーバーなど)。明らかに、これはライブ環境をデバッグする場合には対応しませんが、ほとんどのpplでは問題ありません。
ミーフ2015年

2
ENV ["RAILS_ENV"] == "production"の場合も可能です
moeabdol

17

このコードを使用できます

<script>
var host = window.location.hostname;
if(host != "localhost")
{
    // your google analytic code here
}
</script>

16

NATの背後にいる場合、または他の理由でIPをGoogleアナリティクスに提供できない場合、最も簡単な方法は、Googleアナリティクスドメインをlocalhost(127.0.0.1)に設定することです。これから、ブラウザーを開いたときに、すべてのリクエストにGoogle Analyticsは、Google Analyticsの知識がなくても作業ステーションに転送されます。


3
これは、私がこれまでこの問題に見た中で最も簡単な解決策です!私からの+1
Nir Levy

GAと競合する可能性のあるコードを開発する(おそらくリリースする)ため、このアプローチはお勧めしません。そして、404がスクリプトをdlしようとし、場合によってはブロックされます。
webXL

@webXL、私の解決策はスクリプトをまったくダウンロードしないためのものであり、開発用マシンのためのものであり、本番用(デプロイメントホスト)用ではありません。GAがまったく使用されていない場合に、この場合の競合の可能性を指摘してください。開発されたアプリケーションの開発マシン...
astropanic

@ astropanic、GAは少なくとも1つのグローバルを宣言するので、それを上書きしたり上書きしたりすることが可能です。開発でそれを除外することにより、そのリスクを実行します。小さなリスクかもしれませんが、それでも回避可能なリスクです。さらに、GAが追跡するためにホスト名を一致させる必要はありませんか?
webXL


16

開発とQA作業用に2番目のGoogleアナリティクストラッキングコードを設定します。アナリティクスの統合をテストしたい場合に実際に役立ちます。また、本番の統計に漏れないようにします。


私はこれをすることを考えたことがありませんが、私がやるほど、それが好きになります:)
ベン・カル14

これには多くのオーバーヘッドが必要ですか?私の印象では、開発チームはプレビューを公開し、コードを変更せずに直接ライブステージングにステージングするだけです。
MXMLLN 2015

2
@MXMLLN-構成管理をどの程度うまく行っているかに依存します。私たちの場合は、すでに処理していた構成ファイルymmvの別の行でした。
ワイアットバーネット

@WyattBarnett-ありがとう、私は彼らの考えを見ていきます。
MXMLLN 2015

14

解決策は、Googleタグマネージャー(GTM)を使用してGoogleアナリティクスを処理することです。これにより、サイトのコードに条件を記述しなくても、本番ドメインでのみGoogleアナリティクスを起動できます。方法は次のとおりです。

GTMで、ページのホスト名に本番ドメインが含まれている場合にのみ起動するトリガーを設定します。

ここに画像の説明を入力してください

次に、ユニバーサルアナリティクスのタグを設定し、そのトリガーを先ほど作成したものにします。

ここに画像の説明を入力してください



6

Googleアナリティクスの非同期コードが実行される前に次の行を追加して、そのウェブプロパティIDのトラッキングを無効にします。

window['ga-disable-UA-XXXXXX-Y'] = true;

UA-XXXXXX-Y 追跡を無効にするWebプロパティIDに対応します。

From:https : //developers.google.com/analytics/devguides/collection/gajs/


私は、それぞれがGA JSコードの独自のコピーを持つ多くのページがあるサイトで作業しています。私は最終的にこれをフッターで動的にする予定ですが、当面は、ヘッダーのページの上部にこれを追加するだけで、GAへのすべての呼び出しが無効になりますか?
codecowboy、2015年

はい、ページのさらに下で使用されているものと同じWebプロパティIDを提供する限り。
AJP、2015年

5

localhostのヒットを無効にするには、フィルターを作成してlocalhostを除外します。これを行うには、[管理]-> [プロパティ]-> [設定の表示]に移動します。ヘルプについては、次のスクリーンショットを確認してください。

ga view exclude localhost

非静的IPを使用してアクセスした場合に本番URLヒットを無効にするには、開発者CookieなどのChrome拡張機能を使用できますて、Googleアナリティクスコードの実行をスキップできます。

私は自分のブラウザで既にGoogle Analyticsをブロックしている広告ブロッカーを使用しているので、個人的にはこれをしません。


4

カスタムメトリックを使用して、このすべてのトラフィックをフィルタリングします。

アプリでGAを初期化するときに、カスタムフラグを設定して開発者を追跡します。

// In your header, after the GA code is injected
if( <your_code_to_check_if_is_dev> ) {
  ga('set', 'is_developer', 1 );
}

次に、GAアカウントにフィルターを追加して、これらの結果を削除します。

管理者>アカウント>すべてのフィルター>フィルターの追加>ユーザー定義

ここに画像の説明を入力してください


3

私はFirefoxの広告ブロッカーを使用していますが、これは特にGoogleアナリティクストラッキングスクリプトをブロックします。firefoxは私の主要な開発ブラウザーであるため、他のブラウザーで自分の作業をテストする必要があるまで、うまく機能します。


2

おそらく役に立たないでしょうが、必要なJavaScriptを挿入するカスタムASP.NETサーバーコントロールを作成することでこの問題を解決しました。次に、ライブURLをweb.configに追加し、ホスト名がweb.configのライブURLと一致したときにのみコントロールを表示しました。


1

人々が言及しているように、ローカルでgoogle-analytics.comドメインをホストするか、開発ネットワークで作業しているかどうかを確認する関数を設定できます。

http://www.google-analytics.com/ga.jsが読み込まれず、onclick JavaScript関数を使用してページ要素のクリックを追跡できるかどうかに注意してください。

IE:onclick = "javascript:pageTracker._trackPageview( '/ made / up / folder / reference');

jQueryまたはその他の堅牢なJavaScript関数が機能しなくなるJavaScriptエラーが発生します。


1

このための追加オプションと同様に、さまざまなサイトや開発者が多数いる開発サーバーがあります。これは私が3つの主要なオプションに特に満足していなかったことを意味しました

  • ホストファイル-多くの開発者に問題があり、人為的エラーが発生しやすい
  • すべてのサイトなどのif / else開発ブロック
  • GA Webサイトでの設定-一部のクライアントは独自のGAアカウントを持っています。忘れられる/見落とされる可能性のあるすべてのサイトで完了する必要があります

ここで他の回答のさまざまなオプションを実装するのではなく、次の方法で問題に取り組みました。グローバルなhttpd.confでは(サイト固有のものではなく)、apacheモジュールmod_substituteを使用して、別の回答でのhostsファイルの修正による効果をシミュレートしましたが、すべての開発サイトとすべての開発者に対して自動的に行われました。

モジュールを有効にする

CentOS/etc/conf/httpd.conf次の行を開いて追加します

LoadModule substitute_module modules/mod_substitute.so

Ubuntu / Debian:次のコマンドを実行します

sudo a2enmod substitute

モジュールを有効にしたら、次の行をhttpdグローバル構成ファイルに追加します

CentOS/etc/conf/httpd.conf

Ubuntu / Debian/etc/apache2/httpd.conf

# Break Google Analytics
AddOutputFilterByType SUBSTITUTE text/html 
Substitute "s|.google-analytics.com|.127.0.0.1|n"

次に、Apacheを再起動します

CentOSservice httpd restart

Ubuntu / Debian/etc/init.d/apache2 restart

これが行うことは、Apacheがページを提供するときに.google-analytics.comに一致するすべてのテキストを.127.0.0.1に置き換えて、ページが次の例のような分析コードでレンダリングされるようにすることです。

var _gaq = _gaq || [];
_gaq.push(['_setAccount', '']);
_gaq.push(['_trackPageview']);

(function() {
    var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
    ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.127.0.0.1/ga.js';
    var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
})();

1

私はこの投稿が非常に古いことを知っていますが、どの解決策も私のニーズを満たしていません。GA(およびFB)から開発作業を削除するだけでなく、社内の一部のユーザーをGAおよびFBに含めないようにしたいと考えました。そのため、プラグインなしで分析から除外する、またはドメインIPを除外する(ラップトップを使用する人々がぶらぶらするような)比較的簡単な方法が必要でした。

ユーザーがリンクをクリックしてGAおよびFBトラッキングをオプトアウトできるWebページを作成しました。サイトのCookieを配置します。次に、そのCookieをチェックして、GAおよびFBにデータを送信する必要があるかどうかを判断します。

私はもともとこれをダリアと呼ばれるサイトに設置しました。これはギリシャ正教会の結婚式と洗礼のアイテムのブティックメーカーです。

これがコードです:

すべてのWebページのヘッダーに次のコードを挿入します。

<script>
//put in your google analytics tracking id below:
var gaProperty = 'UA-XXXXXXXX-X';

// Disable tracking if the opt-out cookie exists.
var disableStr = 'ga-disable-' + gaProperty;
if (document.cookie.indexOf(disableStr + '=true') > -1) {
  window[disableStr] = true;
  window['ga-disable-UA-7870337-1'] = true;  //This disables the tracking on Weebly too.
} else {
   //put in your facebook tracking id below:
  fbq('init', 'YYYYYYYYYYYYYYY');
  fbq('track', 'PageView');
}
</script>

指定されたスペースにGAおよびFB追跡IDを必ず追加してください。これは当初、Weebly(ショッピングCMS)サイト用に作成されました。したがって、Weeblyを使用していない場合は、weeblyについて言及している行を削除できます。

次に、ヘッダーに次のコードを含む「do-not-track」という新しいWebページを作成しました。

<script>
//put in your own google analytics tracking id below:
var gaProperty = 'UA-XXXXXXXX-X';
var disableStr = 'ga-disable-' + gaProperty;

// Opt-out function
function gaOptout() {
  document.cookie = disableStr + '=true; expires=Thu, 31 Dec 2099 23:59:59 UTC; path=/';
  window[disableStr] = true;
  gaOptoutCheck();
}

// Check Opt-out function
function gaOptoutCheck() {
    var name = "ga-disable-"+gaProperty+"=";
    var ca = document.cookie.split(';');
    var found = "false";
    for(var i=0; i<ca.length; i++) {
        var c = ca[i];
        while (c.charAt(0)==' ') c = c.substring(1);
        if (c.indexOf(name) == 0) found = "true";
    }
    if (found == "true") alert("Cookie is properly installed");
    else alert("COOKIE NOT FOUND");
}
</script>

そして、本文の次のコード:

<a href="javascript:gaOptout()">Click here to opt-out of Google and Facebook Analytics</a>
<br><br>
Please visit this page on every computer, laptop, phone, tablet, etc. that you use; 
and for all browser you use on each of those devices.
<br><br>
If you ever remove cookies from browser, you will need to repeat this process for that browser.
<br><br><br>
<a href="javascript:gaOptoutCheck()">
Click to check if cookie is set</a>
<br><br>

これがWeeblyサイトの私の完全な記事です

これが誰かに役立つことを願っています!


1

反応アプリケーションがあり、アプリケーションをイジェクトした場合(これはCRAでも機能します)。このindex.htmlページでは、以下のコードスニペットを利用できます。

<script type="text/javascript">
  if("%NODE_ENV%"==="production"){
  //your analytics code
  }

0

リクエストのホスト変数を取得します。

したがって、次のように分析ステートメントの周りにifステートメントをラップします(Ruby-esque疑似コード):

<body>
<shtuff>dfsfsdf</shtuff>
if not (request.host == 'localhost')
  #analytics code here
elsif (request.host == the server's ip/domain)
  #analytics code here
else
  #do nothing
end
</body>

0

ローカル開発用のPHP変数セットを持っています。これにより、データやフィードバックなどを提供するためのターミナルが提供されます。

XAMPPを使用して、tmpの環境変数を次のようにします。

$isLocal = (getenv("tmp") == '\xampp\tmp') ? true : false;

xamppが使用されていないため、これは私の運用サーバーには存在しません

if($isLocal){
  // do something, eg. load my terminal
}

...この質問に固有:

<?php if(!$isLocal){ ?>
  <!-- Insert Google Analytics Script Here -->
<?php } // end google analytics local check ?>

このソリューションでは、呼び出す「ga」オブジェクトがないため、JSでイベントとコンバージョントラッキングコードをめちゃくちゃにする可能性があります。これにより、JS全体がクラッシュし、他の多くの問題が発生する可能性があります。
omgitsdrobinoha 2016年

0

今日、私とは別のコンピューターを使用しているときに、μBlockOrigin for ChromeがデフォルトでGoogle AdSenseをブロックしていることに気付きました。いくつかのグーグル検索の後、私はこの記事を見つけました。また、μBlockOrigin Firefox、μAdblock for Firefox、Ad Muncher for Windowsは、デフォルトでAdSenseをブロックすることにも注意しています。他のほとんどのオプションは、AdSenseをブロックするように構成可能としてリストされています。

これは機能しているように見え、私のIPは動的であることが多いので便利です。Chromeにログインしている限り、Chrome拡張機能を使用できます。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.