Apakah ada cara untuk menghentikan Google Analytics menghitung pekerjaan pengembangan sebagai hit?

151

Saya telah menambahkan JavaScript yang saya butuhkan di bagian bawah halaman saya sehingga saya dapat menggunakan Google Analytics. Satu-satunya masalah adalah bahwa saya yakin itu menghitung semua pekerjaan pengembangan saya sebagai hit. Melihat seperti saya mungkin melihat beberapa halaman seratus kali sehari itu benar-benar akan condong pada bacaan saya. Apakah ada cara untuk mematikannya dari alamat IP tertentu atau apakah ini sesuatu yang harus dibangun ke dalam proses pembuatan saya sehingga hanya akan ditambahkan ketika saya membangun untuk penyebaran?

uriDium
sumber
6
Bahasa / teknologi apa yang Anda kembangkan? Karena Anda dapat melakukan sesuatu ketika nama host = 127.0.0.1 atau localhost (atau apa pun instance lokal Anda) maka jangan tampilkan blok skrip analitik. Harus satu baris kode sisi server ...
davewasthere
4
Saya tidak tahu mengapa seseorang ingin memindahkan ini ke SuperUser - ini jelas pertanyaan pemrograman / pengembangan.
Thomas Owens
Saya menggunakan asp.net, vs2005 dan ini adalah proyek web.
uriDium
Anda dapat menggunakannya sebagai script-blocker misalnya umatrix atau uBlock . Ini akan memblokir semua skrip iklan, termasuk skrip analitik Google.
Simon

Jawaban:

102

Ya, Anda masuk ke Pengaturan Analytics, edit situs Anda, dan + Tambahkan Filter untuk menentukan filter yang mengecualikan alamat IP Anda.

Data sebelumnya tidak dibuat ulang dengan filter yang diterapkan, jadi Anda hanya akan mendapat manfaat dari itu bergerak maju.

kekacauan
sumber
17
Filter [baru dibuat] hanya berlaku untuk data mendatang.
viam0Zah
1
Itu sempurna. Saya melakukan ini secara proaktif. Saya belum menambahkan javascript yang dibutuhkan Google Analytics. Saya akan meletakkan filter di tempat dan kemudian menyebar.
uriDium
7
baru saja menemukan pertanyaan ini secara acak ... Saya hanya akan menggunakan UA-ID yang berbeda untuk lingkungan pengembangan saya. Itu yang saya lakukan sekarang. Saya pikir ini akan menjadi pendekatan yang lebih baik daripada harus memblokir alamat IP dan lainnya.
karry
3
Sebenarnya ada cara yang lebih mudah. Teknik ini hanya akan bekerja untuk data masa depan juga. Saat menginisialisasi objek ga cukup tetapkan domain cookie eksplisit. Referensi: developers.google.com/analytics/devguides/collection/…
Darren
2
Bergantung pada lingkungan pengembangan Anda, Anda juga dapat mengecualikan nama host. Saya mengembangkan dengan asp.net jadi saya mengecualikan semua nama host yang berisi localhost. Jika Anda biasanya memiliki lingkungan pengujian di bawah subdomain, cukup kecualikan itu.
CularBytes
205

Saya suka pendekatan sederhana menggunakan javascript. Ini bekerja di mana saja.

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

//google analytics code goes here

}
</script>
keza
sumber
3
solusi yang sangat elegan :)
Sushant Gupta
28
Terima kasih. Saya menggunakan pribadi if (document.location.hostname == "example.com") { /* ga code */ } else { _gaq = {push: function(arg) {console.log("ga:", arg)}}}- ini memungkinkan saya untuk menggunakan beberapa pelacak acara dan panggilan _gaq khusus dengan aman di mana saja dalam kode saya dan pada saat yang sama memungkinkan saya untuk men-debug panggilan GA pada lingkungan dev.
seriyPS
1
Solusi lain yang sedikit lebih mudah dibaca adalah dengan menggunakan regex literal:if(/example\.com/.test(window.location.hostname)) { /* GA code */ }
mjswensen
Saya lebih menyukai pendekatan ini karena memungkinkan Anda untuk melihat halaman baik di dev dan produksi jika Anda memiliki situs biru (atau set up serupa). Yaitu ketika Anda pergi ke xxxxx.azurewebsites.net tidak mengambil sesi. Terima kasih! Perbaikan sederhana juga membutuhkan waktu 5 menit untuk produksi.
Jhayes2118
11
Fuller menggambarkan solusi yang disediakan di atas (anggap ga adalah nama objek): 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

