Чи є спосіб зупинити Google Analytics, вважаючи розробку роботою як хітом?


151

Я додав потрібний JavaScript у нижній частині своїх сторінок, щоб я міг використовувати Google Analytics. Проблема полягає лише в тому, що я впевнений, що всю мою розробку вважає хітом. Бачачи, як я, мабуть, бачу деякі ці сторінки сто разів на день, це дійсно перекривить мої читання. Чи є спосіб вимкнути його з певної IP-адреси чи це щось, що слід вбудувати в мій процес збирання, щоб він додався лише тоді, коли я будувати для розгортання?


6
Яку мову / технології ви розробляєте? Тому що ви можете зробити щось там, де, якщо ім'я хоста = 127.0.0.1 або localhost (або будь-який ваш місцевий екземпляр), то не показувати блок сценарію аналітики. Повинен бути один рядок коду на стороні сервера ...
davewasthere

4
Я не знаю, чому хтось хоче перенести це на SuperUser - це явно питання програмування / розробки.
Томас Оуенс

Я використовую asp.net, vs2005, і це веб-проект.
uriDium

Ви можете використовувати це як блокатор скриптів, наприклад, umatrix або uBlock . Він заблокує всі сценарії реклами, включаючи аналітичний сценарій googles.
Саймон

Відповіді:


102

Так, ви заходите в Налаштування Analytics, редагуєте веб-сайт та + Додати фільтр, щоб визначити фільтр, який виключає вашу IP-адресу.

Дані, що минули, не регенеруються із застосованими фільтрами, тому ви матимете лише перевагу, коли вони рухаються вперед.


17
[Новостворений] фільтр застосовується лише для майбутніх даних.
viam0Zah

1
Це ідеально. Я роблю це проактивно. Я ще фактично не додав JavaScript, який вимагає Google Analytics. Я поставлю фільтр на місце, а потім розгорну.
uriDium

7
я просто натрапив на це питання випадковим чином ... Я просто використаю інший UA-ID для свого середовища розробки. Це я зараз роблю. Я думаю, це був би кращий підхід, ніж блокувати IP-адреси та інше.
karry

3
Насправді існує ще простіший спосіб. Ця методика також буде працювати лише для майбутніх даних. При ініціалізації об'єкта ga просто встановіть явний домен файлу cookie. Довідка: developers.google.com/analytics/devguides/collection/…
Даррен

2
Залежно від середовища розробки, ви також можете виключати імена хостів. Я розвиваюсь з asp.net, тому я виключив усі імена хостів, які містять localhost. Якщо ви зазвичай маєте тестове середовище під субдоменом, просто виключіть це.
CularBytes

205

Мені подобається простий підхід використання javascript. Він працює в будь-якому місці.

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

//google analytics code goes here

}
</script>

3
дуже елегантне рішення :)
Sushant Gupta

28
Дякую. Я особисто використовую if (document.location.hostname == "example.com") { /* ga code */ } else { _gaq = {push: function(arg) {console.log("ga:", arg)}}}- це дозволяє мені безпечно використовувати деякі трекери подій та користувацькі _gaq виклики в будь-якому місці мого коду, і в той же час дозволяють мені налагоджувати GA-дзвінки в середовищі розробників.
seriyPS

1
Іншим, трохи читабельнішим рішенням було б використання if(/example\.com/.test(window.location.hostname)) { /* GA code */ }
регекс-

Мені такий підхід подобається набагато більше, тому що він дозволяє переглядати сторінки як у розробниках, так і у виробництві, якщо у вас блакитний сайт (або подібний настрій). IE, коли ви переходите на xxxxx.azurewebsites.net, він не бере сеансу. Дякую! Просте виправлення також зайняло у мене 5 хвилин, щоб почати виробництво.
Jhayes2118

11
Фуллер ілюструє запропоновані вище рішення (припустимо, що це ім'я об'єкта): 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');
Брайан

34

