คู่มือนี้จะอธิบายถึงงาน ซึ่งเป็นฟีเจอร์ขั้นสูงที่ใช้เพื่อปรับแต่งวิธีที่ analytics.js ตรวจสอบ สร้าง และส่งคำขอ Measurement Protocol
ภาพรวม
ทุกครั้งที่มีการเรียกคำสั่ง send
แล้ว analytics.js จะดำเนินการกับลำดับงานตามลำดับเพื่อตรวจสอบ สร้าง และส่งคำขอ Measurement Protocol จากเบราว์เซอร์ของผู้ใช้ไปยัง Google Analytics ตารางต่อไปนี้จะอธิบายแต่ละงานตามลำดับการดำเนินการ
ชื่องาน | คำอธิบาย |
---|---|
customTask |
โดยค่าเริ่มต้น การดำเนินการนี้จะไม่ดำเนินการใดๆ โปรดลบล้างเพื่อระบุลักษณะการทำงานที่กำหนดเอง |
previewTask |
ล้มเลิกคำขอหากมีการแสดงผลหน้าเว็บเพื่อสร้างภาพขนาดย่อของ "เว็บไซต์ยอดนิยม" สำหรับ Safari เท่านั้น |
checkProtocolTask |
ยกเลิกคำขอหากโปรโตคอลของหน้าเว็บไม่ใช่ http หรือ https |
validationTask |
ยกเลิกคำขอหากช่องที่ต้องกรอกขาดหายไปหรือไม่ถูกต้อง |
checkStorageTask |
ยกเลิกคำขอหากมีการกำหนดค่าเครื่องมือติดตามให้ใช้คุกกี้ แต่เบราว์เซอร์ของผู้ใช้ปิดใช้คุกกี้ |
historyImportTask |
นำเข้าข้อมูลจากคุกกี้ ga.js และ urchin.js เพื่อเก็บประวัติผู้เข้าชมเมื่อไซต์ย้ายข้อมูลไปยัง Universal Analytics |
samplerTask |
สุ่มตัวอย่างผู้เข้าชมตามการตั้งค่า sampleRate สำหรับเครื่องมือติดตามนี้ |
buildHitTask |
สร้างสตริงคำขอ Measurement Protocol และจัดเก็บลงในช่อง hitPayload |
sendHitTask |
ส่งคำขอ Measurement Protocol ที่จัดเก็บในช่อง hitPayload ไปยังเซิร์ฟเวอร์ Google Analytics |
timingTask |
สร้าง Hit เกี่ยวกับเวลาความเร็วเว็บไซต์โดยอัตโนมัติตามการตั้งค่า siteSpeedSampleRate สำหรับตัวติดตามนี้ |
displayFeaturesTask |
ส่ง Hit เพิ่มเติมหากเปิดใช้ฟีเจอร์ดิสเพลย์และไม่มีการส่ง Hit ก่อนหน้าภายในระยะหมดเวลาที่กำหนดโดยคุกกี้ของฟีเจอร์โฆษณา (_gat) |
งานเหล่านี้แต่ละงานจะทำงานเป็นฟังก์ชัน JavaScript ซึ่งจะใช้พารามิเตอร์โมเดลเดี่ยวเป็นอินพุต โมเดลนี้เป็นออบเจ็กต์แบบง่ายที่ให้สิทธิ์เข้าถึงช่องต่างๆ ที่ระบุไว้ในการอ้างอิงช่องของ Analytics.js
คุณสามารถเข้าถึงหรือแทนที่ Tasks ได้โดยใช้เมธอดติดตามมาตรฐาน get
และ set
เมื่อใช้วิธีนี้ คุณอาจแทนที่งานด้วยฟังก์ชันที่คุณกำหนดเอง หรือเพิ่มฟังก์ชันที่มีอยู่โดยเชื่อมโยงฟังก์ชันที่กําหนดเองเพื่อดำเนินการก่อนหรือหลังงานที่มีอยู่
การใช้งาน
ส่วนนี้จะอธิบายวิธีเพิ่มฟังก์ชันใหม่ลงในงานที่มีอยู่ แทนที่ฟังก์ชันงานในตัวด้วยโค้ดที่กำหนดเอง หรือปิดใช้ฟังก์ชันงานทั้งหมด
การลบล้างงาน
หากต้องการลบล้างงาน คุณสามารถset
ค่าของงานเป็นฟังก์ชันที่ทำงานอย่างอื่นได้ เหตุผลทั่วไปในการลบล้างงานคือการใช้ฟังก์ชัน stub เมื่อทดสอบการติดตั้งใช้งาน analytics.js
โค้ดต่อไปนี้จะแทนที่ sendHitTask
ด้วยฟังก์ชันที่บันทึกเพย์โหลด Hit ไปยังคอนโซล
ga('create', 'UA-XXXXX-Y', 'auto');
ga('set', 'sendHitTask', function(model) {
console.log(model.get('hitPayload'));
});
การเพิ่มงาน
หากต้องการแทรกฟังก์ชันใหม่ คุณสามารถเชื่อมโยงฟังก์ชันงานที่กำหนดเองให้ทำงานก่อนหรือหลังงานที่มีอยู่ได้ ในตัวอย่างด้านล่าง ระบบจะแทนที่ sendHitTask
ด้วยฟังก์ชันงานที่กำหนดเองซึ่งเรียกใช้ฟังก์ชัน sendHitTask
เดิมก่อนเพื่อส่งบีคอนคำขอปกติไปยัง google-analytics.com/collection จากนั้นเรียกใช้โค้ดที่กำหนดเองเพื่อส่งสำเนาคำขอ Measurement Protocol ไปยังเซิร์ฟเวอร์ภายใน
ga('create', 'UA-XXXXX-Y', 'auto');
ga(function(tracker) {
// Grab a reference to the default sendHitTask function.
var originalSendHitTask = tracker.get('sendHitTask');
// Modifies sendHitTask to send a copy of the request to a local server after
// sending the normal request to www.google-analytics.com/collect.
tracker.set('sendHitTask', function(model) {
originalSendHitTask(model);
var xhr = new XMLHttpRequest();
xhr.open('POST', '/localhits', true);
xhr.send(model.get('hitPayload'));
});
});
ga('send', 'pageview');
ล้มเลิกการประมวลผลงาน
งานอาจล้มเลิกการประมวลผลงานต่อๆ ไปได้โดยการส่งกลับข้อยกเว้น หากงานที่มีการแสดงข้อผิดพลาดทํางานก่อน sendHitTask
การดำเนินการนี้จะทําให้ระบบส่งคำขอ Measurement Protocol ไปยังเซิร์ฟเวอร์ Google Analytics ไม่ได้ ในตัวอย่างด้านล่าง เราจะยกเลิกคำขอเมื่อเบราว์เซอร์ของผู้ใช้มีคุกกี้ที่ชื่อ 'testing' ที่มีค่า 'true'
ga('create', 'UA-XXXXX-Y', 'auto');
ga(function(tracker) {
var originalBuildHitTask = tracker.get('buildHitTask');
tracker.set('buildHitTask', function(model) {
if (document.cookie.match(/testing=true/)) {
throw 'Aborted tracking for test user.';
}
originalBuildHitTask(model);
});
});
ga('send', 'pageview');
การปิดใช้งาน
หากต้องการปิดใช้ฟังก์ชันในตัว ให้แทนที่ด้วยค่า Null
ga('create', 'UA-XXXXX-Y', 'auto');
ga('set', 'checkProtocolTask', null); // Disables file protocol checking.
ga('send', 'pageview');