2010-01-17 11 views
12

Warum fordert Google Analytic eine GIF-Datei an?Warum fordert Google Analytic eine GIF-Datei an?

Liegt daran, dass die GIF den Zugriff auf mehr Daten als JavaScript allein ermöglicht. Ist es die IP-Adresse des Benutzers zu bekommen?

+0

"Alle, die ich implementiert habe, waren nur JavaScript" Warum stellen Sie dann diese Frage, wenn es kein gif verwendet? –

+2

@ Chacha102: Das Analytics-JavaScript stellt eine Anfrage an ein GIF-Bild. –

+0

@ Chacha102: Chechl Google-Seite über die GIF-Anfrage strucuture. http://code.google.com/intl/en-US/apis/analytics/docs/tracking/gaTrackingTroubleshooting.html#gifParameters – GmonC

Antwort

14

Auch bei aktiviertem JavaScript fordert Analytics eine GIF-Datei an. Wenn Sie sich die GET-Parameter des Bildes ansehen, enthält es viele Informationen über den Browser. Sachen wie utmsr=1280x1024 (die Bildschirmgröße). Google Code hat eine list of parameters.

Es verwendet die Bildanforderung, um Informationen über den Browser ohne XMLHttpRequest zu senden.

Nun, um tatsächlich die ursprüngliche Frage zu beantworten, wird Google dies wahrscheinlich um cross-domain XMLHttpRequest Einschränkungen umgehen.

+2

Ich glaube, dass Google eine Bildanfrage verwendet, einfach weil sie keine Informationen erhalten müssen. nur senden. Eine Bildanforderung ist die einfachste Möglichkeit, dies zu tun. – mylesmg

16

Googles Javascript muss die Details Ihrer Seitenansicht zu ihren Servern etwas wie übertragen. Ajax kann nicht domänenübergreifend verwendet werden. Die einzige Möglichkeit, die Informationen zu übermitteln, besteht darin, eine Datei von einem Google-Server anzufordern und die erforderlichen Informationen in der Abfragezeichenfolge anzugeben. Um dies zu erleichtern, muss irgendeine Form von Inhalt unter Verwendung eines Standard-HTML-Tags angefordert werden. Der einfachste Weg, dies zu tun, ohne die Seite selbst zu beeinflussen, ist ein 1x1 transparentes gif zu laden. Beachten Sie, dass im Falle des Google-Skripts (und anderer) dieses Bild nicht wirklich zur Seite hinzugefügt wird. Es wird lediglich über eine JavaScript-Anweisung geladen

Dies lädt das Bild, ohne es auf der Seite hinzuzufügen. Die Informationen könnten auch einen Skript-Tag wie so geladen werden:

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

jedoch Benutzer sind eher Javascript als Bilder sperren lassen, so dass die sicherere Route ist ein Bild zu beantragen. Warum ein GIF anstelle eines JPGs verwendet wird, ist ein GIF sicherer, wenn ein Rogue-Browser das Bild tatsächlich zur Seite hinzufügt. Es ist unwahrscheinlich, dass das transparente GIF das Layout negativ beeinflusst, da ein 1x1-Jpg einen 1-Pixel-Punkt irgendwo auf der Seite belassen würde.

Bearbeiten: Um meinen Kommentar zu Benutzern hinzuzufügen, die Javascript blockiert haben, kann eine Gif-Anfrage, die statische Informationen enthält, in ein Noscript-Tag eingefügt werden, um einfaches Tracking auch für den Fall zu ermöglichen, dass JavaScript deaktiviert ist. Soweit ich weiß, tut GA dies nicht, aber einige andere Webanalyse-Anbieter tun dies.

12

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

Die kleinste transperant GIF ist 43 Bytes.

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

Die kleinste transperant PNG-24 (die von älteren Browsern nicht zu angezeigt) ist 67 Bytes.

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

Die kleinste (opak) ist JPEG 134 Bytes.

Die Mathematik ist einfach! Größere Größe = mehr Kosten.

+3

** 67 ** Bytes, nicht 73 Bytes. Sie müssen den ganzen Weg bis zum Ende für die Pointe lesen! –

1
  1. können Sie die __utm verwenden.gif-Tracker ohne Javascript (w einige Server-Hilfe)

  2. Sie es in einer E-Mail (w einige programmatische Hilfe vor dem Senden der E-Mail) können

  3. Urchin entwickelt wurde, bevor AJAX populär war (2005)

Es hat nichts mit Cross-Domain zu tun. Sie hätten JSONP dafür verwenden können.

+0

JSONP dient zum Abrufen von Daten und Google Analytics muss nur Daten übertragen. – alex

+2

Das Image-Tag dient zum Abrufen von Daten und OH WAIT. Sie können Querystring-Parameter in eine JSONP-Anfrage genauso eingeben wie für ein Bild ... und eine 204 zurückgeben –

Verwandte Themen