เครื่องมือวัด Conversion

รูปที่ 2: ภาพรวมเครื่องมือวัด Conversion

ภาพรวม

เครื่องมือวัด Conversion จะติดตาม Conversion ที่ Google เริ่มต้นผ่านการผสานรวมศูนย์การกระทําอย่างใดอย่างหนึ่งของเรา คุณจำเป็นต้องทำให้การผสานรวมทำงานได้อย่างถูกต้องอยู่เสมอ เนื่องจากอาจส่งผลต่อการจัดอันดับในบางหน้า ทุกครั้งที่ Google สร้าง action_link ระบบจะแก้ไข URL ที่เจาะจงให้รวมพารามิเตอร์การค้นหาที่ไม่ซ้ำกัน rwg_token คุณสามารถจัดเก็บโทเค็นและแสดงผลค่าที่เหมาะสมเมื่อผู้ใช้ทำการจองเสร็จสมบูรณ์

ทําตามขั้นตอนต่อไปนี้เพื่อผสานรวมให้เสร็จสมบูรณ์

  1. แยกวิเคราะห์และจัดเก็บ rwg_token
  2. แยกวิเคราะห์และจัดเก็บข้อมูลผู้ขาย
  3. แสดงค่า rwg_token และ merchant_changed
  4. ทดสอบและยืนยันเครื่องมือวัด Conversion

แยกวิเคราะห์และจัดเก็บ rwg_token

คุณต้องรวบรวมและจัดเก็บ rwg_token ไว้ไม่เกิน 30 วันนับจากการอ้างอิงครั้งแรกของ Google เพื่อให้การผสานรวมเสร็จสมบูรณ์ ค่า rwg_token คือสตริงที่เข้ารหัสซึ่งมีข้อมูลเมตาเกี่ยวกับลิงก์และข้อมูลผู้ขายที่สร้าง action_link นั้น

แยกวิเคราะห์โทเค็น

เมื่อระบบนำผู้ใช้ไปยังหน้าการจอง ระบบจะเพิ่ม rwg_token ใหม่ต่อท้าย URL ที่ระบุ ในหน้าการจอง คุณต้องแยกวิเคราะห์ค่าโทเค็น

ตัวอย่างต่อไปนี้แสดงวิธีแยกวิเคราะห์ rwg_token สําหรับการติดตามระดับอุปกรณ์ผ่านเบราว์เซอร์

var query = location.search.substring(1);
var params = query.split('&');
var rwgToken = undefined;
for (var i = 0; i < params.length; ++i) {
  var pair = params[i].split('=');
  if (pair[0] == 'rwg_token') {
    rwgToken = decodeURIComponent(pair[1]);
    break;
  }
}

โทเค็นต่อท้าย URL ของคุณได้รับการเข้ารหัส โปรดดูตัวอย่าง rwg_token ต่อไปนี้ ใช้โทเค็นตัวอย่างนี้เพื่อให้แน่ใจว่าคุณแยกวิเคราะห์โทเค็นได้อย่างถูกต้อง พร้อมกับสัญลักษณ์พิเศษ เช่น =

AJKvS9WeONmWKEwjG0--HdpzMq0yAVNL8KMxbb44QtbcxMhSx_NUud5b8PLUBFehAIxOBO-iYRIJOknEFkIJmdsofdVJ6uOweQ==

จัดเก็บโทเค็น

เมื่อจัดเก็บ rwg_token แล้ว คุณจะใช้เครื่องมือวัด Conversion ได้ 2 ระดับ ดังนี้

  • ระดับอุปกรณ์
  • ระดับผู้ใช้

คุณสามารถจัดเก็บโทเค็นที่ระดับใดก็ได้ แต่ต้องจัดเก็บโทเค็นเป็นเวลา 30 วันหลังจากการอ้างอิงครั้งแรก

ตัวอย่างต่อไปนี้แสดงเครื่องมือวัด Conversion ระดับอุปกรณ์ คุณสามารถจัดเก็บค่าโทเค็นในเบราว์เซอร์ด้วยคุกกี้ของบุคคลที่หนึ่ง ตัวอย่างนี้สมมติว่าคุณแยกวิเคราะห์ค่าโทเค็นเป็นตัวแปรแล้ว อย่าลืมอัปเดต rootdomain.comด้วยโดเมนของคุณ