Настав 2014 рік, і я все ще незадоволений усіма існуючими рішеннями ...

  • Для IP-фільтрів потрібна статична IP-адреса. Що робити, якщо я працюю вдома або в кафе?
  • Перевірка імені хоста усуває звернення із середовища розробників, але що робити, якщо я налагоджую веб-сайт у реальному часі?
  • Редагування конфігурацій сервера дратує / вдосконалює, і кілька доменів є складними.
  • Розширення відмови від блокування або блокують звернення на всіх веб-сайтах, або взагалі жодне, залежно від того, кого ви запитуєте.

Отже, я створив власне розширення для браузера ... https://chrome.google.com/webstore/detail/lknhpplgahpbindnnocglcjonpahfikn

  • Це стежить за мною, куди б я не поїхав
  • Він працює в середовищі розробників і в живих / публічних областях
  • Це стосується лише мене та сайтів, які я розробляю
  • Він включається / вимикається одним клацанням миші
  • Легко перевірити, чи справді не надсилає жодних даних в аналітику

Він працює, зберігаючи на вашій машині "cookie-розробник", встановлений на вашому комп'ютері, лише для доменів, які ви вибрали. Потім ви просто перевіряєте наявність цього файлу cookie у своєму сценарії, перш ніж надсилати будь-які дані в Analytics. Ви налаштовуєте власне унікальне ім’я NAME та VALUE для файлів 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
   }
}

Перевірка того, що ім'я HOST дорівнює домену вашого веб-сайту в реальному часі ("mydomain.com"), гарантує, що дані аналітики ніколи не будуть надсилатись будь-яким відвідувачем під час перегляду з тестового домену, наприклад "localhost" або "beta.mydomain.com" . У наведених вище прикладах "www.mydomain.com" та "mydomain.com" - це два дійсні домени, де ми хочемо записувати відвідування.

Веб-сайт, що надсилає дані, передає аналітичні дані, як очікується, НІКОЛИ не знайдено печиво розробника з відповідними значеннями. Якщо на вашому пристрої буде встановлено унікальний файл cookie, ваш візит не зараховуватиметься до ваших підсумків у Google Analytics або будь-якому іншому аналітичному інструменті, який ви бажаєте використовувати.

Не соромтеся поділитися моїм рішенням та використати моє розширення, щоб зберегти ці файли cookie.


Це чудове рішення. Дякую!
Нейт

1
Гей, бачимо, ви можете зробити це на крок далі, а замість того, щоб вимагати від розробників змінити свій код аналітики, просто знайдіть спосіб перехопити та замінити об'єкт ga замість макету? Теоретично це можна зробити після завантаження JS, але до запуску коду аналітики .... Є chrome.google.com/webstore/detail/analytics-blocker/… але він, здається, зламаний і не підтримується.
jmort253

25

Якщо ви не використовуєте статичний IP, встановлення IP-фільтрів на GA не може вам допомогти.

Встановити змінну середовища та умовно відобразити її. Візьмемо, наприклад, наступний код Ruby on Rails:

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

Ви можете поширити цю поведінку на будь-яку мову / рамку, якою ви користуєтесь у будь-якій операційній системі. На PHP ви можете використовувати getenv . Перегляньте сторінку Вікіпедії на змінні середовища, щоб знати, як діяти у вашій системі.


Це обмежене використання, оскільки воно застосовується лише в тому випадку, якщо машина для розробки та система, що перевіряється, однакові.
JoshJordan

1
Подумайте, це, мабуть, найбільш широко використовуване рішення, хоча замість того, щоб порівнювати з «розвитком», ви порівнюєте з «виробництвом» - це означає, що поки сайт працює у виробничому середовищі, ми надаємо сценарій GA, в іншому випадку немає (наприклад, сервіси встановлення, сервери розробки та тестування). Очевидно, це не справляється із випадком налагодження живого середовища, але це добре для більшості ppl.
miphe

2
Ви також можете, якщо ENV ["RAILS_ENV"] == "виробництво"
moeabdol

17

Ви можете використовувати цей код

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

16

Якщо ви відстали від NAT або не можете з іншої причини надати свій IP-адресу Google Analytics, найпростішим методом є встановлення домену аналітики google у localhost (127.0.0.1). Відтепер, коли ви відкриєте веб-переглядач, усі запити на Google Analytics буде спрямований на вашу робочу станцію, не знаючи Google Analytics.