Ini tahun 2014 dan saya masih tidak puas dengan semua solusi yang ada ...

  • Filter IP membutuhkan alamat IP statis. Bagaimana jika saya bekerja dari rumah atau dari kedai kopi?
  • Memeriksa nama host menghilangkan hit dari lingkungan dev, tetapi bagaimana jika saya men-debug situs langsung?
  • Mengedit konfigurasi server mengganggu / canggih dan banyak domain rumit.
  • Ekstensi Penyisih baik memblokir klik di semua situs web atau tidak sama sekali bergantung pada siapa yang Anda tanya.

Jadi, saya membuat Ekstensi Browser saya sendiri ... https://chrome.google.com/webstore/detail/lknhpplgahpbindnnocglcjonpahfikn

  • Ini mengikuti saya kemanapun saya pergi
  • Ini bekerja pada lingkungan pengembang dan pada domain langsung / publik
  • Ini hanya memengaruhi saya dan situs yang saya kembangkan
  • Menyalakan / mematikan dengan satu klik
  • Sangat mudah untuk memverifikasi bahwa itu benar-benar tidak mengirim data apa pun ke analytics

Ini bekerja dengan menjaga "cookie pengembang" diset di mesin Anda setiap saat hanya untuk domain yang Anda pilih. Anda kemudian cukup memeriksa cookie ini dalam skrip Anda sebelum mengirim data apa pun ke Analytics. Anda menyesuaikan NAME dan VALUE unik Anda sendiri untuk cookie di pengaturan ekstensi. Ini dapat dengan mudah digunakan oleh tim orang, sehingga pengembang, pembuat konten, korektor, dan siapa pun di organisasi Anda semua dapat melihat halaman tanpa menggembungkan statistik.

Contoh cara memasukkan kode ke halaman Anda ...

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

Memverifikasi bahwa nama HOST sama dengan domain situs langsung Anda ("mydomain.com") memastikan bahwa data analitik tidak akan pernah dikirim oleh pengunjung APAPUN sambil melihat dari domain uji seperti "localhost" atau "beta.mydomain.com" . Dalam contoh di atas, "www.mydomain.com" dan "mydomain.com" adalah dua domain yang valid tempat kami ingin kunjungan direkam.

Situs langsung mengirimkan data ke analytics seperti yang diharapkan KECUALI cookie pengembang ditemukan dengan nilai yang cocok. Jika ia melihat bahwa cookie unik diset pada perangkat Anda, maka kunjungan Anda tidak akan dihitung terhadap total Anda di Google Analytics atau alat analitik apa pun yang Anda suka gunakan.

Jangan ragu untuk membagikan solusi saya dan gunakan ekstensi saya untuk menjaga cookie itu disetel.

seebigs
sumber
Ini solusi hebat. Terima kasih!
Nate
1
Hai seebigs, dapatkah Anda mengambil langkah ini lebih jauh dan alih-alih meminta pengembang untuk mengubah kode analitiknya, cari saja cara untuk mencegat dan mengganti objek ga dengan objek tiruan saja? Anda secara teoritis dapat melakukannya setelah JS dimuat tetapi sebelum kode analitik berjalan .... Ada chrome.google.com/webstore/detail/analytics-blocker/… tetapi tampaknya rusak dan tidak didukung.
jmort253
25

Jika Anda tidak menggunakan IP statis, mengatur filter IP pada GA tidak dapat membantu Anda.

Atur variabel lingkungan dan tampilkan kondisional. Ambil kode Ruby on Rails berikut, misalnya:

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

Anda dapat memperluas perilaku ini setiap bahasa / kerangka kerja yang Anda gunakan pada sistem operasi apa pun. Di PHP, Anda bisa menggunakan fungsi getenv . Periksa halaman Wikipedia tentang Variabel Lingkungan untuk mengetahui bagaimana melanjutkan pada sistem Anda.

