Важность реферала
В HTTP -запросе есть заголовок реферала, который указывает источник текущего трафика. Например, нажмите на ссылку на www.sina.com.cn/sports/, чтобы добраться до домашней страницы cctv.com, а затем рефератель www.sina.com.cn/sports/. В JavaScript мы можем получить ту же информацию через Document.ReferRer. Благодаря этой информации мы можем знать, какой канал посетители приходят на текущую страницу. Это очень важно для веб -аналитики.
Однако по разным причинам иногда реферат, прочитанная в JavaScript, является пустой строкой. Давайте суммируем, какие обстоятельства будут потеряны.
Изменить объект местоположения для навигации страницы
Объект местоположения является очень практичным объектом для навигации по странице. Потому что он позволяет вам изменить только часть URL. Например, переключитесь с доменного имени CN на доменное имя COM, другие части остаются неизменными:
Кода -копия выглядит следующим образом:
window.location.hostname = "example.com";
Тем не менее, изменение метода навигации по странице по навигации на странице приведет к потере рефератора в соответствии с т.е.
Вернуть пустую строку под IE5.5+
Chrome 3.0+, Firefox 3.5, Opera9.6, Safari 3.2.2 Все возвращаются на веб -страницу Source Обычно
Откройте новое окно от window.open
Пример:
Кода -копия выглядит следующим образом:
<a href = "#" onclick = "window.open ('http://www.google.com')"> Доступ к Google </a>
Нажатие этой ссылки откроет веб -сайт Google в новом окне.
Кода -копия выглядит следующим образом:
JavaScript: Alert (Document.ReferRer)
Результаты теста:
Вернуть пустую строку под IE5.5+
Chrome 3.0+, Firefox 3.5, Opera9.6, Safari 3.2.2 Все возвращаются на веб -страницу Source Обычно
Если он перенаправлен таким образом под одним и тем же доменным именем, мы можем получить доступ к объекту Windoww.opener, чтобы получить информацию о потерянном рефератере. Код заключается в следующем:
Кода -копия выглядит следующим образом:
<script type = "text/javascript">
var Referrer = Document.ReferRer;
if (! Реферат) {
пытаться {
if (window.opener) {
// Если поперечное домен под т.е.
// Safari и Chrome не имеют свойств
Реферат = window.opener.location.href;
}
}
поймать (e) {}
}
</script>
Если вы пересечь домен, вы будете беспомощны ~
Перетащите мышь, чтобы открыть новое окно
В настоящее время мышиная перетаскивание-очень популярная привычка пользователя. Тем не менее, страницы открылись таким образом, в основном все реферат потерян. Более того, в этом случае невозможно использовать метод окна. Для получения потерянного реферала.
Проверено:
Maxthon 2.5.2, плагин FireGesture для Firefox, Chrome 3.0+, Opera 9,6, Safari 3.2.
Нажмите на внутреннюю ссылку Flash
Когда вы нажимаете на Flash, чтобы добраться до другого веб -сайта, ситуация реферера более грязная.
IE, значение, прочитанное в документе. Это может быть ошибка в реализации IE. В то же время это значение указывает на адрес флэш -файла, а не на адрес исходной веб -страницы.
После нажатия Flash под Chrome 4.0, чтобы добраться до нового окна, реферар также указывает на адрес файла Flash, а не на адрес исходной веб -страницы.
Chrome 3.0 и Safari 3.2 одинаковы, и оба потеряют информацию реферера.
Опера, как и Firefox, значение рефератора является адресом исходной веб -страницы.
Https прыгайте в http
При переходе с веб -сайта HTTPS на веб -сайт HTTP браузер не отправит реферала. Поведение этих основных браузеров одинаково.
Например, когда мы используем Google Reader или Gmail под HTTPS, мы нажимаем на ссылку, чтобы перейти на другой веб -сайт.
Влияние потери рефераров на мониторинг рекламного трафика
Если реферат потерян, веб -аналитика потеряет очень важную часть информации, особенно для рекламного трафика, невозможно узнать фактический источник. В настоящее время многие веб -сайты в Китае, которые используют Google Adsense, используют окно для открытия рекламных ссылок, поэтому реферат будет потерян в соответствии с IE. Полем Следовательно, многие инструменты статистики трафика будут классифицировать эту часть трафика как «прямой трафик», что эквивалентно пользователям, набирающим URL напрямую.
В этом случае необходимо позволить AD Plagiar добавлять конкретные параметры отслеживания в URL -адрес целевой страницы при обслуживании рекламы.
Например, если нажимается на флэш -объявление, URL -адрес http://www.example.com/. http: // www.example.com/?src=sina, аналогично этому методу, а затем используйте код JavaScript для извлечения этого параметра SRC на целевой странице, чтобы вы могли получить исходную информацию AD.
При обслуживании Google AdWords есть параметр «Автофейс». и AdWords AD Backend. Таким образом, вы можете знать, к какой кампании соответствует рекламный трафик, какую рекламу источника и ключевых слов объявлений и другой информации. На самом деле это похоже на идею, упомянутую выше. Просто Google автоматически внес для вас изменения URL -адреса.
Решение пустого реферата под т.е.
Если метод window.location.href используется для прыжков в IE, значение реферала пусто. И если реферат прыгнет в тег, реферат не будет пустым. Итак, следующий код может решить эту проблему, т.е.
Кода -копия выглядит следующим образом:
функция gotourl (url) {
if (window.vbarray) {
var gotolink = document.createElement ('a');
gotolink .href = url;
document.body.appendchild (gotolink);
gotolink .click ();
}еще{
window.location.href = url;
}
}
Запрещайте браузеры, чтобы не приносить реферика при доступе к ссылкам
Когда мы нажимаем по ссылке с одного веб -сайта, чтобы ввести другую страницу, браузер добавит значение рефериста в заголовок, чтобы определить страницу источника этого посещения. Но этот вид логотипа может утечь конфиденциальность пользователей.
• Используйте недавно добавленное решение HTML5, используйте REL = "NoreferRer", чтобы объявить атрибут соединения как NoreferRer.
• Используйте промежуточную страницу, но фактически отправьте рефератора, например, использование рулевого управления Google подключения, noreferrer.js.
• Используйте протокол JavaScript для ссылки на передачу, см. Инструкции ниже.
Новое окно эквивалентно target = "_ blank":
Кода -копия выглядит следующим образом:
функция open_window (link) {
var arg = '/u003cscript/u003location.replace("'+link+'")/u003c/script/u003e';
window.open ('javascript: window.name;', arg);
}
</Code>
Обращение к соединению эквивалентно target = "_ self":
Кода -копия выглядит следующим образом:
Функция перенаправления (ссылка) {
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>