web-dev-qa-db-fra.com

Existe-t-il un moyen d'empêcher Google Analytics de comptabiliser les travaux de développement comme des hits?

J'ai ajouté le code JavaScript dont j'ai besoin au bas de mes pages afin de pouvoir utiliser Google Analytics. Le seul problème est que je suis sûr qu'il compte tout mon travail de développement comme des hits. Étant donné que je vois probablement certaines de ces pages cent fois par jour, cela faussera vraiment mes lectures. Existe-t-il un moyen de le désactiver à partir d'une adresse IP particulière ou est-ce quelque chose qui devrait être intégré à mon processus de génération afin qu'il ne soit ajouté que lorsque je crée pour le déploiement?

134
uriDium

Oui, vous allez dans les paramètres Analytics, modifiez votre site et + Ajouter un filtre pour définir un filtre qui exclut votre adresse IP.

Les données antérieures ne sont pas régénérées avec des filtres appliqués, vous n'aurez donc que l'avantage d'avancer.

96
chaos

J'aime l'approche simple de l'utilisation de javascript. Cela fonctionne partout.

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

//google analytics code goes here

}
</script>
191
keza

Nous sommes en 2014 et je ne suis toujours pas satisfait de toutes les solutions existantes ...

  • Les filtres IP nécessitent une adresse IP statique. Et si je travaille à domicile ou dans un café?
  • La vérification du nom d'hôte élimine les hits d'un environnement de développement, mais que se passe-t-il si je débogue le site en direct?
  • L'édition des configurations de serveur est ennuyeuse/avancée et plusieurs domaines sont compliqués.
  • Les extensions de désactivation bloquent les accès sur tous les sites Web ou n'en dépendent pas du tout à qui vous demandez.

J'ai donc créé ma propre extension de navigateur ... https://chrome.google.com/webstore/detail/lknhpplgahpbindnnocglcjonpahfikn

  • Il me suit partout où je vais
  • Il fonctionne sur un environnement de développement et sur des domaines en direct/publics
  • Cela ne concerne que moi et les sites que je développe
  • Il s'allume/s'éteint en un seul clic
  • Il est facile de vérifier qu'il n'envoie vraiment aucune donnée à l'analyse

Cela fonctionne en gardant un "cookie développeur" sur votre machine à tout moment juste pour les domaines que vous choisissez. Il vous suffit ensuite de rechercher ce cookie dans votre script avant d'envoyer des données à Analytics. Vous personnalisez vos propres NOM et VALEUR uniques pour les cookies dans les paramètres de l'extension. Cela peut facilement être utilisé par une équipe de personnes, de sorte que les développeurs, les créateurs de contenu, les relecteurs et toute autre personne de votre organisation peuvent tous afficher des pages sans gonfler les statistiques.

Exemples de comment mettre le code dans vos pages ...

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

La vérification que le nom d'hôte est égal au domaine de votre site en direct ("mydomain.com") garantit que les données d'analyse ne seront jamais envoyées par N'IMPORTE QUEL visiteur lors de la visualisation à partir d'un domaine de test tel que "localhost" ou "beta.mydomain.com" . Dans les exemples ci-dessus, "www.mydomain.com" et "mydomain.com" sont les deux domaines valides où nous voulons que les visites soient enregistrées.

Le site en direct envoie des données à l'analyse comme prévu, À MOINS QU'UN cookie de développeur ne soit trouvé avec des valeurs correspondantes. S'il voit ce cookie unique défini sur votre appareil, votre visite ne sera pas prise en compte dans vos totaux dans Google Analytics ou tout autre outil d'analyse que vous préférez utiliser.

N'hésitez pas à partager ma solution et à utiliser mon extension pour conserver ces cookies.

31
seebigs

Si vous n'utilisez pas d'IP statique, définir des filtres IP sur GA ne peut pas vous aider.

Définissez une variable d'environnement et affichez-la de manière conditionnelle. Prenez le Ruby on Rails code, par exemple:

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