if (typeof rwg_token !== 'undefined') {
  document.cookie =
  "_rwg_token=" + rwg_token + ";max-age=2592000;domain=rootdomain.com;path=/";
}

ทุกครั้งที่ Google สร้าง action_link ที่คุณระบุผ่านฟีด ระบบจะแก้ไข URL ให้รวมพารามิเตอร์การค้นหาที่ไม่ซ้ำกัน rwg_token คุณต้องจัดเก็บโทเค็นนี้และส่งกลับเป็นส่วนหนึ่งของเหตุการณ์ Conversion

จัดเก็บที่ระดับอุปกรณ์

ระดับอุปกรณ์รวมถึงการใช้คุกกี้ของเบราว์เซอร์ พื้นที่เก็บข้อมูลในเครื่อง พื้นที่เก็บข้อมูลในเครื่องของแอป หรือวิธีการอื่นๆ ที่สามารถเก็บโทเค็นไว้ได้ตลอดระยะเวลา 30 วันของกรอบเวลาการระบุแหล่งที่มา ระบบจะจัดเก็บโทเค็นไว้ในอุปกรณ์ของผู้ใช้ ดังนั้น เหตุการณ์ Conversion จึงไม่สามารถระบุแหล่งที่มาได้อย่างถูกต้องหากผู้ใช้ดำเนินการต่อไปนี้

  • เปลี่ยนอุปกรณ์ที่ใช้
  • ล้างพื้นที่เก็บข้อมูลในเครื่องหรือคุกกี้
  • ใช้เบราว์เซอร์แบบส่วนตัวหรือไม่ระบุตัวตน

เมื่อใช้เครื่องมือวัด Conversion ระดับอุปกรณ์ คุณจะต้องติดตั้งใช้งานเหตุการณ์ Conversion อีกครั้งในอุปกรณ์ทุกเครื่องที่รองรับ ซึ่งรวมถึงอุปกรณ์เคลื่อนที่

จัดเก็บที่ระดับผู้ใช้

ระดับผู้ใช้จะเก็บโทเค็นไว้ในฐานข้อมูลแอปพลิเคชันผ่านระบบวิเคราะห์ฝั่งเซิร์ฟเวอร์หรือระบบฝั่งเซิร์ฟเวอร์อื่นๆ ระบบจะจัดเก็บโทเค็นฝั่งเซิร์ฟเวอร์ ดังนั้น เหตุการณ์ Conversion จะยังคงระบุแหล่งที่มาอย่างถูกต้องหลังจากผู้ใช้เข้าสู่ระบบอีกครั้ง

เมื่อใช้เครื่องมือวัด Conversion ระดับผู้ใช้ตามสถาปัตยกรรมของระบบ คุณจะติดตั้งใช้งานเหตุการณ์ Conversion เพียงครั้งเดียวฝั่งเซิร์ฟเวอร์ แล้วนําไปใช้ซ้ำในอุปกรณ์ทั้งหมดที่รองรับได้

รีเฟรชโทเค็น

เมื่อ Google แนะนำผู้ใช้ไปยังผู้ขายรายเดียวกัน ระบบจะแทนที่โทเค็นที่มีอยู่ซึ่งจัดเก็บไว้แล้วด้วยโทเค็นใหม่จากการแนะนำล่าสุด หลังจากการเปลี่ยนโทเค็นแล้ว กรอบเวลาการระบุแหล่งที่มา 30 วันของพื้นที่เก็บข้อมูลโทเค็นจะรีเซ็ต และระบบจะระบุแหล่งที่มาของ Conversion ใหม่ทั้งหมดสำหรับผู้ขายรายนี้ไปยังโทเค็นล่าสุด

โปรดดูรายละเอียดเพิ่มเติมในข้อกําหนดในการระบุแหล่งที่มาของ Conversion

แยกวิเคราะห์และจัดเก็บข้อมูลผู้ขาย

เมื่อระบบนําผู้ใช้ไปยังหน้าการจอง คุณต้องติดตั้งใช้งานตรรกะที่สามารถค้นหาและบันทึกรายละเอียดผู้ขาย โดยทั่วไป พาร์ทเนอร์จะเพิ่มข้อมูลเมตาของผู้ขายหรือ merchant_id ลงในลิงก์การกระทํา และใช้ข้อมูลดังกล่าวเพื่อระบุและจัดเก็บข้อมูลผู้ขาย

