ความสำคัญของผู้อ้างอิง
มีส่วนหัวผู้อ้างอิงในคำขอ 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";
อย่างไรก็ตามการแก้ไขวิธีการนำทางหน้าโดยการนำทางหน้าจะส่งผลให้สูญเสียผู้อ้างอิงภายใต้ IE
ส่งคืนสตริงเปล่าภายใต้ IE5.5+
Chrome 3.0+, Firefox 3.5, Opera9.6, Safari 3.2.2 ทั้งหมดกลับไปที่หน้าเว็บต้นทางปกติ
เปิดหน้าต่างใหม่โดย 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 ทั้งหมดกลับไปที่หน้าเว็บต้นทางปกติ
หากมีการเปลี่ยนเส้นทางด้วยวิธีนี้ภายใต้ชื่อโดเมนเดียวกันเราสามารถเข้าถึงวัตถุ Windoww.opener เพื่อรับข้อมูลผู้อ้างอิงที่หายไป รหัสมีดังนี้:
การคัดลอกรหัสมีดังนี้:
<script type = "text/javascript">
var referrer = document.referrer;
if (! referrer) {
พยายาม {
if (window.opener) {
// ถ้าข้ามโดเมนภายใต้ IE จะมีการโยนข้อยกเว้นการอนุญาต
// Safari และ Chrome ไม่มีคุณสมบัติ
referrer = window.opener.location.href;
-
-
จับ (e) {}
-
</script>
หากคุณข้ามโดเมนคุณจะทำอะไรไม่ถูก ~
ลากเมาส์เพื่อเปิดหน้าต่างใหม่
การลากและวางเมาส์เป็นนิสัยของผู้ใช้ที่ได้รับความนิยมอย่างมากในทุกวันนี้ อย่างไรก็ตามหน้าเปิดด้วยวิธีนี้โดยทั่วไปผู้อ้างอิงทั้งหมดจะหายไป ยิ่งไปกว่านั้นในกรณีนี้มันเป็นไปไม่ได้ที่จะใช้ window.pener วิธีการรับผู้อ้างอิงที่หายไป
ทดสอบ:
Maxthon 2.5.2, ปลั๊กอิน Firegesture สำหรับ Firefox, Chrome 3.0+, Opera 9.6, Safari 3.2
คลิกที่ลิงค์ภายในของแฟลช
เมื่อคุณคลิกที่แฟลชเพื่อไปยังเว็บไซต์อื่นสถานการณ์ของผู้อ้างอิงจะยุ่งเหยิงมากขึ้น
ใน IE ค่าที่อ่านผ่าน document.referrer ของ JavaScript ไคลเอนต์นั้นว่างเปล่า แต่ถ้าคุณใช้ซอฟต์แวร์การตรวจสอบการจราจรเพื่อดูคุณจะพบว่าในความเป็นจริงส่วนหัวผู้อ้างอิงในคำขอ HTTP มีค่า นี่อาจเป็นข้อผิดพลาดในการใช้งานเช่น ในเวลาเดียวกันค่านี้ชี้ไปที่ที่อยู่ของไฟล์แฟลชไม่ใช่ที่อยู่ของหน้าเว็บต้นทาง
หลังจากคลิกแฟลชภายใต้ Chrome 4.0 เพื่อไปถึงหน้าต่างใหม่ผู้อ้างอิงยังชี้ไปที่ที่อยู่ของไฟล์แฟลชไม่ใช่ที่อยู่ของหน้าเว็บต้นทาง
Chrome 3.0 และ Safari 3.2 เหมือนกันและทั้งคู่จะสูญเสียข้อมูลผู้อ้างอิง
Opera เช่น Firefox ค่าของผู้อ้างอิงเป็นที่อยู่ของหน้าเว็บต้นทาง
https กระโดดไปที่ http
เมื่อกระโดดจากเว็บไซต์ HTTPS ไปยังเว็บไซต์ HTTP เบราว์เซอร์จะไม่ส่งผู้อ้างอิง พฤติกรรมของเบราว์เซอร์ที่สำคัญเหล่านี้เหมือนกัน
ตัวอย่างเช่นเมื่อเราใช้ Google Reader หรือ Gmail ภายใต้ HTTPS เราคลิกที่ลิงค์เพื่อไปที่เว็บไซต์อื่น
ผลกระทบของการสูญเสียผู้อ้างอิงต่อการตรวจสอบปริมาณการโฆษณา
หากผู้อ้างอิงหายไปการวิเคราะห์เว็บจะสูญเสียส่วนที่สำคัญมากของข้อมูลโดยเฉพาะอย่างยิ่งสำหรับการรับส่งข้อมูลการโฆษณามันเป็นไปไม่ได้ที่จะรู้แหล่งที่มาจริง ในปัจจุบันเว็บไซต์หลายแห่งในประเทศจีนที่ใช้หน้าต่างการโฆษณาของ Google Adsense เปิดให้เปิดลิงก์โฆษณาดังนั้นผู้อ้างอิงจะหายไปภายใต้ IE . เครื่องมือสถิติการจราจรจำนวนมากจะจำแนกส่วนนี้ของทราฟฟิกเป็น "ทราฟฟิกโดยตรง" ซึ่งเทียบเท่ากับผู้ใช้ที่พิมพ์ URL โดยตรง
ในกรณีนี้จำเป็นต้องอนุญาตให้โฆษณาลอกเลียนแบบเพิ่มพารามิเตอร์การติดตามเฉพาะลงใน URL ของหน้า Landing Page เมื่อให้บริการโฆษณา
ตัวอย่างเช่นหากมีการคลิกโฆษณาแฟลช URL ที่จะมาถึงที่ http://www.example.com/ http: // www.example.com/?src=sina คล้ายกับวิธีนี้จากนั้นใช้รหัส JavaScript เพื่อแยกพารามิเตอร์ SRC นี้ในหน้า Landing Page เพื่อให้คุณได้รับข้อมูลแหล่งที่มาของโฆษณา
เมื่อให้บริการ Google AdWords ระบบพื้นหลังมีตัวเลือก "แท็กอัตโนมัติ" และแบ็กเอนด์โฆษณา AdWords วิธีนี้คุณสามารถรู้ได้ว่าแคมเปญการรับส่งข้อมูลโฆษณาใดสอดคล้องกับแหล่งโฆษณาและคำหลักโฆษณาและข้อมูลอื่น ๆ จริง ๆ แล้วมันคล้ายกับความคิดที่กล่าวถึงข้างต้น เป็นเพียงการที่ Google ได้ทำการปรับเปลี่ยน URL โดยอัตโนมัติสำหรับคุณ
วิธีแก้ปัญหาการอ้างอิงที่ว่างเปล่าภายใต้ IE
หากใช้วิธี 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 (ลิงก์) {
var arg = '/u003cscript/u003location.replace("''KELLINK มากกว่า')/U003C/Script/U003E';
window.open ('javascript: window.name;', arg);
-
</code>
การเปลี่ยนเป็นการเชื่อมต่อนั้นเทียบเท่ากับ target = "_ self":
การคัดลอกรหัสมีดังนี้:
ฟังก์ชั่นเปลี่ยนเส้นทาง (ลิงก์) {
var arg = '/u003cscript/u003etop.location.replace ("'+ลิงก์+'")/u003c/script/u003e';
var iframe = document.createElement ('iframe');
iframe.src = 'JavaScript: window.name;';
iframe.name = arg;
document.body.appendchild (iframe);
-
</code>