3
це, сер, найпростіше рішення, яке я коли-небудь бачив у цій проблемі! +1 від мене
Нір Леві

Я не рекомендую такий підхід, оскільки ви збираєтеся розробити (можливо, випуск) код, який може суперечити GA. І ви отримаєте 404s, які намагаються додати сценарій, можливо, блокуючи.
webXL

@webXL, моє рішення саме для того, щоб не завантажувати сценарій взагалі, це для машини розвитку, а не для використання виробництва (хост розгортання), будь ласка, вкажіть, що може конфліктувати в цьому випадку, коли GA взагалі не використовується машина для розробки на розробленому додатку ...
астропанічний

@astropanic, GA оголошує щонайменше один глобальний, тому можливо його перезаписати або переписати. Виключаючи його в розробці, ви ризикуєте. Це може бути невеликим ризиком, але, тим не менш, ризиком, який можна уникнути. Крім того, чи не повинні імена хостів відповідати GA для відстеження?
webXL

Ви також можете використовувати 0.0.0.0 замість 127.0.0.1
Goyllo

16

Ми встановлюємо другий код відстеження google analytics для розробки та QA-роботи - насправді корисний, коли ви хочете перевірити свою інтеграцію в аналітику, а також гарантує, що у вас немає кровотоку на виробничу статистику.


Я ніколи не думав це робити, але чим більше я це роблю, тим більше мені це подобається :)
Бен Кулл

Це вимагає багато накладних витрат? Моє враження, що команда розробників просто публікує попередній перегляд та постановку безпосередньо для прямого виробництва, не вносячи змін у код.
MXMLLN

2
@MXMLLN - це залежить від того, наскільки добре ви керуєте керуванням конфігурацією. У нашому випадку це був лише інший рядок у конфігураційному файлі, який ми вже обробляли, ymmv.
Wyatt Barnett

@WyattBarnett - Спасибі, я побачу, що вони думають.
MXMLLN

14

Рішення полягає у використанні Менеджера тегів Google (GTM) для обробки вашої Google Analytics. Це дозволить вам запускати Google Analytics лише у виробничому домені, не вказуючи жодних умов у коді вашого сайту. Ось як це зробити:

У GTM встановіть тригер, який запускається лише тоді, коли ім'я сторінки хосту містить ваш виробничий домен.

введіть тут опис зображення

Потім встановіть тег для Universal Analytics і зробіть його тригер тим, що ви створили.

введіть тут опис зображення


6

Є кілька розширень Chrome, які роблять це для вас, як-от https://chrome.google.com/webstore/detail/fadgflmigmogfionelcpalhohefbnehm

Дуже зручно, якщо ваша IP-адреса не є статичною.


1
Я використовую наступне, і це працює ВЕЛИКО для розробки на основі браузера (зараз я хочу вирішити це за допомогою моєї розробки вузлів). igorware.com/extensions/block-yourself-from-analytics
rainabba

6

Додайте цей рядок до запуску асинхронного коду Google Analytics, щоб відключити відстеження для цього ідентифікатора веб-ресурсу:

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

UA-XXXXXX-Y відповідає ідентифікатору веб-власності, на якому ви хочете відключити відстеження.

Від: https://developers.google.com/analytics/devguides/collection/gajs/


Я працюю над сайтом з великою кількістю сторінок, кожна з яких має свою копію коду GA JS. Зрештою, я буду робити цю динаміку у нижньому колонтитулі, але тим часом, чи можу я просто додати цю високу сторінку в заголовку, і вона відключить всі дзвінки в GA?
codecowboy

Так, поки ви надасте той самий ідентифікатор веб-власності, який використовується далі вниз на сторінці.
AJP

5

Щоб вимкнути звернення localhost, просто створіть фільтр, щоб виключити localhost. Перейдіть до Адміністратора -> Властивість -> Перегляньте налаштування, щоб зробити це. Перегляньте наступний скріншот для отримання допомоги.

ga view виключає localhost

