6 Stimmen

Wie funktioniert die Google Analytics In-Page-Analyse?

Google Analytics bietet eine "In-Page-Analytics"-Ansicht, die Klickraten und andere Informationen direkt auf Ihrer eigenen Website anzeigt. Ich möchte etwas Ähnliches entwickeln, das alle Klicks protokolliert.

Das Problem ist, dass ich mir nicht sicher bin, wie Google seine In-Page-Analytics-Ansichten implementiert - sie scheinen einen oder zwei iframe zu verwenden und haben ihr eigenes HTML und JavaScript in andere Seiten injiziert.

Wie kann man so etwas machen - sind iframes der beste Weg? Wie würden Sie die Sicherheitsrichtlinien gleicher Herkunft von Javascript umgehen, wenn DomainX versucht, das Rendering von DomainY zu manipulieren?

9voto

Timo Punkte 653

Dies ist eine sehr interessante Frage. Sie haben Recht, die gleiche Herkunftsrichtlinie verbietet das Einfügen von JS. Aber Google Analytics hat einen Vorteil: Es befindet sich bereits auf Ihrer Website (der Tracker-Code).

So funktioniert es also (soweit ich sehen kann):

  • Wenn Sie die In-Page-Analyse öffnen, gelangen Sie zunächst zu https://www.google.com/analytics/reporting/iyp_launch
  • Diese Seite leitet zu Ihrer Website weiter und fügt der URL eine Google-Sitzung hinzu (wie http://example.com/#gaso=THESESSION
  • Der Tracker prüft nun, ob der Referrer iyp_launch ist und gaso gesetzt ist. Wenn ja, lädt er nicht nur den Tracker, sondern injiziert auch das JS, das für die Abfrage weiterer Daten und das Rendering der Overlays benötigt wird. Auf diese Weise wird das JS innerhalb des Frames (oder Fensters) ausgeführt und umgeht die same-origin policy.
  • Da Google Anaytics Ihren Besuch bereits verfolgt (d. h. Sie als denselben Nutzer identifiziert, der die vorherige Seite angesehen hat), kann es von da an das zusätzliche JS zusammen mit dem Tracker einfügen, bis Ihr Besuch beendet ist (d. h. Sie die Seite schließen). Auf diese Weise können die Overlays erneut gerendert werden, nachdem Sie auf einen Link geklickt haben.

Ich denke, die Quintessenz ist also folgende: Dinge wie In-Page-Analysen können durchgeführt werden, wenn der Eigentümer der Website Ihnen bereits vertraut hat, indem er ein von Ihnen kontrolliertes Skript in seine Website einfügt (dies ist ein gutes Beispiel dafür, warum man sehr vorsichtig sein sollte, bevor man so etwas tut). Wenn Sie keinen derartigen Zugriff auf die Website haben, ist es möglicherweise unmöglich, die Same-Origin-Policy zu umgehen - zumindest fällt mir keine andere Möglichkeit ein (außer vielleicht, alle Anfragen über Ihren Server zu leiten, aber das führt zu anderen großen Problemen).

-1voto

Alxandr Punkte 12231

I denken kann dies ganz einfach geschehen. Sie injizieren Javascript, das dafür sorgt, dass jedes Mal, wenn ein Benutzer auf einen Link klickt, eine spezielle Seite im Iframe angefordert/gepostet wird. Etwas wie dieses (jquery):

$('a').live('click', function() {
    $('#' + iframeid).attr('http://somedomain.com/my_magic_page.php?linkClicked=' + $(this).attr('id') + '&page=' + window.location.toString());
}

Ich weiß aber nicht, ob es funktioniert.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X