เราขอแนะนําให้คุณจัดเก็บ merchant_id หรือตัวระบุที่เลือกไว้พร้อมกับ rwg_token เมื่อผู้ใช้ยืนยันการจอง คุณสามารถอ้างอิงผู้ขายก่อนที่จะส่งคำขอ Conversion ที่สมบูรณ์ได้ เช่นเดียวกับพื้นที่เก็บข้อมูลโทเค็น คุณต้องต้องบันทึกรายละเอียดผู้ขายที่มีโทเค็นเป็นเวลา 30 วันหลังจากการอ้างอิงครั้งแรก

ตัวอย่างต่อไปนี้จะแก้ไข rwg_token ที่เก็บไว้ก่อนหน้านี้ ระบบจะถือว่าคุณได้แยกวิเคราะห์ข้อมูลผู้ขายจากข้อมูลเมตาใน URL ที่ระบุและบันทึกเป็น merchant_id หรือจับคู่กับ merchant_id ที่มีอยู่

if (typeof rwg_token !== 'undefined') {
  document.cookie =
  "_rwg_token=" + rwg_token + ";_merchant_id=" + merchantid + ";max-age=2592000;domain=rootdomain.com;path=/";
}

แสดงผลค่า rwg_token และ merchant_changed

เมื่อผู้ใช้ทำการจองที่เริ่มต้นจากการอ้างอิง action_link เสร็จสมบูรณ์แล้ว คุณจะต้องส่งคําขอ HTTP POST ไปยังปลายทาง Conversion โดยมีปลายทาง 2 รายการ ดังนี้

  • สภาพแวดล้อมจริง: https://www.google.com/maps/conversion/collect
  • สภาพแวดล้อม Sandbox: https://www.google.com/maps/conversion/debug/collect

เมื่อส่งเหตุการณ์ Conversion คุณต้องต้องระบุ rwg_token ที่เก็บไว้และค่า merchant_changed เป็น 1 หรือ 2 ดูรายละเอียดเพิ่มเติมเกี่ยวกับ merchant_changedได้ที่แสดงมูลค่าการเปลี่ยนแปลงของผู้ขาย

เนื้อหา POST ต้องเป็นออบเจ็กต์ที่เข้ารหัส JSON ในรูปแบบต่อไปนี้

{
  "conversion_partner_id": "<partnerId>",
  "rwg_token": "<rwg_token_val>",
  "merchant_changed": "1|2"
}
{
  "conversion_partner_id": "XXXXXXX",
  "rwg_token": "AJKvS9WeONmWKEwjG0--HdpzMq0yAVNL8KMxbb44QtbcxMhSx_NUud5b8PLUBFehAIxOBO-iYRIJOknEFkIJmdsofdVJ6uOweQ==",
  "merchant_changed": "2"
}

ตัวอย่างต่อไปนี้มีเครื่องมือวัด Conversion ระดับอุปกรณ์ที่มีคุกกี้ในอุปกรณ์ของผู้ใช้ ซึ่งเขียนด้วย JavaScript

const partnerId = XXXXXXXXXX;

const endpoint = `https://www.google.com/maps/conversion/collect`;

const rwgTokenCookie = document.cookie
  .split('; ')
  .find(row => row.startsWith('_rwg_token='));

if (typeof rwgTokenCookie !== 'undefined') {
  const rwgTokenVal = rwgTokenCookie.split('=')[1];
  fetch(endpoint, {
    method: "POST",
    body: JSON.stringify({
      conversion_partner_id: partnerId,
      rwg_token: rwgTokenVal,
      merchant_changed: merchantChanged
    })
  });
}

แสดงผลค่าการเปลี่ยนแปลงของผู้ขาย

ระบบจะใช้ค่า merchant_changed เพื่อระบุว่ามีการเปลี่ยนผู้ขายจากผู้ขายการเปลี่ยนเส้นทางเริ่มต้นหรือไม่ การเปลี่ยนแปลงผู้ขายเป็นเรื่องปกติหากหน้า Landing Page ของคุณอยู่ในแพลตฟอร์มที่มีผู้ขายรายอื่น ในกรณีนี้ หาก Google เป็นผู้นําผู้ใช้ไปยังแพลตฟอร์มของคุณและผู้ใช้ตัดสินใจไปยังผู้ขายรายอื่นเพื่อจองให้เสร็จสมบูรณ์ คุณต้องทราบว่า Conversion เกิดขึ้นกับผู้ขายรายอื่น คุณสามารถใช้บูลีนเพื่อระบุการเปลี่ยนแปลงของผู้ขายได้ แต่จะระบุรายละเอียดผู้ขายไม่ได้