Nando Vieira
sumber
Ini penggunaan terbatas karena ini hanya berlaku jika mesin pengembangan dan sistem yang diuji adalah sama.
JoshJordan,
1
Pikirkan ini mungkin solusi yang paling banyak digunakan, meskipun alih-alih membandingkan dengan "pengembangan", Anda membandingkan dengan "produksi" - artinya, selama situs dijalankan dalam lingkungan produksi, kami membuat skrip GA, jika tidak, (seperti menentukan server, pengembangan atau server uji). Jelas ini tidak menangani kasus Anda men-debug lingkungan hidup, tapi itu bagus untuk kebanyakan orang.
miphe
2
Anda juga bisa jika ENV ["RAILS_ENV"] == "production"
moeabdol
17

Anda dapat menggunakan kode ini

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

Jika Anda berada di belakang NAT atau Anda tidak dapat karena alasan lain memberikan IP Anda ke Google Analytics, maka metode paling sederhana adalah mengatur domain google analytics ke localhost (127.0.0.1), mulai sekarang ketika Anda membuka browser Anda, semua permintaan untuk Google Analytics akan diarahkan ke stasiun kerja Anda, tanpa sepengetahuan Google Analytics.

astropanik
sumber
3
ini, pak, adalah solusi paling sederhana yang pernah saya lihat untuk masalah ini! +1 dari saya
Nir Levy
Saya tidak merekomendasikan pendekatan ini karena Anda akan mengembangkan (mungkin melepaskan) kode yang mungkin bertentangan dengan GA. Dan Anda akan mendapatkan 404s mencoba dl skrip, mungkin memblokir.
webXL
@webXL, solusi saya persis untuk tidak mengunduh skrip sama sekali, itu untuk mesin pengembangan, dan bukan untuk penggunaan produksi (host penyebaran), tolong tunjukkan apa yang mungkin bertentangan dalam kasus ini, ketika GA tidak digunakan sama sekali pada mesin pengembangan pada aplikasi yang dikembangkan ...
astropan
@astropanic, GA menyatakan setidaknya satu global, sehingga dimungkinkan untuk menimpanya atau ditimpa olehnya. Dengan mengecualikannya dalam pengembangan, Anda menjalankan risiko itu. Mungkin ada risiko kecil, tapi tetap bisa dihindari. Selain itu, bukankah nama host harus cocok untuk dilacak GA?
webXL
Anda juga dapat menggunakan 0.0.0.0 alih-alih 127.0.0.1
Goyllo
16

Kami menyiapkan kode pelacakan google analytics ke-2 untuk pengembangan dan pekerjaan QA - benar-benar berguna ketika Anda ingin menguji integrasi analitik Anda, juga memastikan tidak ada perubahan dalam statistik produksi.

Wyatt Barnett
sumber
Saya tidak pernah berpikir untuk melakukan ini, tetapi semakin saya melakukannya, semakin saya menyukainya :)
Ben Cull
Apakah ini membutuhkan banyak overhead? Kesan saya adalah bahwa tim dev hanya menerbitkan pratinjau dan melakukan pementasan langsung untuk produksi langsung tanpa membuat perubahan kode.
MXMLLN
2
@MXMLLN - itu tergantung pada seberapa baik Anda melakukan manajemen konfigurasi. Dalam kasus kami, itu hanyalah baris lain dalam file konfigurasi yang sudah kami tangani, ymmv.
Wyatt Barnett
@ WyattBarnett - Terima kasih, saya akan melihat apa yang mereka pikirkan.
MXMLLN
14

Solusinya adalah menggunakan Google Pengelola Tag (GTM) untuk menangani Google Analytics Anda. Ini akan memungkinkan Anda untuk hanya memecat Google Analytics di domain produksi Anda tanpa harus menulis persyaratan apa pun dalam kode situs Anda. Inilah cara melakukannya:

Di GTM, tetapkan Pemicu yang hanya aktif saat Hostname Halaman berisi domain produksi Anda.

masukkan deskripsi gambar di sini

Kemudian atur Tag untuk Universal Analytics dan buat Pemicu yang baru saja Anda buat.

masukkan deskripsi gambar di sini

Martyn Chamberlin
sumber
6

