Die Bedeutung des Überweisers
In der HTTP -Anforderung befindet sich ein Referer -Header, der die Quelle des aktuellen Verkehrs angibt. Klicken Sie beispielsweise auf einen Link unter www.sina.com.cn/sports/, um die Homepage von ccTV.com zu erreichen. Anschließend ist der Referer www.sina.com.cn/sports/. In JavaScript können wir die gleichen Informationen über document.referrer erhalten. Durch diese Informationen können wir wissen, welchen Kanal die Besucher auf die aktuelle Seite kommen. Dies ist sehr wichtig für Webanalysen.
Aus verschiedenen Gründen ist der in JavaScript gelesene Empfehler jedoch manchmal eine leere Zeichenfolge. Lassen Sie uns zusammenfassen, welche Umstände der Überweisender verloren gehen werden.
Ändern Sie das Standortobjekt für die Seitennavigation
Das Standortobjekt ist ein sehr praktisches Objekt für die Seitennavigation. Weil er es Ihnen erlaubt, nur einen Teil der URL zu ändern. Wenn Sie beispielsweise vom CN -Domain -Namen zum COM -Domain -Namen wechseln, bleiben andere Teile unverändert:
Die Codekopie lautet wie folgt:
window.location.hostname = "example.com";
Das Ändern der Methode der Seitennavigation durch Seitennavigation führt jedoch zum Verlust des Überweisers unter dem IE.
Rückgabe leere Zeichenfolge unter IE5.5+
Chrome 3.0+, Firefox 3.5, Opera9.6, Safari 3.2.2 kehren alle normal zur Quellwebseite zurück
Öffnen Sie ein neues Fenster von window.open
Beispiel:
Die Codekopie lautet wie folgt:
<a href = "#" onclick = "window.open ('http://www.google.com')"> garge google </a> zugreifen
Durch Klicken auf diesen Link werden die Google -Website in einem neuen Fenster geöffnet.
Die Codekopie lautet wie folgt:
JavaScript: Alert (Dokument.Referrer)
Testergebnisse:
Rückgabe leere Zeichenfolge unter IE5.5+
Chrome 3.0+, Firefox 3.5, Opera9.6, Safari 3.2.2 kehren alle normal zur Quellwebseite zurück
Wenn es auf diese Weise unter demselben Domänennamen umgeleitet wird, können wir auf das Objekt windoww.opener zugreifen, um die verlorenen Empfehlungsinformationen zu erhalten. Der Code ist wie folgt:
Die Codekopie lautet wie folgt:
<script type = "text/javaScript">
var referrer = document.referrer;
if (! Referrer) {
versuchen {
if (window.opener) {
// Wenn Cross-Domain unter dem IE eine Erlaubnisausnahme ausgelöst wird
// Safari und Chrome haben keine Eigenschaften
referrer = window.opener.location.href;
}
}
fangen (e) {}
}
</script>
Wenn Sie die Domain überqueren, werden Sie hilflos ~ sein ~
Ziehen Sie die Maus, um ein neues Fenster zu öffnen
Mouse Drag and Drop ist heutzutage eine sehr beliebte Benutzergewohnheit. Die auf diese Weise geöffneten Seiten sind jedoch im Grunde genommen alle Empfehlungen verloren. Darüber hinaus ist es in diesem Fall unmöglich, das Fenster zu verwenden. Opener -Methode, um den verlorenen Empfehler zu erhalten.
Getestet:
Maxthon 2.5.2, FireGesture Plugin für Firefox, Chrome 3.0+, Opera 9.6, Safari 3.2.
Klicken Sie auf den internen Link von Flash
Wenn Sie auf Flash klicken, um eine andere Website zu erreichen, ist die Situation von Referrer chaotischer.
In IE ist der Wert durch das Dokument. Referrer des Clients JavaScript ist leer. Wenn Sie jedoch die Verkehrsüberwachungssoftware verwenden, werden Sie feststellen, dass der Referenten -Header in der HTTP -Anfrage tatsächlich einen Wert hat. Dies kann ein Fehler in der IE -Implementierung sein. Gleichzeitig verweist dieser Wert auf die Adresse der Flash -Datei, nicht auf die Adresse der Quellwebseite.
Nach dem Klicken auf Flash unter Chrome 4.0, um ein neues Fenster zu erreichen, verweist Referrer auch auf die Adresse der Flash -Datei, nicht auf die Adresse der Quellwebseite.
Chrome 3.0 und Safari 3.2 sind gleich und beide verlieren Empfehlungsinformationen.
Opera, wie Firefox, ist der Wert des Empfehlers die Adresse der Quellwebseite.
Https springen zu http
Wenn der Browser von einer HTTPS -Website zu einer HTTP -Website springt, sendet er keinen Empfehler. Das Verhalten dieser großen Browser ist das gleiche.
Wenn wir beispielsweise Google Reader oder Google Mail unter HTTPS verwenden, klicken wir auf einen Link, um auf eine andere Website zu gehen.
Die Auswirkungen des Empfehlungsverlusts auf die Werbeverkehrsüberwachung
Wenn der Empfehler verloren geht, verliert Webanalytics einen sehr wichtigen Teil der Informationen, insbesondere für den Werbeverkehr. Es ist unmöglich, die tatsächliche Quelle zu kennen. Gegenwärtig verwenden viele Websites in China, die Google AdSense -Werbung verwenden. Open, um Anzeigenverbindungen zu öffnen. . Viele Verkehrsstatistik -Tools klassifizieren daher diesen Teil des Datenverkehrs als "direkter Verkehr", was den Benutzern entspricht, die die URL direkt eingeben.
In diesem Fall ist es erforderlich, dass der AD -Plagiat der URL der Zielseite beim Servieren der Anzeige spezifische Tracking -Parameter hinzufügen kann.
Wenn beispielsweise eine Flash -Anzeige angeklickt wird, wird die URL unter http://www.example.com/ ankommen, um zu überwachen, von dem dieser Datenverkehr stammt, können wir die Lande -URL dieses Ortes ändern und sie an ändern und an diese ändern und sie an ändern und sie an ändern und sie an ändern und sie an ändern und sie an ändern und sie an ändern können und an diese zu ändern, um sie zu ändern und an zu ändern, um sie an zu ändern und auf http: // www.example.com/?src=sina, ähnlich wie diese Methode, und dann verwenden Sie JavaScript Code, um diesen SRC -Parameter auf der Zielseite zu extrahieren, damit Sie die Quellinformationen der Anzeige erhalten können.
Wenn Sie Google AdWords bedienen, verfügt das Hintergrundsystem über eine Option "Auto -Tag". und AdWords Ad Backend. Auf diese Weise können Sie wissen, welcher Kampagne der Anzeigenverkehr entspricht, welche Anzeigenquelle und Anzeigenschlüsselwörter und andere Informationen. Es ähnelt tatsächlich der oben genannten Idee. Es ist nur so, dass Google automatisch URL -Änderungen für Sie vorgenommen hat.
Lösung zum leeren Referator unter IE
Wenn die Methode "window.location.href" verwendet wird, um IE zu springen, ist der Refererwert leer. Und wenn der Referer in das Tag springt, ist der Referator nicht leer. Der folgende Code kann also dieses IE -Problem lösen
Die Codekopie lautet wie folgt:
Funktion gotOurl (url) {
if (window.vbarray) {
var gotolink = document.createelement ('a');
gotolink .tref = url;
document.body.appendchild (gotolink);
gotolink .click ();
}anders{
window.location.href = url;
}
}
Verbot Browser, den Referater beim Zugriff auf Links nicht zu bringen
Wenn wir auf einen Link von einer Website klicken, um eine andere Seite einzugeben, fügt der Browser dem Header einen Refererwert hinzu, um die Quellseite dieses Besuchs zu identifizieren. Aber diese Art von Logo kann die Privatsphäre von Nutzern auslaufen.
• Verwenden Sie die neu hinzugefügte HTML5 -Lösung. Verwenden Sie Rel = "Noreferrer", um das Verbindungsattribut als Noreferrer zu deklarieren.
• Verwenden Sie eine Zwischenseite, senden Sie jedoch tatsächlich einen Empfehler, z.
• Verwenden Sie das JavaScript -Protokoll, um sie zu übertragen. Siehe die folgenden Anweisungen.
Ein neues Fenster entspricht Target = "_ leer":
Die Codekopie lautet wie folgt:
Funktion open_window (link) {
var arg = '/u003cscript/u003Location.replace("'+Link+'")/U003C/Script/U003E';
window.open ('javaScript: window.name;', arg);
}
</Code>
Das Wenden einer Verbindung entspricht Target = "_ Selbst":
Die Codekopie lautet wie folgt:
Funktion revirct (link) {
var arg = '/u003cScript/u003etop.location.replace ("'+link+'")/u003c/script/u003e';
var iframe = document.createelement ('iframe');
iframe.src = 'javaScript: window.name;';
iframe.name = arg;
document.body.appendchild (iframe);
}
</Code>