Google Analyticsを利用できるように、必要なJavaScriptをページの下部に追加しました。唯一の問題は、すべての開発作業がヒットとしてカウントされていると確信していることです。私はおそらくそれらのページのいくつかを1日に100回見るので、それは私の読みを本当に歪めるでしょう。特定のIPアドレスからそれをオフにする方法はありますか、それともこれをビルドプロセスに組み込んで、展開用にビルドするときにのみ追加されるようにする必要がありますか?
24 に答える
私はjavascriptを使用する単純なアプローチが好きです。それはどこでも動作します。
<script type="text/javascript">
if (document.location.hostname.search("myproductiondomainname.com") !== -1) {
//google analytics code goes here
}
</script>
ええ、あなたは分析設定に行き、あなたのサイトを編集し、そしてあなたのIPアドレスを除外するフィルターを定義するために+フィルターを追加します。
過去のデータはフィルターが適用された状態で再生成されないため、フィルターが前進するという利点しかありません。
2014年ですが、既存のすべてのソリューションにまだ満足していません...
- IPフィルターには静的IPアドレスが必要です。自宅やコーヒーショップで仕事をしている場合はどうなりますか?
- ホスト名を確認すると、開発環境からのヒットが排除されますが、ライブサイトをデバッグしている場合はどうなりますか?
- サーバー構成の編集は煩わしい/高度であり、複数のドメインは複雑です。
- オプトアウト拡張機能は、誰に質問するかに応じて、すべてのWebサイトでヒットをブロックするか、まったくブロックしないかのいずれかです。
だから、私は自分のブラウザ拡張機能を作成しました... https://chrome.google.com/webstore/detail/lknhpplgahpbindnnocglcjonpahfikn
- どこへ行ってもついてきます
- 開発環境とライブ/パブリックドメインで動作します
- それは私と私が開発しているサイトにのみ影響します
- ワンクリックでON/OFFします
- アナリティクスにデータを送信していないことを簡単に確認できます
これは、選択したドメインに対してのみ、マシンに「開発者Cookie」を常に設定しておくことで機能します。次に、Analyticsにデータを送信する前に、スクリプトでこの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が設定されていることが検出された場合、その訪問は、GoogleAnalyticsまたはその他の使用したい分析ツールの合計にはカウントされません。
私のソリューションを自由に共有し、私の拡張機能を使用してそれらのCookieを設定したままにしてください。
静的IPを使用していない場合、GAにIPフィルターを設定しても効果はありません。
環境変数を設定し、条件付きで表示します。たとえば、次のRubyonRailsコードを考えてみましょう。
<% unless RAILS_ENV == "development" %>
<!-- your GA code -->
<% end %>
この動作は、任意のオペレーティングシステムで使用するすべての言語/フレームワークに拡張できます。PHPでは、 getenv関数を使用できます。システムでの続行方法については、環境変数に関するWikipediaページを確認してください。
このコードを使用できます
<script>
var host = window.location.hostname;
if(host != "localhost")
{
// your google analytic code here
}
</script>
開発とQA作業のために2番目のGoogleアナリティクストラッキングコードを設定します。アナリティクスの統合をテストする場合に実際に役立ちます。また、本番環境にブリードオーバーしないようにします。
解決策は、Google Tag Manager(GTM)を使用してGoogleAnalyticsを処理することです。これにより、サイトのコードに条件を記述しなくても、本番ドメインでのみGoogleAnalyticsを起動できます。方法は次のとおりです。
GTMで、ページのホスト名に本番ドメインが含まれている場合にのみ起動するトリガーを設定します。
次に、Universal Analyticsのタグを設定し、そのトリガーを作成したものにします。
あなたがNATの背後にいる場合、または他の理由であなたのIPをGoogle Analyticsに与えることができない場合、最も簡単な方法は、Google Analyticsドメインをローカルホスト(127.0.0.1)に設定することです。 Google Analyticsは、Google Analyticsの知識がなくても、作業ステーションに転送されます。
ローカルホストのヒットを無効にするには、ローカルホストを除外するフィルターを作成するだけです。これを行うには、[管理]->[プロパティ]->[設定の表示]に移動します。次のスクリーンショットでヘルプを確認してください。
非静的IPを使用してアクセスした場合に本番URLヒットを無効にするには、Developer CookieなどのChrome拡張機能を使用して、GoogleAnalyticsコードの実行をスキップできます。
私はブラウザですでにGoogleAnalyticsをブロックしている広告ブロッカーを使用しているので、個人的にこれを行いません。
https://chrome.google.com/webstore/detail/fadgflmigmogfionelcpalhohefbnehmのように、これを行うChrome拡張機能がいくつかあります。
IPアドレスが静的でない場合に非常に便利です。
Google Analyticsの非同期コードを実行する前に次の行を追加して、そのWebプロパティIDの追跡を無効にします。
window['ga-disable-UA-XXXXXX-Y'] = true;
UA-XXXXXX-Y
追跡を無効にするWebプロパティIDに対応します。
差出人:https ://developers.google.com/analytics/devguides/collection/gajs/
カスタムメトリックを使用して、このすべてのトラフィックをフィルタリングします。
アプリでGAを初期化するときは、開発者を追跡するためのカスタムフラグを設定します。
// In your header, after the GA code is injected
if( <your_code_to_check_if_is_dev> ) {
ga('set', 'is_developer', 1 );
}
次に、GAアカウントにフィルターを追加して、これらの結果を削除します。
管理者>アカウント>すべてのフィルター>フィルターの追加>ユーザー定義
I use Ad Blocker for Firefox, it can specifically block the Google analytics tracking script. Since firefox is my primary development browser it works great until i need to test my work in other browsers.
おそらく役に立たないかもしれませんが、必要なJavaScriptを挿入するカスタムASP.NETサーバーコントロールを作成することで、この問題を解決しました。次に、ライブURLをweb.configに追加し、ホスト名がweb.configのライブURLと一致した場合にのみコントロールを表示しました。
反応アプリケーションがあり、アプリをイジェクトした場合(これはCRAでも機能する可能性があります)。このページで以下のコードスニペットを利用できindex.html
ます。
<script type="text/javascript">
if("%NODE_ENV%"==="production"){
//your analytics code
}
Google Analytics 4(GA4)の場合、トラフィックを内部としてマークする必要があるIPアドレスを定義するルールを作成できます。
内部トラフィックを定義する
パス:管理>プロパティ>データストリーム>ストリームの選択>その他のタグ設定>内部トラフィックの定義
内部トラフィックを表す1つ以上のIPに一致するルールを定義します。
GA4データフィルター
パス:[管理]>[プロパティ]>[データ設定]>[データフィルター]
デフォルトのフィルター「内部トラフィック」が「テスト」モードに設定されています。
「アクティブ」に変更して、フィルターを有効にします。
人々が言及しているように、google-analytics.comドメインをローカルでホストするか、開発ネットワークで作業しているかどうかを確認する関数を設定することができます。
http://www.google-analytics.com/ga.jsが読み込まれず、 onclickjavascript関数を使用してページ要素のクリックを追跡する場合は注意してください。
IE:onclick = "javascript:pageTracker._trackPageview('/ made / up / folder / reference');
jQueryまたはその他の堅牢なJavaScript関数が機能しなくなるJavaScriptエラーが発生します。
このための追加オプションとして、私は多くの異なるサイトと開発者を備えた開発サーバーを持っています。これは、私が3つの主要なオプションに特に満足していなかったことを意味しました
- ホストファイル-多くの開発者に問題があり、人為的エラーが発生する可能性があります
- すべてのサイトのif/else開発ブロックなど
- GAWebサイトでの構成-一部のクライアントは独自の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を再起動します
CentOS:service 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);
})();
私はこの投稿が非常に古いことを知っていますが、どの解決策も私のニーズを満たしていませんでした。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サイトの私の完全な記事です
これが誰かに役立つことを願っています!
リクエストホスト変数を取得します。
したがって、次のように分析javascriptの周りにifステートメントをラップします(Ruby風の擬似コード):
<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>
ローカル開発用に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 ?>
今日、自分のコンピューターとは別のコンピューターを使用しているときに、μBlockOriginforChromeがデフォルトでGoogleAdSenseをブロックしていることに気付きました。いくつかグーグルした後、私はこの記事を見つけました。また、デフォルトでは、μBlockOrigin Firefox、Firefox用のμAdblock、Windows用のAdMuncherがAdSenseをブロックしていることにも注意してください。他のほとんどのオプションは、AdSenseをブロックするように構成可能としてリストされています。
私のIPは動的であることが多いため、これは機能しているようで便利です。そのため、Chromeにログインしている限り、Chrome拡張機能でフォローできます。
残念ながら、 App + Webプロパティタイプのセットアップlocalhost
を使用している場合、レポートから除外することはできないようです。
Webのみのプロパティのフィルターのみを表示します。フィルタは、アプリ+Webプロパティには適用できません。
nextjs Webアプリケーションの場合、特に使用している、static generation
またはSSR
これが機能するアプリケーションの場合:
document.tsxで
export default class MyDocument extends Document {
render() {
return (
<Html lang="en">
. . . . .
<body>
<Main />
<NextScript />
{process.env.NODE_ENV === 'production' ? injectAnalytics() : ''}
</body>
</Html>
);
}
}
ここで、injectAnalytics
はGAコードを返す関数です。例:
function injectAnalytics(): React.ReactFragment {
return <>
{/* Global Site Tag (gtag.js) - Google Analytics */}
<script
async
src={`https://www.googletagmanager.com/gtag/js?id=${GA_TRACKING_ID}`}
/>
<script
dangerouslySetInnerHTML={{
__html: `
window.dataLayer = window.dataLayer || [];
function gtag(){dataLayer.push(arguments);}
window.gtag = gtag;
gtag('js', new Date());
gtag('config', '${GA_TRACKING_ID}', {
page_path: window.location.pathname,
});
`,
}}
/>
</>
}
私はこのコードを使用してで無効google analytics
にrails 6
しproduction
ます。
admin
ログイン時に、Cookieを無効に設定しis_developer
ましgoogle analytics
た1 year
。
ログアウトした場合、 Cookieadmin
は削除しません。is_developer
そのため、ログアウトgoogle analytics
後に無効になります。admin
テスト後にすべてコメントできconsole.log
ます。
<% if Rails.env.production? %>
<% ga_tracking_id = 'G-36......Y6' %>
<!-- Global site tag (gtag.js) - Google Analytics -->
<script async src="https://www.googletagmanager.com/gtag/js?id=<%= ga_tracking_id %>"></script>
<% if user_signed_in? && current_user.admin? %>
<script>
if(document.cookie.indexOf('is_developer') > -1) {
console.log('gtag:- is_developer cookie already set');
} else {
document.cookie = `is_developer=1; expires=${new Date(new Date().getTime()+1000*60*60*24*365).toGMTString()}; path=/`;
console.log('gtag:- is_developer cookie set for 1 year');
}
</script>
<% end %>
<script>
if(document.cookie.indexOf('is_developer') > -1) {
console.log('gtag:- disabled for developer');
} else {
console.log('gtag:- enabled');
window.dataLayer = window.dataLayer || [];
function gtag(){dataLayer.push(arguments);}
gtag('js', new Date());
gtag('config', '<%= ga_tracking_id %>');
}
</script>
<% end %>
何か提案があれば、以下にコメントしてください。