เมื่อเลือกค่าที่จะกำหนดให้กับ merchant_changed คุณต้องนำผู้ขายเดิมที่บันทึกไว้ในแยกวิเคราะห์และจัดเก็บข้อมูลผู้ขาย ตรวจสอบว่าผู้ขายมีการเปลี่ยนแปลงหรือไม่ แล้วกําหนดค่าตามต้องการ

  • ข้อกําหนด: เมื่อผู้ใช้ออกจากเว็บไซต์ของผู้ขายรายแรกและทําการซื้อผ่านแพลตฟอร์มของคุณกับผู้ขายรายอื่นจนเสร็จสมบูรณ์
    • ค่าการเปลี่ยนแปลงของผู้ขาย: 1
  • ข้อกําหนด: เมื่อผู้ใช้ทําธุรกรรมผ่านผู้ขายเดิมจนเสร็จสมบูรณ์
    • ค่าการเปลี่ยนแปลงของผู้ขาย: 2

ทดสอบและยืนยันเครื่องมือวัด Conversion

เทสเคสต่อไปนี้ใช้โทเค็นทดสอบที่ระบุไว้ในส่วนโทเค็นทดสอบ โดยมีวัตถุประสงค์เพื่อช่วยแนะนําคุณผ่านสถานการณ์ต่างๆ ทั้งหมดที่อาจส่งผลให้เกิดเหตุการณ์ Conversion วิธีนี้ช่วยให้มั่นใจว่าระบบจะจัดเก็บโทเค็นอย่างเหมาะสม ตั้งค่า merchant_changed อย่างถูกต้อง และส่งเหตุการณ์ Conversion เมื่อเหมาะสม

ใช้ลิงก์การดําเนินการหรือ URL ของหน้าการจองที่ระบุไว้ในฟีด แล้วเรียกใช้แต่ละกรณีทดสอบโดยต่อท้าย Test Tokens ต่อท้าย URL โปรดใช้หน้าต่างเบราว์เซอร์ส่วนตัวหรือโหมดไม่ระบุตัวตน ซึ่งจะล้างโทเค็นที่มีอยู่ซึ่งเชื่อมโยงกับผู้ใช้ปัจจุบันและช่วยให้คุณเริ่มต้นใหม่ได้

Test Case คำอธิบายการทดสอบ User Flow ผลลัพธ์ที่คาดหวัง
1 ผู้ใช้ทำการจองที่ไม่ได้เริ่มต้นใน Google จนเสร็จสมบูรณ์ ผู้ใช้ไปยังหน้าการจองโดยตรงโดยไม่มีการอ้างอิงจาก Google หรือการอ้างอิงที่มีอยู่ ซึ่งไม่ควรส่งผลให้เกิดเหตุการณ์ Conversion ไม่มีเหตุการณ์ Conversion เนื่องจากผู้ใช้ไม่เคยเข้าชมหน้าการจองมาก่อนหรือ Google ไม่ได้เป็นผู้แนะนำ
2 ผู้ใช้ทำการจองที่มาจาก Google จนเสร็จสมบูรณ์ ผู้ใช้พบผู้ขายผ่าน Google ระบบจะนําผู้ใช้ไปยังหน้าการจองและผู้ใช้ทำการจอง ระบบจะส่งเหตุการณ์ Conversion ที่มีค่า Token A และ merchant changed เป็น 2 เนื่องจาก Google นําผู้ใช้ไปยังหน้าการจอง
3 ผู้ใช้ (ที่มาจาก Google) เริ่มขั้นตอนการจอง แต่ออกจากเซสชันไปก่อนที่การจองจะเสร็จสมบูรณ์

