web-dev-qa-db-fra.com

Comment suivre les sous-domaines avec Google Analytics tout en ayant la redirection mod_rewrite vers un sous-domaine?

Lorsque les utilisateurs viennent directement à domain.com ou www.domain.com, je les redirige vers shop.domain.com via cette réécriture .htaccess:

RewriteEngine on
RewriteCond %{HTTP_Host} ^www.domain.com$ [OR]
RewriteCond %{HTTP_Host} ^domain.com$ 
RewriteRule ^(.*)$ http://shop.domain.com/ [R=301,L]

Le contenu proposé par shop.domain.com a les paramètres de code de suivi suivants:

var _gaq = _gaq || [];
_gaq.Push(['_setAccount', 'UA-123456-6']);
_gaq.Push(['_setDomainName', '.domain.com']);
_gaq.Push(['_trackPageview']);

Toutes les visites directes qui parviennent à shop.domain.com à la suite de la réécriture de domain.com sont suivies en tant que trafic de renvoi, affichant mon propre domain.com en tant que source de renvoi dans Google Amalytics.

Je voudrais suivre ces visites en tant que trafic direct.

Comment changer la configuration pour suivre le trafic mod_rewritten sur mon sous-domaine provenant de mon propre domaine en tant que trafic direct?

4
Marek

Au lieu de remplacer les informations du référent, vous devez ajouter le sous-domaine à la liste des référents ignorés par Google Analytics.

Vous pouvez le faire en utilisant la méthode _ addIgnoredRef () dans l'API GA.

Description de la méthode par Google:

_ addIgnoredRef ()

Exclut une source en tant que site référent. Utilisez cette option lorsque vous souhaitez définir certains liens de référence en tant que trafic direct, plutôt qu'en tant que sites de référence. Par exemple, votre société peut posséder un autre domaine que vous souhaitez suivre en tant que trafic direct afin qu'il n'apparaisse pas dans les rapports "Sites de référence". Les demandes provenant de références exclues sont toujours comptabilisées dans le nombre total de pages vues.

http://code.google.com/apis/analytics/docs/gaJS/gaJSApiSearchEngines.html#_gat.GA_Tracker_._addIgnoredRef

Remarque: Les exemples donnés par Google peuvent ne pas être corrects à 100%. Consultez le lien suivant pour une discussion détaillée et un exemple de mise en œuvre:

http://www.roirevolution.com/blog/2011/01/google_analytics_subdomain_tracking.php

3
Ciaran

L'exemple suivant explique comment conserver le référent lors du passage de http à https.

Dans votre .htaccess:

RewriteEngine on
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://%{SERVER_NAME}/$1?referrer=%{HTTP_REFERER} [L,QSA,R=301]

L'appel de Google Analytics:

(function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
(i[r].q=i[r].q||[]).Push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
})(window,document,'script','https://www.google-analytics.com/analytics.js','ga');
ga('create', 'UA-xxx-y', 'auto');
ga('set', 'anonymizeIp', true);
try {
  var match = /.*[?&]referrer=(.*)/.exec(window.location.href);
  if (match && match.length > 1) {  
      var _from = decodeURIComponent(match[1]);
      if (_from && _from.length > 0) {
          console.log('Override referrer:', _from);
          ga('set', 'referrer', _from);
      }
  }
} catch (err) { ; }
ga('send', 'pageview');
2
Holtwick

Vous pouvez remplacer le référent utilisé par Google Analytics. Pour en savoir plus, consultez la documentation de _ setReferrerOverride .

Pour fournir ce référent correct, vous devez le transmettre via la redirection 301. Je peux suggérer d'ajouter un paramètre de requête à votre URL redirigée et d'écrire un extrait de code javascript qui extraira cette information du document.location.

Exemple d’ajout de javascript à votre code GA:

var _gaq = _gaq || [];
_gaq.Push(['_setAccount', 'UA-XXXXXXXX-1']);
var _from = unescape(window.location.href.replace(/.*[?&]from=(.*)/,'$1'));
if (_from && _from.length > 0) {
  _gaq.Push(['_setReferrerOverride',_from]);
}
_gaq.Push(['_trackPageview']);

Et, un exemple d'utilisation de mod_rewrite pour transférer le référent, si un référent existe:

RewriteCond %{HTTP_Host} ^domain.com\.com$ [NC]
RewriteCond %{HTTP_REFERER} !^$
RewriteCond %{HTTP_REFERER} (.*)
RewriteRule ^(.*)$ http://shop.domain.com/$1?from=%1 [R=301,QSA,L]

RewriteCond %{HTTP_Host} ^domain\.com$ [NC]
RewriteRule ^(.*)$ http://shop.domain.com/$1 [R=301,L]

Vous devrez également répéter ce qui précède pour www.domain.com.

2
Evgeny