20 votes

Pourquoi Google Analytic demande-t-il un fichier GIF ?

Pourquoi Google Analytic demande-t-il un fichier GIF ?

Est-ce parce que le GIF permet d'accéder à plus de données que le JavaScript seul. Est-ce pour obtenir l'adresse IP de l'utilisateur ?

21voto

Chris Points 14136

Le javascript de Google doit transmettre les détails de la consultation de votre page à ses serveurs d'une manière ou d'une autre. Ajax ne peut pas être utilisé entre les domaines, de sorte que le seul moyen de transmettre les informations est de demander un fichier à un serveur Google, en transmettant les informations nécessaires dans la chaîne de requête. Pour ce faire, une forme de contenu doit être demandée à l'aide d'une balise HTML standard. Le moyen le plus simple de le faire sans affecter la page elle-même est de charger un gif transparent de 1x1. Notez que dans le cas du script de Google (et d'autres), cette image n'est pas réellement ajoutée à la page. Elle est simplement chargée via une instruction javascript

var img1 = new Image();
img1.src = 'http://path/to/file.gif?otherinfohere';

Cela permet de charger l'image sans l'ajouter à la page. Les informations peuvent également être chargées à l'aide d'une balise script comme suit :

<script src="http://path/to/script.js?otherinfohere" type="text/javascript"><script>

Cependant, les utilisateurs sont plus susceptibles de bloquer le javascript que les images, de sorte que la solution la plus sûre consiste à demander une image. Pour ce qui est de l'utilisation d'un gif plutôt que d'un jpg, le gif est plus sûr au cas où un navigateur malveillant ajouterait l'image à la page. Il est peu probable que le gif transparent ait un impact négatif sur la mise en page, alors qu'un jpg 1x1 laisserait un point d'un pixel quelque part sur la page.

Edit : Pour ajouter à mon commentaire sur les utilisateurs ayant bloqué javascript, une requête gif contenant des informations statiques peut être ajoutée à l'intérieur d'une balise noscript pour permettre un suivi de base même dans le cas où javascript est désactivé. À ma connaissance, GA ne le fait pas, mais d'autres fournisseurs de services d'analyse Web le font.

17voto

Brian McKenna Points 10754

Même si JavaScript est activé, l'analyse demande un fichier GIF. Si vous regardez les paramètres GET de l'image, ils contiennent beaucoup d'informations sur le navigateur. Des choses comme utmsr=1280x1024 (la taille de l'écran). Google Code propose une liste des paramètres .

Il utilise la demande d'image pour envoyer des informations sur le navigateur sans qu'il soit nécessaire d'envoyer une XMLHttpRequest .

Pour répondre à la question initiale, Google agit probablement de la sorte pour contourner le problème de l'accès à l'Internet. interdomaines XMLHttpRequest restrictions.

16voto

Pindatjuh Points 6929

http://www.perlmonks.org/?node_id=7974

Le plus petit GIF transparent est 43 octets .

http://garethrees.org/2007/11/14/pngcrush/

Le plus petit PNG-24 transparent (qui ne peut pas être affiché par les anciens navigateurs) est le suivant 67 octets .

http://www.techsupportteam.org/forum/digital-imaging-photography/1892-worlds-smallest-valid-jpeg.html

Le plus petit JPEG (opaque) est 134 octets .

Le calcul est simple ! Plus grande taille = plus de coûts.

1voto

Neil McGuigan Points 10123
  1. vous pouvez utiliser le tracker __utm.gif sans javascript (avec un peu d'aide sur le serveur)

  2. vous pouvez l'utiliser dans un message électronique (avec un peu d'aide programmatique avant d'envoyer le message)

  3. Urchin a été développé avant que AJAX ne soit populaire (2005).

Cela n'a rien à voir avec le cross-domain. Ils auraient pu utiliser JSONP pour cela.

-1voto

x4u Points 7436

Je suppose qu'il s'agit avant tout d'obtenir un retour d'information de la part des navigateurs qui n'ont pas activé Javascript.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X