Vous pouvez étendre ce comportement à chaque langue/framework que vous utilisez sur n'importe quel système d'exploitation. Sur PHP, vous pouvez utiliser la fonction getenv . Consultez-le sur la page Wikipedia sur Variables d'environnement pour savoir comment procéder sur votre système.

25
Nando Vieira

Nous avons configuré un deuxième code de suivi Google Analytics pour le développement et le travail d'assurance qualité - est en fait utile lorsque vous souhaitez tester votre intégration analytique, garantit également que l'on n'a pas de débordement dans les statistiques de production.

15
Wyatt Barnett

Si vous êtes derrière NAT ou si vous ne pouvez pas, pour toute autre raison, donner votre adresse IP à Google Analytics, la méthode la plus simple consiste à définir le domaine google analytics sur localhost (127.0.0.1), à partir de maintenant lorsque vous ouvrez votre navigateur, toutes les demandes adressées à Google Analytics seront dirigées vers votre poste de travail, à l'insu de Google Analytics.

15
astropanic

Vous pouvez utiliser ce code

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

La solution consiste à utiliser Google Tag Manager (GTM) pour gérer votre Google Analytics. Cela vous permettra de ne déclencher que Google Analytics sur votre domaine de production sans avoir à écrire de conditions dans le code de votre site. Voici comment procéder:

Dans GTM, définissez un déclencheur qui ne se déclenche que lorsque le nom d'hôte de la page contient votre domaine de production.

enter image description here

Ensuite, définissez un tag pour Universal Analytics et faites de son déclencheur celui que vous venez de créer.

enter image description here

10
Martyn Chamberlin

Il existe quelques Chrome qui le font pour vous, comme https://chrome.google.com/webstore/detail/fadgflmigmogfionelcpalhohefbnehm

Très pratique si votre adresse IP n'est pas statique.

6
Uri

Ajoutez cette ligne avant l'exécution de votre code asynchrone Google Analytics pour désactiver le suivi de cet ID de propriété Web:

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

UA-XXXXXX-Y correspond à l'ID de propriété Web sur lequel vous souhaitez désactiver le suivi.

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

5
AJP

J'utilise Ad Blocker pour Firefox, il peut spécifiquement bloquer le script de suivi Google Analytics. Étant donné que Firefox est mon navigateur de développement principal, il fonctionne très bien jusqu'à ce que je doive tester mon travail dans d'autres navigateurs.

3
Adrian

Utilisez un métrique personnalisée pour filtrer tout ce trafic.

Lorsque vous lancez GA dans votre application, définissez un indicateur personnalisé pour suivre les développements:

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

Ajoutez ensuite un filtre dans votre compte GA pour supprimer ces résultats.

Admin> Compte> Tous les filtres> Ajouter un filtre> Défini par l'utilisateur

enter image description here

3
Joseph Lust

Probablement pas utile pour vous, mais j'ai résolu ce problème en écrivant un contrôle serveur ASP.NET personnalisé qui injecte le JavaScript requis. J'ai ensuite ajouté l'URL en direct à web.config, puis rendu le contrôle visible uniquement lorsque le nom d'hôte correspondait à l'URL en direct dans web.config.

2
Dan Diplo

Je sais que ce message est super ancien, mais aucune des solutions n'a répondu à mes besoins. Non seulement je voulais supprimer le travail de développement de GA (et FB), mais je voulais aussi que certaines personnes au sein de l'entreprise ne soient pas comptabilisées dans GA et FB. Je voulais donc une méthode relativement facile pour ces gens de s'exclure des analyses sans plugin, ou d'exclure une adresse IP de domaine (comme les gens avec des ordinateurs portables errent).

J'ai créé une page Web à laquelle les utilisateurs peuvent accéder et cliquer sur un lien pour désactiver le suivi GA et FB. Il place un cookie pour le site. Ensuite, je vérifie ce cookie pour déterminer si nous devons envoyer des données à GA et FB.