หมายเหตุ: เปิดเซสชันนี้ไว้สําหรับการทดสอบที่ 4 และ 5
ระบบนําผู้ใช้ไปยังหน้าการจอง แต่เซสชันสิ้นสุดลงและผู้ใช้ไม่ได้จองให้เสร็จสมบูรณ์ ไม่มี Conversion เนื่องจากผู้ใช้ไม่ได้ทำการจองให้เสร็จสมบูรณ์ แต่ควรจัดเก็บ Token B เป็นเวลา 30 วัน
4 ผู้ใช้กลับมาที่หน้าการจองโดยไม่ได้มาจาก Google และทำการจองให้เสร็จสมบูรณ์

หมายเหตุ: URL ของขั้นตอนการจองต้องไม่มี rwg_token
ผู้ใช้กลับมาที่หน้าการจองหลังจากการทดสอบ #4 โทเค็น ขควรจัดเก็บไว้ 30 วัน และ Conversion ที่เกิดขึ้นในช่วง 30 วันดังกล่าวควรแสดงเหตุการณ์ Conversion ระบบจะส่งเหตุการณ์ Conversion ที่มีค่า Token B และผู้ขายมีการเปลี่ยนแปลงเป็น 2 เนื่องจากผู้ใช้กลับมาที่หน้าการจองหลังจากได้รับการอ้างอิงจาก Google ก่อนหน้านี้
5 ผู้ใช้ทำการจองใหม่ซึ่งมาจาก Google ให้เสร็จสมบูรณ์หลังจากการทดสอบ #4 หากผู้ใช้กลับมาที่หน้าการจองโดยใช้การอ้างอิงจาก Google หลังจากการอ้างอิงจาก Google ก่อนหน้า กรอบเวลาการจัดเก็บข้อมูล 30 วันของผู้ใช้จะรีเซ็ตและโทเค็นใหม่ โทเค็น C จะแทนที่โทเค็นเก่า โทเค็น B จากนั้น Conversion ทั้งหมดในอนาคตจะมาจาก Token C ระบบจะส่งเหตุการณ์ Conversion ที่มีค่า Token C และผู้ขายมีการเปลี่ยนแปลงเป็น 2 เนื่องจากผู้ใช้จองห้องพักเสร็จสมบูรณ์แล้ว และโทเค็นใหม่เข้ามาแทนที่โทเค็นที่เก็บไว้ก่อนหน้านี้

หากคุณมีแพลตฟอร์มที่ผู้ใช้ชำระเงินกับผู้ขายรายอื่นได้ ให้ทดสอบสิ่งต่อไปนี้

Test Case คำอธิบายการทดสอบ User Flow ผลลัพธ์ที่คาดหวัง
6 Google แนะนำผู้ใช้ไปยังหน้าการจองของคุณและผู้ใช้ทำการจองกับผู้ขายรายอื่นจนเสร็จสมบูรณ์ Google แนะนำผู้ใช้ไปยังหน้าการจองของคุณ และใช้ Token A แต่ก่อนที่จะทำการจอง ผู้ใช้ไปยังหน้าอื่นและทำการจองกับผู้ขายที่แตกต่างจากการอ้างอิงเดิม ระบบจะส่งเหตุการณ์ Conversion เนื่องจากผู้ใช้ทำการจองที่มาจากคำแนะนําจาก Google ด้วย Token A และค่า merchant changed เป็น 1 จนเสร็จสมบูรณ์ เนื่องจากผู้ใช้ทำการจองในผู้ขายรายอื่นนอกเหนือจากการอ้างอิง

ขณะทดสอบ ให้ส่งคําขอ HTTP POST ไปยังปลายทาง Conversion โดยมีปลายทาง 2 รายการ ดังนี้

  • สภาพแวดล้อมจริง: https://www.google.com/maps/conversion/collect
  • สภาพแวดล้อมของกล่องทดสอบ: https://www.google.com/maps/conversion/debug/collect

โทเค็นทดสอบ

หากต้องการทดสอบเครื่องมือวัด Conversion ให้เพิ่มโทเค็นทดสอบรายการใดรายการหนึ่งต่อไปนี้ลงในส่วนท้ายของลิงก์การกระทําหรือ URL ของหน้าการจองที่คุณระบุในฟีด

โทเค็น ก:

rwg_token=AJKvS9WeONmWKEwjG0--HdpzMq0yAVNL8KMxbb44QtbcxMhSx_NUud5b8PLUBFehAIxOBO-iYRIJOknEFkIJmdsofdVJ6uOweQ%3D%3D

โทเค็น ข:

rwg_token=AJKvS9U2QfiQanHFQrlJxBjD0AyFany3qpaJVEWOcY4nHqY_UkLYFFDj6RIa-EXS1iEmV8gtFPG6v1cU1jnusJK66ijXXnaqkQ%3D%3D

โทเค็น C:

rwg_token=AJKvS9VwInjZ_hGZPvBz0COVWJ5oFDzocFt9hGi7TMurlo2l71uiXP48PspPUMmRnqCUDE1mF_A5H_dMV78cBTF8jIfSQK6lEA%3D%3D

เมื่อส่งเหตุการณ์ Conversion ที่สำเร็จแล้ว คุณจะดูเหตุการณ์เหล่านั้นแบบรวมได้ในศูนย์การดำเนินการในส่วนแดชบอร์ดการติดตาม Conversion

conversion-tracking-dashboard

ข้อกําหนดในการระบุแหล่งที่มาของ Conversion

มาตรฐานที่จําเป็นสําหรับการระบุแหล่งที่มาของ Conversion ของ Google คือกรอบเวลาการระบุแหล่งที่มา 30 วันสําหรับการโต้ตอบกับลิงก์การกระทําที่สถานที่ตั้งในร้านค้าใดก็ได้

กรอบเวลาการระบุแหล่งที่มานี้หมายความว่า Google จะคาดหวังว่าจะมีการส่งเหตุการณ์ Conversion ในสถานการณ์ต่อไปนี้

  • ผู้ใช้ติดตามลิงก์การกระทําในสถานที่และสั่งซื้อจากผู้ขายรายเดียวกันในเซสชันเดียวกัน ค่าการเปลี่ยนแปลงของผู้ขาย = 2
  • ผู้ใช้ไปที่ลิงก์การกระทําในสถานที่ จากนั้นกลับมาจากแชแนลอื่นภายในกรอบเวลาการระบุแหล่งที่มา 30 วันเพื่อสั่งซื้อจากผู้ขายรายเดียวกัน ค่าการเปลี่ยนแปลงของผู้ขาย = 2
  • ผู้ใช้ติดตามลิงก์การกระทําในสถานที่ จากนั้นสั่งซื้อที่ร้านค้าอื่นภายในเซสชันเดียวกันหรือเซสชันอื่นภายในกรอบเวลาการระบุแหล่งที่มา 30 วัน ค่าการเปลี่ยนแปลงของผู้ขาย = 1

นอกจากนี้ Google คาดว่าจะส่งเหตุการณ์ Conversion จากอุปกรณ์ใดก็ได้ที่ผู้ใช้เข้าถึงผ่านลิงก์การกระทําที่ถือเป็น Conversion อุปกรณ์เหล่านี้ ได้แก่

  • แอปพลิเคชันเว็บบนเดสก์ท็อปหรืออุปกรณ์เคลื่อนที่
  • แอปบนอุปกรณ์เคลื่อนที่ผ่าน Deep Link ของแอปหรือ Intent ของแอปที่ลงทะเบียนไว้สำหรับโดเมนของคุณ

หากจัดเก็บโทเค็นที่ระดับผู้ใช้ คุณควรระบุการระบุแหล่งที่มาจากหลายอุปกรณ์ ดูข้อมูลเพิ่มเติมได้ที่จัดเก็บที่ระดับผู้ใช้ ในกรณีนี้ ผู้ใช้ที่ไปยังลิงก์การกระทําจากเดสก์ท็อป แล้วทําธุรกรรมในอุปกรณ์เคลื่อนที่ด้วยบัญชีผู้ใช้เดียวกันจนเสร็จสมบูรณ์จะต้องทริกเกอร์เหตุการณ์ Conversion

หากมีการเก็บโทเค็นไว้ที่ระดับอุปกรณ์เท่านั้น เช่น ในคุกกี้เบราว์เซอร์ คุณไม่จําเป็นต้องระบุการระบุแหล่งที่มาข้ามอุปกรณ์ ในกรณีนี้ อุปกรณ์แต่ละเครื่องอาจมีโทเค็นแยกต่างหาก หากผู้ใช้ไปยังลิงก์การกระทําในอุปกรณ์นั้น และอุปกรณ์แต่ละเครื่องสามารถปฏิบัติตามกฎการระบุแหล่งที่มาแยกกันได้