Щоб вимкнути звернення URL-адреси виробництва для себе, якщо ви відвідуєте нестатичний IP-адрес, ви можете використовувати розширення Chrome, наприклад Cookie розробника щоб пропустити запуск коду Google Analytics, якщо це ви.

Я особисто цього не роблю, оскільки використовую блокувальник оголошень, який уже блокує 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

Я використовую Ad Blocker для Firefox, він може спеціально блокувати сценарій відстеження аналітики Google. Оскільки Firefox є моїм браузером основного розвитку, він працює чудово, поки мені не потрібно перевірити свою роботу в інших браузерах.


2

Можливо, вам не корисно, але я вирішив цю проблему, написавши користувальницький сервер управління ASP.NET, який вводить необхідний JavaScript. Потім я додав пряму URL-адресу до web.config, а потім зробив керування видимим лише тоді, коли ім'я хоста збігалося з реальною URL-адресою в web.config.


1

Як згадують люди, ви можете або розмістити домен google-analytics.com локально, або налаштувати функцію, щоб перевірити, чи працюєте ви у вашій мережі розробки.

Майте на увазі, якщо http://www.google-analytics.com/ga.js не завантажується, а ви використовуєте функції onclick javascript для відстеження кліків на елементах сторінки.

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

Ви матимете помилки JavaScript, які зупинять роботу jQuery або інших надійних функцій JavaScript.


1

Як додатковий варіант для цього, у мене є сервер розробки з великою кількістю різних сайтів та розробників. Це означало, що я не був особливо задоволений трьома основними варіантами

  • розміщує файли - проблематично з великою кількістю розробників і відкрито для людських помилок
  • if / else блок розвитку на кожному сайті тощо
  • конфігурація на веб-сайті GA - деякі клієнти мають власні облікові записи GA; повинні бути заповнені на кожному сайті з можливістю забутись / забути

Замість того, щоб застосувати різні варіанти в інших відповідях тут, я підійшов до проблеми наступним чином. У глобальному httpd.conf (а не конкретному сайті) я використовував модуль apache mod_substitute для імітації ефекту, який виправляє файл хостів в іншій відповіді, але для кожного сайту розробки та кожного розробника автоматично.

Увімкніть модуль

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"

Потім перезапустіть апаш

CentOS :service httpd restart

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

Це означає, що замініть весь текст, що відповідає .google-analytics.com, на .127.0.0.1, коли apache обслуговує сторінку, щоб ваша сторінка відображалася з кодом аналітики, аналогічним наведеному нижче прикладу

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. Він розміщує файли cookie для сайту. Потім я перевіряю це печиво, щоб визначити, чи слід надсилати дані в GA та FB.

Я спочатку встановив це на сайті під назвою Далія, яка є виробником бутіків предметів для грецьких православних весіль та хрещення .

Ось код:

Я розміщую наступний код у заголовку для всіх веб-сторінок:

<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 у вказані місця. Це було спочатку написано для веб-сайту Weebly (Shopping CMS). Тож якщо ви не на Weebly, ви можете видалити рядок, який згадується плачевно.

Тоді я створив нову веб-сторінку під назвою "do-not track" із таким кодом у заголовку:

<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 навколо аналітичного javascript на зразок цього (псевдокод 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, щоб змінна env для 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 ?>

Це рішення дійсно може зіпсувати ваші події та коди відстеження конверсій у JS, оскільки у вас не буде об’єкта "ga" для виклику. Таким чином, весь JS може вийти з ладу і викликати багато інших проблем.
omgitsdrobinoha

0

Сьогодні, перебуваючи на іншому комп'ютері, ніж на моєму, я помітив, що µBlock Origin for Chrome блокує Google AdSense за замовчуванням. Після деякого гуглінгу я знайшов цю статтю . Він також відзначає μBlock Origin Firefox, μ Adblock для Firefox та Ad Muncher для Windows, за замовчуванням блокує AdSense. Більшість інших параметрів перераховані як налаштовані для блокування AdSense.

Це, здається, працює і корисно, оскільки мій IP часто динамічний, тому розширення Chrome може слідувати за мною, доки я ввійшов у Chrome.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.