// Name des Tracking Servers var RFA_TRACKING_HOSTNAME = 'r.refinedads.com'; // Wird der Tracking Server �ber HTTP oder HTTPS aufgerufen if (window.location && window.location.protocol && window.location.protocol == 'https:') { var RFA_TRACKING_URL = 'https://' + RFA_TRACKING_HOSTNAME; } else { var RFA_TRACKING_URL = 'http://' + RFA_TRACKING_HOSTNAME; } // Parser f�r die Splittung der URLs (Ebenen c1, c2, c3). Domains als Kleinbuchstaben normalisiert und ggf. vorhandene Punkte am Ende entfernt. RFA_Url_Parser = function(url){ this.url = url; this.parseUrl(url); } RFA_Url_Parser.prototype.regexp = /(https?:\/\/)([a-zA-Z0-9_\-\.]+[a-zA-Z]+)\.?(:[0-9]+)?\/?(.*)?/ RFA_Url_Parser.prototype.parseUrl = function(url){ result = this.url.match(this.regexp); if (!result){ result = []; } this.scheme = result[1] || ""; this.host = result[2] || ""; this.port = result[3] || ""; this.path = result[4] || ""; return this; } RFA_Url_Parser.prototype.getQueryValue = function(key){ key = key.replace(/[\[]/,"\\\[").replace(/[\]]/,"\\\]"); var regexS = "[\\?&]"+key+"=([^&#]*)"; var regex = new RegExp(regexS); var results = regex.exec(this.url); if( results == null ){ return ""; } else { return decodeURIComponent(results[1]); }} RFA_Url_Parser.prototype.getHost = function(){ if (this.host){ return this.host.toLowerCase(); } return "" } RFA_Url_Parser.prototype.getPath = function(){ if (this.path){ var testPath = "/" + this.path; if (testPath.indexOf("#") != -1){ testPath = testPath.substr(0, testPath.indexOf("#")); } if (testPath.indexOf("?") != -1){ return testPath.substr(0, testPath.indexOf("?")); } return testPath; } return "/" } RFA_Url_Parser.prototype.getTLD = function(){ if (!this.host){ return ""; } var hostParts = this.host.toLowerCase().split(".").reverse(); var tldParts = [hostParts[0]]; if (hostParts[1]){ tldParts.push(hostParts[1]); } if (tldParts.join(".").length <= 5 && hostParts[2]){ tldParts.push(hostParts[2]); } return tldParts.reverse().join(".");} function RFA_Cookie_Get(key){var i,j,c,all=document.cookie.split(";");for (i=0;i'); } // var siteParser = new RFA_Url_Parser(document.location.href); var referrerUrl = document.referrer; // Wenn es einen Referer gibt if (referrerUrl) { // Referer URL splitten var referrerParser = new RFA_Url_Parser(referrerUrl); // Traffic vom selben Hostname. Wenn der Traffic vom selben Host kommt, nicht ausl�sen. // Beispiel:User navigiert innerhalb verschiedener Seiten von "shop.beispiel.de" und das Pixel ist auf allen Seiten eingebaut. Wechselt er auf "test.beispiel.de" (SEO/Generic-Pixel ist hier eingebaut), ist "shop.beispiel.de" der Referer, der gez�hlt wird. // Es kann hier per Definition auch die TLD (Top Level Domain) eingetragen werden, wenn dies gew�nscht ist. (ACHTUNG: Domains mit co.uk) Beipiel: User kommt auf "shop.beispiel.de" navigiert innerhalb und wechselt dann auf "test.beispiel.de" (SEO/Generic-Pixel ist hier eingebaut). Es wird kein Referer gez�hlt, da beides "beispiel.de". if (siteParser.getHost() == referrerParser.getHost()) { return; } // �berpr�fe ob: Bazahlter Traffic und nicht in Referer Acknowledge Liste if (!(window.RFA_ACKNOWLEDGE_REFERRER_HOSTNAMES && RFA_ACKNOWLEDGE_REFERRER_HOSTNAMES.length > 0 && RFA_ACKNOWLEDGE_REFERRER_HOSTNAMES.join(" ").indexOf(referrerParser.getHost()) != -1) && window.RFA_IGNORE_CGI_PARAMETER && RFA_IGNORE_CGI_PARAMETER.length > 0) { for (var i = 0; i < RFA_IGNORE_CGI_PARAMETER.length; i++) { if (siteParser.getQueryValue(RFA_IGNORE_CGI_PARAMETER[i]) != "") { // Bezahlter Traffic return; } } } // Traffic von (Sub)Domains aus der Referer Ignore Liste. Traffic aus der Referer Ignore Liste l�st den Pixel nicht aus. if (window.RFA_IGNORE_REFERRER_HOSTNAMES && RFA_IGNORE_REFERRER_HOSTNAMES.length > 0 && RFA_IGNORE_REFERRER_HOSTNAMES.join(" ").indexOf(referrerParser.getHost()) != -1) { return; } //Hier beginnt der eigentliche Trackingteil: Ist der Hostname zu kurz, wird der Pixel nicht ausgel�st. Stellt sicher, dass nur sinnvolle Referer ausgewertet werden. var hostName = referrerParser.getHost(); var hostParts = hostName.split(".").reverse(); // Hostname zu kurz if (hostParts.length < 2) { return; } // Wenn der Referer einer der drei genannten Suchmaschinen ist, l�st der Pixel aus und die Ebenen c1, c2 und c3 werden in Refined Ads erstellt. var searchEngines = ['Google', 'Yahoo', 'Bing']; for (var i = 0; i < searchEngines.length; i++) { // �berpr�ft, ob der Hostname den Namen der Suchmaschine an zweitletzter Stelle enth�lt (wenn co.uk an drittletzter). if (hostParts[1] == searchEngines[i].toLowerCase() || (hostParts.length > 2 && hostParts[2] == searchEngines[i] && hostParts[0] == "uk" && hostParts[1] == "co")) { // Trackt den Referer Host und die Suchanfrage trackUrl(RFA_SEO_AID, RFA_OID, searchEngines[i], hostName, referrerParser.getQueryValue("q")); return; } } // Die aufgelisteten Suchmaschinen wurden nicht gefunden: // Struktur f�r Referer, die nicht die drei Suchmaschinen sind trackUrl(RFA_GENERIC_AID, RFA_OID, referrerParser.getTLD(), referrerParser.getHost(), referrerParser.getPath()); return; } else { // Typeins/Bookmarks oder blockierte Referer if (window.RFA_IGNORE_CGI_PARAMETER && RFA_IGNORE_CGI_PARAMETER.length > 0) { for (var i = 0; i < RFA_IGNORE_CGI_PARAMETER.length; i++) { if (siteParser.getQueryValue(RFA_IGNORE_CGI_PARAMETER[i]) != "") { // Bezahlter Traffic ohne Referer oder Bookmark return; } } } // Struktur f�r diese Art Traffic trackUrl(RFA_DIRECT_AID, RFA_OID, "Direct", "default", "default"); return; } }; RFA_SEO_GENERIC_Tracking();