web-dev-qa-db-fra.com

Comment supprimer la chaîne de requête _ga de l'URL

J'ai un site Web multidomaine pour lequel il y a GA tracking. Récemment, nous avons migré vers Universal Analytics et avons remarqué que chaque fois que le domaine est modifié (de l'US à coréen/japonais), un _ga = [numéro aléatoire] est ajouté à l'URL.

c'est-à-dire de 

abc.com

quand je clique sur le site japonais, l'URL devient 

japanese.abc.com/?_ga=1.3892897.20937502.9237834

  • Pourquoi cela arrive-t-il?
  • Comment puis-je supprimer la partie _ga de l'URL?

Apprécier ton aide.

13
user3489097

Ceci est nécessaire pour le suivi entre domaines (c'est-à-dire le suivi des personnes qui franchissent les limites d'un domaine en tant qu'un visiteur et non pas en tant qu'un visiteur par domaine). Si vous souhaitez un suivi de domaine, vous ne pouvez pas le supprimer. La partie _ga-part est l'identifiant du client qui identifie une session. Comme elle ne peut pas être partagée via des cookies (qui sont spécifiques à un domaine), elle doit être transmise via l'URL lorsque le domaine change.

Étant donné que quelqu'un a configuré votre site pour le suivi entre domaines, je suppose que vous le souhaitez réellement (cela ne se produit pas par défaut). Le paramètre est un effet secondaire nécessaire du suivi entre domaines avec Universal Analytics. Si vous souhaitez que cela apparaisse dans le code de suivi pour l’une des fonctions de l'éditeur de liens mentionnées dans la documentation et supprimez-les.

Mise à jour pour répondre aux questions du commentaire.

  1. N'y a-t-il aucun moyen de supprimer la chaîne _ga tout en conservant le domaine cross ?

    Non, pas actuellement. Les vendeurs de navigateurs travaillent sur de meilleurs moyens de communication entre domaines. Il pourrait donc y avoir quelque chose dans le futur, mais Pour le moment, le paramètre est le meilleur moyen.

  2. De plus, que se passe-t-il si un utilisateur modifie de manière aléatoire la valeur _ga et appuie sur , Entrez? Comment GA enregistrera-t-il cela?

    Si l'utilisateur crée un identifiant de client utilisé avant (Hautement improbable), sa visite serait attribuée à un autre utilisateur. De manière réaliste, Google Analytics l'enregistrera simplement. en tant que nouvel utilisateur.

Mise à jour

Pour ceux qui aiment jouer, j’ai fait une preuve de concept pour le suivi entre domaines sans le paramètre _ga . Quelque chose dans ce sens pourrait être développé, car il ne convient pas à une utilisation en production.

Mise à jour: David Vallejo a une solution Javascript dans laquelle le paramètre _ga est supprimé via l'historique API (ainsi, même s'il est toujours ajouté, il est pratiquement invisible pour l'utilisateur final). Ceci est une version plus élaborée de la réponse de Michael Hampton ci-dessous.

23
Eike Pierstorff

Vous ne pouvez pas empêcher Google d'ajouter le tag, mais vous pouvez indiquer à Analytics de l'ignorer dans vos rapports. Merci à Russ Henneberry pour cela: http://blog.crazyegg.com/2013/03/29/remove-url-parameters-from-google-analytics-reports/

Il a été écrit avant la sortie d'Universal, donc le langage est obsolète - vous créez maintenant une nouvelle "vue" (plutôt que "profil"). La création d'une nouvelle vue garantit que vous avez toujours les données brutes dans votre vue par défaut (juste au cas où vous en auriez besoin), donc c'est vraiment la meilleure solution (en gardant à l'esprit qu'il est impossible d'appliquer de nouveaux paramètres de manière rétroactive dans G Ax) . Bonne chance!

2
Gerra

On m'a demandé de supprimer cette balise après son apparition lorsque nous avons divisé notre site Web entre deux noms de domaine. Avec les règles de réécriture Apache:

RewriteCond %{QUERY_STRING} _ga
RewriteRule ^(.*)$ $1? [R=301,NC,L]

Cela supprimera le tag, mais ne pourra pas transmettre les paramètres _ga à Google Analytics. Si l'utilisateur ne souhaite pas un bref rafraîchissement, il ajoute ce code à chaque page.

<?php
list($url, $qs)  = preg_split('/\?/',$_SERVER['REQUEST_URI']);
if (preg_match('/_ga=/', $qs) )  header( "refresh:1;url=${url}" );
?>

s'actualisera après une seconde, supprimant la chaîne de requête, mais permettant à l'action Google Analytics de se dérouler. Cela signifie qu'au moment où votre utilisateur a mis en signet ou copié votre URL, le contenu gênant _ga a disparu depuis longtemps. 

Le code ci-dessus élimine TOUTE chaîne de requête. Cette version supprimera simplement l'argument '_ga'. 

$urlA = parse_url($_SERVER['REQUEST_URI']);
$qs = $urlA['query'];
if (preg_match('/_ga=/',$qs)) {
   $url = $urlA['path'];
   $newargs = array();
   $QSA = preg_split('/\&/',$qs);
   foreach ($QSA as $e) {
      list($arg,$val) = preg_split('/\=/',$e);
      if ($arg == '_ga') continue; # get rid of this one
      $newargs[$arg] = $val;
   }
   $nqs = http_build_query($newargs);
   header( "refresh:1;url=${url}?${nqs}" );
}
1
Mark

Vous ne pouvez pas supprimer le paramètre _ga de l'URL sur le site Web ... MAIS vous pouvez utiliser un filtre avancé dans Google Analytics pour supprimer le paramètre de requête des rapports!

Comme ça:

1) Champ A: URI de la demande 

Motif: ^ (. +) \? _ Ga

2) champ B: non nécessaire

3) Sortie vers -> Constructeur 

Champ: URI de la demande 

Modèle: $ A1

Ce filtre supprime tous les paramètres de requête lorsque _ga est le premier paramètre affiché. Vous pouvez obtenir beaucoup plus sophistiqué avec la regex, mais cette approche devrait fonctionner pour la plupart des sites Web.

1
Andrew C

J'utilise HTML5 history.replaceState() pour masquer la chaîne de requête GA dans la barre d'adresse du navigateur.

Cela nécessite que je construise une nouvelle URL avec la valeur _ga= supprimée (vous pouvez le faire dans votre langue préférée), puis que je l'appelle simplement.

Cela ne modifie que l'URL dans la barre d'adresse (et dans l'historique du navigateur). Google Analytics reçoit toujours les informations transmises via la chaîne de requête, votre suivi fonctionne donc toujours.

Je le fais dans un Go html/template:

{{if .URL.RawQuery}}
<script>
window.history.replaceState({}, document.title, '{{.ReplacedURL}}');
</script>
{{end}}
1
Michael Hampton

Voir cette page: https://support.google.com/tagmanager/answer/6107124?hl=fr & Rechercher "use hash as delimiter"

La définition de cette valeur sur true vous permet de transmettre la valeur via une balise de hachage au lieu d'un paramètre de requête.

Devrait le réparer

0
Dave R