งาน

คู่มือนี้จะอธิบายถึงงาน ซึ่งเป็นฟีเจอร์ขั้นสูงที่ใช้เพื่อปรับแต่งวิธีที่ 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');