Есть ли способ остановить Google Analytics, считая работу разработчиков хитами?


151

Я добавил JavaScript, который мне нужен, внизу моих страниц, чтобы я мог использовать Google Analytics. Единственная проблема в том, что я уверен, что все мои работы по разработке считаются хитами. Видя, что я, вероятно, вижу некоторые из этих страниц по сто раз в день, это действительно искажает мои показания. Есть ли способ отключить его с определенного IP-адреса или это должно быть встроено в мой процесс сборки, чтобы оно добавлялось только при сборке для развертывания?


6
На каком языке / технологиях вы разрабатываете? Поскольку вы можете сделать что-то, где, если hostname = 127.0.0.1 или localhost (или каков ваш локальный экземпляр), тогда не показывать блок скрипта аналитики. Должна быть одна строка кода на стороне сервера ...
davewasthere

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

Я использую asp.net, vs2005, и это веб-проект.
UriDium

Вы можете использовать в качестве блокировщика скриптов, например, umatrix или uBlock . Он заблокирует все рекламные сценарии, включая аналитический скрипт googles.
Симон

Ответы:


102

Да, вы заходите в Настройки Google Analytics, редактируете свой сайт и + Добавить фильтр, чтобы определить фильтр, который исключает ваш IP-адрес.

Прошлые данные не восстанавливаются с примененными фильтрами, поэтому вы будете только получать выгоду от их продвижения вперед.


17
[Недавно созданный] фильтр применяется только к будущим данным.
viam0Zah

1
Это идеально. Я делаю это активно. Я еще фактически не добавил javascript, который требует Google Analytics. Я поставлю фильтр на место и затем разверну.
UriDium

7
Я случайно наткнулся на этот вопрос ... Я просто использовал другой UA-ID для своей среды разработки. Это то, что я делаю прямо сейчас. Я думаю, что это был бы лучший подход, чем блокировка IP-адресов и прочего.
Карри

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 */ }
mjswensen

Мне нравится этот подход гораздо больше, потому что он позволяет вам просматривать страницы как в dev, так и в рабочей среде, если у вас есть сайт Azure (или аналогичная настройка). То есть, когда вы заходите на xxxxx.azurewebsites.net, он не поднимает сессию. Спасибо! Простое исправление заняло у меня 5 минут, чтобы начать работу.
Jhayes2118

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');
Брайан

34

Это 2014 год, и я все еще недоволен всеми существующими решениями ...

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

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

  • Это следует за мной, куда бы я ни шел
  • Работает в среде разработчика и в реальных / публичных доменах.
  • Это касается только меня и сайтов, которые я разрабатываю
  • Включается / выключается одним кликом
  • Нетрудно убедиться, что данные не отправляются в аналитику.

Он работает, постоянно сохраняя «cookie-файлы разработчика» на вашем компьютере только для выбранных вами доменов. Затем вы просто проверяете этот файл cookie в своем сценарии, прежде чем отправлять какие-либо данные в Google Analytics. Вы настраиваете свое собственное уникальное ИМЯ и ЗНАЧЕНИЕ для файлов 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 для разработчиков не найден с соответствующими значениями. Если он обнаружит этот уникальный файл 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, в противном случае нет (например, промежуточные серверы, серверы разработки или тестирования). Очевидно, что это не относится к случаю отладки живого окружения, но для большинства пользователей это нормально.
миф

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 Analytics, то самый простой способ - установить для домена Google Analytics значение localhost (127.0.0.1), и теперь, когда вы открываете свой браузер, все запрашивают Google Analytics будет перенаправлен на Вашу рабочую станцию ​​без знания Google Analytics.


3
это самое простое решение этой проблемы, которое я когда-либо видел! +1 от меня
Нир Леви

Я не рекомендую такой подход, потому что вы собираетесь разрабатывать (возможно, выпускать) код, который может конфликтовать с GA. И вы получите 404-е, пытаясь выполнить скрипт, возможно, заблокировав.
webXL

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

@astropanic, GA объявляет по крайней мере один глобальный объект, поэтому его можно перезаписать или перезаписать. Исключив его из разработки, вы рискуете. Может быть небольшой риск, но риск все же можно избежать. Кроме того, имена хостов не должны совпадать для отслеживания GA?
webXL

Вы также можете использовать 0.0.0.0 вместо 127.0.0.1
Goyllo

16

Мы установили второй код отслеживания Google Analytics для разработки и контроля качества - на самом деле это удобно, когда вы хотите проверить свою интеграцию с аналитикой, а также гарантирует, что у вас не будет утечки в производственную статистику.


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

Требует ли это много накладных расходов? У меня сложилось впечатление, что команда разработчиков просто публикует предварительный просмотр и постановку непосредственно в прямом эфире без каких-либо изменений кода.
MXMLLN

2
@MXMLLN - это зависит от того, насколько хорошо вы управляете конфигурацией. В нашем случае это была просто еще одна строка в файле конфигурации, которую мы уже обрабатывали, ymmv.
Уайетт Барнетт

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

14

Решение состоит в том, чтобы использовать Google Tag Manager (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

Чтобы отключить попадания на локальный хост, просто создайте фильтр для исключения локального хоста. Для этого зайдите в Admin -> Property -> View Settings. Проверьте следующий скриншот для некоторой помощи.

ga исключить localhost

Чтобы отключить производственные хиты URL-адресов для себя, если вы заходите с нестатическим IP-адресом, вы можете использовать расширение Chrome, например Developer 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 Analytics. Поскольку Firefox - мой основной браузер для разработки, он прекрасно работает, пока мне не нужно протестировать свою работу в других браузерах.


2

Возможно, вам это не поможет, но я решил эту проблему, написав собственный серверный элемент управления ASP.NET, который вводит необходимый JavaScript. Затем я добавил действующий URL-адрес в web.config, а затем сделал элемент управления видимым только тогда, когда имя хоста соответствовало действующему URL-адресу в web.config.


1

Как говорят люди, вы можете либо разместить домен google-analytics.com локально, либо настроить функцию, чтобы увидеть, работаете ли вы в своей сети разработчиков.

Имейте в виду, что http://www.google-analytics.com/ga.js не загружается, и вы используете функции javascript onclick для отслеживания кликов по элементам страницы.

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

Вы будете иметь ошибки JavaScript, которые остановят работу jQuery или других надежных функций JavaScript.


1

В качестве дополнительной опции для этого у меня есть сервер разработки с множеством разных сайтов и разработчиков. Это означало, что я не был особенно доволен 3 основными вариантами

  • файл hosts - проблематичный с большим количеством разработчиков и открытый для человеческой ошибки
  • блок разработки if / else на каждом сайте и т. д.
  • настройка на сайте GA - некоторые клиенты имеют свои собственные учетные записи 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

Для этого нужно заменить весь текст, соответствующий .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.

Первоначально я установил это на сайте под названием Dahlia, который является производителем бутиков для греческих православных свадеб и крещений .

Вот код:

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

<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 (торговый CMS). Так что, если вы не находитесь на Weebly, вы можете удалить строку, которая упоминается как пополам.

Затем я создал новую веб-страницу под названием «не отслеживать» со следующим кодом в заголовке:

<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. После некоторого поиска в Google я нашел эту статью . Он также отмечает, что µBlock Origin Firefox, µ Adblock для Firefox и Ad Muncher для Windows блокируют AdSense по умолчанию. Большинство других параметров указаны как настраиваемые для блокировки AdSense.

Кажется, это работает и полезно, потому что мой IP-адрес часто динамический, поэтому расширение Chrome может следить за мной, пока я вхожу в Chrome.

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.