J'ai à l'origine mis cela en place sur un site appelé Dahlia, qui est un fabricant de boutique d'articles pour les mariages et les baptêmes orthodoxes grecs .

Voici le code:

J'ai mis le code suivant dans l'en-tête de toutes les pages 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>

Assurez-vous d'ajouter vos GA et ID de suivi FB dans les espaces fournis. Cela a été initialement écrit pour un site Weebly (shopping CMS). Donc, si vous n'êtes pas sur Weebly, vous pouvez supprimer la ligne qui mentionne weebly.

Ensuite, j'ai créé un nouveau page Web appelée "ne pas suivre" avec le code suivant dans l'en-tête:

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

Et le code suivant dans le corps:

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

Voici mon complet rédaction pour le site Weebly

J'espère que cela aide quelqu'un!

1
furnaceX

Comme les gens le mentionnent, vous pouvez héberger le domaine google-analytics.com localement ou configurer une fonction pour voir si vous travaillez dans votre réseau de développement.

Gardez à l'esprit si http://www.google-analytics.com/ga.js ne se charge pas et que vous utilisez les fonctions javascript onclick pour aider à suivre les clics sur les éléments de la page.

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

Vous allez avoir des erreurs JavaScript qui empêcheront jQuery ou d'autres fonctions JavaScript robustes de fonctionner.

1
gegere

Juste comme une option supplémentaire pour cela, j'ai un serveur de développement avec beaucoup de sites et de développeurs différents. Cela signifie que je n'étais pas particulièrement satisfait des 3 options principales

  • héberge le fichier - problématique avec beaucoup de développeurs et ouvert à l'erreur humaine
  • bloc de développement if/else sur chaque site etc
  • configuration sur GA site Web - certains clients ont leur propre GA comptes; doivent être complétés sur chaque site avec le potentiel d'être oublié/négligé

Plutôt que de mettre en œuvre les différentes options dans les autres réponses ici, j'ai abordé le problème de la manière suivante. Dans le httpd.conf global (plutôt que spécifique au site), j'ai utilisé le module Apache mod_substitute pour simuler l'effet du correctif du fichier hosts dans une autre réponse, mais pour chaque site de développement et chaque développeur automatiquement .

Activer le module

CentOS : Ouvrez /etc/conf/httpd.conf et ajoutez la ligne suivante

LoadModule substitute_module modules/mod_substitute.so

Ubuntu/Debian : exécutez la commande suivante

Sudo a2enmod substitute

Une fois le module activé, ajoutez les lignes suivantes à votre fichier de configuration globale 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"

Redémarrez ensuite Apache

CentOS : service httpd restart

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

Cela remplace tout le texte correspondant à .google-analytics.com par .127.0.0.1 lorsque Apache diffuse la page afin que votre page s'affiche avec un code analytique similaire à l'exemple ci-dessous

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

J'ai un PHP ensemble de variables pour mon développement local qui me donne un terminal pour fournir des données/commentaires, etc. lorsque je travaille sur des choses.

J'utilise XAMPP pour avoir une variable env pour tmp qui est la suivante:

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

Cela n'existe pas sur mon serveur de production car xampp n'est pas utilisé

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

... Spécifique à cette question:

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

Aujourd'hui, alors que sur un ordinateur différent du mien, j'ai remarqué μBlock Origin pour Chrome bloquait Google AdSense par défaut. Après quelques recherches sur Google, j'ai trouvé ceci article . Il note également que μBlock Origin Firefox, μ Adblock pour Firefox et Ad Muncher pour Windows bloquent AdSense par défaut. La plupart des autres options sont répertoriées comme étant configurables pour bloquer AdSense.

Cela semble fonctionner et est utile car mon IP est souvent dynamique, donc l'extension Chrome peut me suivre aussi longtemps que je suis connecté à Chrome.

0
RationalDev

obtenir la variable Host request.

Enveloppez donc une instruction if autour du javascript d'analyse comme celui-ci (pseudocode 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
user94154