Tambahkan baris ini sebelum kode async Google Analytics Anda berjalan untuk menonaktifkan pelacakan untuk ID properti web itu:

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

UA-XXXXXX-Y sesuai dengan ID properti web tempat Anda ingin menonaktifkan pelacakan.

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

AJP
sumber
Saya sedang mengerjakan situs dengan banyak halaman yang masing-masing memiliki salinan kode GA JS masing-masing. Saya akhirnya akan membuat ini dinamis di footer tetapi sementara itu, bisakah saya menambahkan ini tinggi-tinggi halaman di header dan itu akan menonaktifkan semua panggilan ke GA?
codecowboy
Ya, selama Anda memberikan ID properti web yang sama dengan yang digunakan di bagian bawah halaman.
AJP
5

Untuk menonaktifkan klik localhost, cukup buat filter untuk mengecualikan localhost. Buka Admin -> Properti -> Lihat Pengaturan untuk melakukannya. Periksa tangkapan layar berikut untuk bantuan.

lihat ga singkirkan localhost

Untuk menonaktifkan klik URL produksi sendiri jika Anda mengunjungi menggunakan IP non-statis, Anda dapat menggunakan ekstensi Chrome seperti Cookie Pengembang untuk melewati menjalankan kode Google Analytics jika itu Anda.

Saya pribadi tidak melakukan ini karena saya menggunakan Pemblokir Iklan yang sudah memblokir Google Analytics di browser saya.

Avi
sumber
4

Gunakan metrik khusus untuk memfilter semua lalu lintas ini.

Saat Anda init GA di aplikasi Anda, tetapkan bendera kustom untuk melacak pengembangan:

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

Kemudian tambahkan filter di Akun GA Anda untuk menghapus hasil ini.

Admin> Akun> Semua Filter> Tambah Filter> Ditetapkan Pengguna

masukkan deskripsi gambar di sini

Joseph Lust
sumber
3

Saya menggunakan Pemblokir Iklan untuk Firefox, ia dapat secara khusus memblokir skrip pelacakan Google analytics. Karena firefox adalah browser pengembangan utama saya, ia berfungsi dengan baik sampai saya perlu menguji pekerjaan saya di browser lain.

Adrian
sumber
2

Mungkin tidak membantu Anda, tetapi saya memecahkan masalah ini dengan menulis kontrol server ASP.NET khusus yang menyuntikkan JavaScript yang diperlukan. Saya kemudian menambahkan URL langsung ke web.config dan kemudian hanya membuat kontrol terlihat ketika nama host cocok dengan URL langsung di web.config.

Dan Diplo
sumber
1

Seperti yang disebutkan orang, Anda dapat meng-host domain google-analytics.com secara lokal atau mengatur fungsi untuk melihat apakah Anda bekerja di jaringan pengembangan Anda.

Perlu diingat jika http://www.google-analytics.com/ga.js tidak memuat dan penggunaan fungsi javascript onclick Anda untuk membantu melacak klik pada elemen halaman.

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

Anda akan memiliki kesalahan JavaScript yang akan menghentikan fungsi jQuery atau JavaScript kuat lainnya.

Gegere
sumber
1

Sama seperti opsi tambahan untuk ini, saya memiliki server pengembangan dengan banyak situs dan pengembang yang berbeda. Ini berarti bahwa saya tidak terlalu senang dengan 3 opsi utama

  • host file-bermasalah dengan banyak pengembang dan terbuka untuk kesalahan manusia
  • jika blok pengembangan lain di setiap situs, dll
  • konfigurasi pada situs web GA - beberapa klien memiliki akun GA mereka sendiri; harus diselesaikan di setiap situs dengan potensi untuk dilupakan / diabaikan

Daripada menerapkan berbagai opsi di jawaban lain di sini saya mendekati masalah dengan cara berikut. Dalam global httpd.conf (daripada yang spesifik situs) saya menggunakan modul apache mod_substitute untuk mensimulasikan efek memperbaiki file host di jawaban lain, tetapi untuk setiap situs pengembangan, dan setiap pengembang secara otomatis.

Aktifkan modul

CentOS : Buka /etc/conf/httpd.confdan tambahkan baris berikut

LoadModule substitute_module modules/mod_substitute.so

Ubuntu / Debian : Jalankan perintah berikut

sudo a2enmod substitute

Setelah modul diaktifkan, tambahkan baris berikut ke file konfigurasi global httpd Anda

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"

Kemudian restart apache

CentOS :service httpd restart

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

Apa yang dilakukan adalah mengganti semua .google-analytics.com yang cocok dengan .127.0.0.1 ketika apache melayani halaman sehingga halaman Anda dirender dengan kode analitik yang mirip dengan contoh di bawah ini

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);
})();
Ben Swinburne
sumber
1

Saya tahu posting ini sangat lama, tetapi tidak ada solusi yang memenuhi kebutuhan saya. Tidak hanya saya ingin menghapus pekerjaan dev dari GA (dan FB), tetapi saya juga ingin agar beberapa orang di dalam perusahaan tidak dihitung dalam GA dan FB. Jadi saya ingin metode yang relatif mudah bagi orang-orang untuk mengecualikan diri dari analytics tanpa plugin, atau mengesampingkan ip domain (karena orang-orang dengan laptop mengembara).

Saya membuat laman web yang dapat dikunjungi pengguna dan mengeklik tautan untuk menyisih dari pelacakan GA dan FB. Ini menempatkan cookie untuk situs. Kemudian saya memeriksa cookie itu untuk menentukan apakah kita harus mengirim data ke GA dan FB.

Saya awalnya mengatur ini di sebuah situs bernama Dahlia, yang merupakan pembuat butik item untuk Pernikahan dan Pembaptisan Ortodoks Yunani .

Berikut kodenya:

Saya memasukkan kode berikut di header untuk semua halaman 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>

Pastikan untuk menambahkan ID pelacakan GA dan FB Anda di tempat yang disediakan. Ini awalnya ditulis untuk situs Weebly (CMS belanja). Jadi, jika Anda tidak menggunakan Weebly, Anda dapat menghapus baris yang menyebutkan Weebly.

Lalu saya membuat halaman web baru yang disebut "jangan-lacak" dengan kode berikut di header:

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

Dan kode berikut di badan:

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

Ini adalah artikel lengkap saya untuk situs Weebly

Semoga ini bisa membantu seseorang!

tungkuX
sumber
1

Jika Anda memiliki aplikasi reaksi dan Anda telah mengeluarkan aplikasi (ini juga bisa bekerja untuk CRA). Anda dapat menggunakan potongan kode di bawah ini di index.htmlhalaman.

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

dapatkan variabel host permintaan.

Jadi bungkus pernyataan if di sekitar analytics javascript seperti ini (Ruby-esque pseudocode):

<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>
pengguna94154
sumber
0

Saya memiliki set variabel PHP untuk pengembangan lokal saya yang memberi saya terminal untuk menyediakan data / umpan balik dll ketika saya sedang mengerjakan hal-hal.

Saya menggunakan XAMPP sehingga memiliki variabel env untuk tmp yang adalah sebagai berikut:

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

Ini tidak ada di server produksi saya karena xampp tidak sedang digunakan

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

... Khusus untuk pertanyaan ini:

<?php if(!$isLocal){ ?>
  <!-- Insert Google Analytics Script Here -->
<?php } // end google analytics local check ?>
shanehoban
sumber
Solusi itu benar-benar dapat mengacaukan acara Anda dan kode pelacakan konversi di JS karena Anda tidak akan memiliki objek "ga" untuk dipanggil. Dengan cara itu seluruh JS bisa crash dan menyebabkan banyak masalah lainnya.
omgitsdrobinoha
0

Hari ini, sementara di komputer yang berbeda dari komputer saya, saya perhatikan μBlock Origin for Chrome memblokir Google AdSense secara default. Setelah beberapa Googling, saya menemukan artikel ini . Ini juga mencatat μBlokir Origin Firefox, μ Adblock untuk Firefox dan Ad Muncher untuk Windows memblokir AdSense secara default. Sebagian besar opsi lain terdaftar dapat dikonfigurasi untuk memblokir AdSense.

Ini sepertinya berfungsi dan berguna karena IP saya sering dinamis, sehingga ekstensi Chrome dapat mengikuti saya selama saya masuk ke Chrome.

RationalDev suka GoFundMonica
sumber