คู่มือ SKAdNetwork 4.0: การทำงานของหน้าต่าง Postback ทั้งสามรูปแบบ

opoinstall
2026-08-19
5 min read

การระบุแหล่งที่มาแบบหลายหน้าต่างของ SKAdNetwork 4.0 ทำงานอย่างไร SKAdNetwork 4.0 จะแบ่งการวัดผลการแปลงเป็น 3 ช่วงเวลาตามลำดับ ได้แก่ วันที่ 0–2, 3–7 และ 8–35 นับจากการเปิดใช้งานแอปพลิเคชันครั้งแรก Apple จะกำหนดระดับข้อมูล Postback (Postback Data Tier) ให้กับการดาวน์โหลดแอปแต่ละครั้ง ซึ่งจะทำหน้าที่กำหนดว่า Postback ที่มีสิทธิ์จะเปิดเผยข้อมูลการระบุแหล่งที่มาแบบละเอียด (Fine-grained), แบบหยาบ (Coarse-grained) หรือแบบลดทอน

SKAdNetwork 4.0 คือโครงสร้างพื้นฐานสำหรับการระบุแหล่งที่มาของการโฆษณาบนมือถือที่ช่วยรักษาความเป็นส่วนตัวจาก Apple ซึ่งช่วยให้สามารถวัดผลแคมเปญบน iOS ได้อย่างปลอดภัยและเป็นส่วนตัว ระบบนี้ได้แนะนำหน้าต่างการแปลงแบบต่อเนื่องสามช่วงที่ครอบคลุมระยะเวลาสูงสุด 35 วันหลังจากการเปิดใช้งานครั้งแรก, ตัวระบุแหล่งที่มาแบบลำดับชั้น, ค่าการแปลงแบบหยาบ และกลไกการล็อกหน้าต่างเพื่อประเมินมูลค่าตลอดช่วงชีวิตของผู้ใช้ (LTV) ในช่วงกลางของ Funnel โดยไม่ต้องเก็บรวบรวมตัวตนอุปกรณ์ที่คงอยู่ถาวร

คำศัพท์ คำนิยาม
SKAdNetwork โครงสร้างพื้นฐานระดับแพลตฟอร์มของ Apple สำหรับการระบุแหล่งที่มาของแคมเปญโฆษณาที่คำนึงถึงความเป็นส่วนตัว
Conversion Window หนึ่งในสามช่วงเวลาการวัดผลที่กำหนด ซึ่งเริ่มต้นเมื่อมีการเปิดแอปครั้งแรกและเป็นช่วงที่แอปที่ลงโฆษณาอาจอัปเดตค่าการแปลงได้
Postback Data Tier ระดับที่แพลตฟอร์มเป็นผู้กำหนด (ตั้งแต่ Tier 0 ถึง Tier 3) ซึ่งควบคุมความละเอียดของเมทาสัปดาห์ที่ส่งกลับมาใน Postback
Coarse Conversion Value สัญญาณการแปลงแบบสามระดับ (low, medium, high) ซึ่งอาจมีการเปิดเผยเมื่อข้อมูลการแปลงแบบละเอียดไม่พร้อมใช้งาน หรือในหน้าต่างการแปลงช่วงหลังๆ

สรุปภาพรวม: กำหนดเวลา Postback สำคัญและกฎการเปิดเผยข้อมูล

  • หน้าต่างที่ 1 (วันที่ 0–2 หลังเปิดใช้งานครั้งแรก): อาจเปิดเผยค่าแบบละเอียด (0–63) หรือค่าแบบหยาบ (low, medium, high) โดยจะส่งข้อมูลหลังจากหน่วงเวลาแบบสุ่มเพิ่มอีก 24–48 ชั่วโมง
  • หน้าต่างที่ 2 (วันที่ 3–7 หลังเปิดใช้งานครั้งแรก): อาจเปิดเผยค่า coarse-conversion-value เมื่อมีการระบุและได้รับอนุญาตตามระดับข้อมูล Postback มิฉะนั้นฟิลด์ดังกล่าวจะถูกละเว้น โดยจะส่งข้อมูลหลังจากหน่วงเวลาแบบสุ่มเพิ่มอีก 24–144 ชั่วโมง
  • หน้าต่างที่ 3 (วันที่ 8–35 หลังเปิดใช้งานครั้งแรก): อาจเปิดเผยค่า coarse-conversion-value เมื่อมีการระบุและได้รับอนุญาตตามระดับข้อมูล Postback มิฉะนั้นฟิลด์ดังกล่าวจะถูกละเว้น โดยจะส่งข้อมูลหลังจากหน่วงเวลาแบบสุ่มเพิ่มอีก 24–144 ชั่วโมง
  • ข้อจำกัดข้อมูล Tier 0: การดาวน์โหลดที่อยู่ใน Tier 0 จะได้รับ Postback เพียงรายการเดียวซึ่งประกอบด้วย ID แหล่งที่มาแบบ 2 หลักและไม่มีค่าการแปลง ส่วน Postback ครั้งที่ 2 และ 3 จะถูกละเว้น
  • ข้อกำหนด Postback หลายรายการ: เพื่อให้มีสิทธิ์ได้รับ Postback ที่ชนะการประมูลหลายรายการ โฆษณาจะต้องลงนามด้วย SKAdNetwork 4 ขึ้นไป และแอปที่ลงโฆษณาต้องอัปเดตค่าการแปลงในช่วงเวลาการแปลงที่เกี่ยวข้อง

SKAdNetwork 4.0 คืออะไรและระบบระบุแหล่งที่มาแบบหลายหน้าต่างทำงานอย่างไร

วิวัฒนาการเชิงโครงสร้างจากข้อจำกัดตัวจับเวลาเดี่ยวสู่การติดตามวงจรชีวิตแบบหลายหน้าต่าง

StoreKit Ad Network (SKAdNetwork 2.0 และ 3.0) เวอร์ชันแรกๆ ของ Apple ทำงานภายใต้ตัวจับเวลาแบบหมุนเวียน 24 ชั่วโมงเดี่ยวๆ ภายใต้ SKAdNetwork 3 และเวอร์ชันก่อนหน้า การอัปเดตค่าการแปลงที่เพิ่มขึ้นอย่างถูกต้องสามารถขยายระยะเวลาการแปลงแบบหมุนเวียนออกไปได้โดยการเริ่มจับเวลา 24 ชั่วโมงใหม่ เมื่อครบ 24 ชั่วโมงโดยไม่มีการอัปเดต หน้าต่างจะปิดลงและ Apple จะส่ง Postback รายการเดียวหลังจากการหน่วงเวลาแบบสุ่ม

สถาปัตยกรรมตัวจับเวลาเดี่ยวนี้ทำให้เกิดอุปสรรคในการปฏิบัติงาน:

  • ขอบเขตการสังเกตที่จำกัด: ผู้ลงโฆษณาสามารถวัดผลได้เฉพาะการมีส่วนร่วมในช่วงแรกๆ ที่เกิดขึ้นระหว่างวันแรกๆ หลังจากการติดตั้งเท่านั้น
  • ความล่าช้าในการรายงาน: การอัปเดตการแปลงที่มีคุณสมบัติซ้ำๆ อาจทำให้ระยะเวลาการวัดผลที่มีผลขยายออกไปและทำให้ Postback ครั้งสุดท้ายล่าช้า ซึ่งส่งผลให้ขั้นตอนการประมูลโฆษณาอัตโนมัติทำงานช้าลง
  • การมองเห็นในระยะยาวที่จำกัด: SKAdNetwork 3 ไม่มีหน้าต่างการแปลงช่วงหลังที่ออกแบบมาโดยเฉพาะสำหรับการวัดผลตั้งแต่วันที่ 7 ถึงวันที่ 30

SKAdNetwork 4.0 ปรับโครงสร้างโมเดลนี้ใหม่โดยกำหนดหน้าต่างการวัดผลแบบคงที่ตามลำดับสามช่วง ซึ่งยึดโยงกับการเปิดใช้งานแอปพลิเคชันครั้งแรกของผู้ใช้

การแยกตัวจับเวลาการระบุแหล่งที่มาออกจากเซสชันการใช้งานจริงของผู้ใช้

ใน SKAdNetwork 4.0 หน้าต่างการแปลงจะดำเนินไปตามระยะเวลาปฏิทินที่กำหนดไว้ แทนที่จะขึ้นอยู่กับกิจกรรมของผู้ใช้ที่ต่อเนื่องกัน เมื่อเปิดแอปพลิเคชันเป็นครั้งแรกหลังจากได้รับความประทับใจจากโฆษณาที่ระบุแหล่งที่มา ระบบปฏิบัติการจะเริ่มหน้าต่างที่ 1

ไม่ว่าผู้ใช้จะเปิดแอปพลิเคชันหนึ่งครั้งหรือห้าสิบครั้งในช่วง 48 ชั่วโมงแรก หน้าต่างที่ 1 จะปิดลงเมื่อครบเครื่องหมาย 48 ชั่วโมง (เว้นแต่จะมีการสิ้นสุดล่วงหน้าอย่างชัดเจนผ่านการล็อกหน้าต่าง) จากนั้นระบบจะเลื่อนไปยังหน้าต่างที่ 2 (วันที่ 3 ถึงวันที่ 7) และตามด้วยหน้าต่างที่ 3 (วันที่ 8 ถึงวันที่ 35) โดยอัตโนมัติ การแยกส่วนนี้ช่วยรับประกันช่วงเวลาการส่ง Postback ที่มีโครงสร้างสำหรับไปป์ไลน์ข้อมูลปลายทาง

ห่วงโซ่ลายเซ็นเข้ารหัสแบบสองขา

SKAdNetwork รักษาความสมบูรณ์ของข้อมูลโดยใช้การเข้ารหัสแบบกุญแจสาธารณะผ่านสองเฟสที่แตกต่างกัน:

  • ขั้นตอนการแสดงโฆษณา (เครือข่ายโฆษณาไปยัง Apple): เมื่อเครือข่ายโฆษณาแสดงผลโฆษณา เครือข่ายนั้นจะลงนามในเพย์โหลดโฆษณาด้วยกุญแจส่วนตัว เมื่อมีการติดตั้งและเปิดแอป ระบบปฏิบัติการจะตรวจสอบลายเซ็นนี้เทียบกับกุญแจสาธารณะของเครือข่ายโฆษณาที่ลงทะเบียนไว้กับ Apple เพื่อยืนยันสิทธิ์ในการระบุแหล่งที่มา
  • ขั้นตอนการตรวจสอบการติดตั้ง (Appleไปยังเครือข่ายโฆษณา/นักพัฒนา): เมื่อหน้าต่างการแปลงสิ้นสุดลง Apple จะลงนามในเพย์โหลด Postback สำหรับการตรวจสอบการติดตั้ง เครือข่ายโฆษณาและปลายทางของนักพัฒนาซอฟต์แวร์ที่ได้รับจะตรวจสอบลายเซ็นนี้โดยใช้กุญแจสาธารณะของ Apple เพื่อยืนยันความถูกต้องและความสมบูรณ์ของ Postback

ดูเพิ่มเติม: SKAdNetwork ──> โมเดลการระบุแหล่งที่มาบนมือถือ

กลไกของหน้าต่าง Postback ทั้งสามช่วงและกำหนดเวลาในการวัดผล

หน้าต่างที่ 1: การจับภาพการมีส่วนร่วมในช่วงแรกและสัญญาณการแปลงที่มีความแม่นยำสูง

  • ช่วงเวลาการวัดผล: วันที่ 0 ถึงวันที่ 2 (48 ชั่วโมงแรกหลังการเปิดใช้งานครั้งแรก)
  • การเปิดเผยข้อมูลที่มีอยู่: ค่าการแปลงแบบละเอียด (จำนวนเต็ม 6 บิตจาก 0 ถึง 63) หรือค่าแบบหยาบ (low, medium, high) ซึ่งกำหนดโดยระดับข้อมูล Postback ที่ได้รับมอบหมาย
  • การหน่วงเวลา Postback แบบสุ่ม: 24 ถึง 48 ชั่วโมงหลังจากหน้าต่างปิดลงหรือถูกล็อก
  • วัตถุประสงค์เชิงวิเคราะห์: การวัดการทำขั้นตอนเริ่มต้นให้เสร็จสิ้นทันที, เหตุการณ์สำคัญของบทแนะนำ (Tutorial), การแปลงการซื้อครั้งแรก และความเสี่ยงในการเลิกใช้งานในช่วงแรก

หน้าต่างที่ 2: การประเมินการรักษาผู้ใช้ช่วงแรกและเหตุการณ์สำคัญในส่วนกลางของ Funnel

  • ช่วงเวลาการวัดผล: วันที่ 3 ถึงวันที่ 7 หลังจากเปิดใช้งานครั้งแรก (ชั่วโมงที่ 48 ถึง 168)
  • การเปิดเผยข้อมูลที่มีอยู่: อาจเปิดเผยค่า coarse-conversion-value (low, medium, high) เมื่อมีการระบุและได้รับอนุญาตตามระดับข้อมูล Postback มิฉะนั้นฟิลด์ดังกล่าวจะถูกละเว้น ค่าแบบละเอียด (0 ถึง 63) ไม่ได้รับการสนับสนุนในหน้าต่างที่ 2
  • การหน่วงเวลา Postback แบบสุ่ม: 24 ถึง 144 ชั่วโมง (1 ถึง 6 วัน) หลังจากหน้าต่างปิดลงหรือถูกล็อก
  • วัตถุประสงค์เชิงวิเคราะห์: การประเมินการรักษาผู้ใช้ตั้งแต่วันที่ 3 ถึงวันที่ 7, ลูปการมีส่วนร่วมหลายวัน, การทดลองใช้การสมัครสมาชิกเริ่มต้น และพฤติกรรมการซื้อซ้ำ

หน้าต่างที่ 3: การวัดการรักษาผู้ใช้ระยะยาวและมูลค่าตลอดอายุการใช้งานสะสม

  • ช่วงเวลาการวัดผล: วันที่ 8 ถึงวันที่ 35 หลังจากเปิดใช้งานครั้งแรก (ชั่วโมงที่ 168 ถึง 840)
  • การเปิดเผยข้อมูลที่มีอยู่: อาจเปิดเผยค่า coarse-conversion-value (low, medium, high) เมื่อมีการระบุและได้รับอนุญาตตามระดับข้อมูล Postback มิฉะนั้นฟิลด์ดังกล่าวจะถูกละเว้น
  • การหน่วงเวลา Postback แบบสุ่ม: 24 ถึง 144 ชั่วโมง (1 ถึง 6 วัน) หลังจากหน้าต่างปิดลงหรือถูกล็อก
  • วัตถุประสงค์เชิงวิเคราะห์: การจับเกณฑ์มาตรฐานการรักษาผู้ใช้ในเดือนที่ 1, การแปลงจากการทดลองใช้เป็นการสมัครสมาชิกแบบชำระเงิน และเหตุการณ์สำคัญในการสร้างรายได้ระยะยาว

แผนภาพเส้นเวลาทางเทคนิคที่แสดงหน้าต่างการแปลงสามช่วงติดต่อกันของ SKAdNetwork 4.0, ช่วงเวลาหน่วงของ Postback และกฎเกณฑ์สำหรับค่าแบบละเอียดเทียบกับค่าแบบหยาบบนพื้นหลังกริดสีครีมอ่อนอบอุ่น

Ad Impression
      │
      ▼
App Install
      │
      ▼
First App Launch  ← conversion measurement t = 0
      │
      ├── Window 1: Day 0–2 after first launch
      │      Fine or coarse disclosure
      │      24–48h randomized delay after close/lock
      │
      ├── Window 2: Day 3–7 after first launch
      │      Coarse disclosure only (or absent)
      │      24–144h randomized delay after close/lock
      │
      └── Window 3: Day 8–35 after first launch
             Coarse disclosure only (or absent)
             24–144h randomized delay after close/lock

กลไกการหน่วงเวลาแบบสุ่ม: หน้าต่างที่ 1 เทียบกับหน้าต่างที่ 2 และ 3

เพื่อป้องกันฮิวริสติกส์การโจมตีด้วยเวลา (Timing-attack heuristics) ซึ่งผู้สังเกตการณ์อาจเชื่อมโยงมิลลิวินาทีที่แน่นอนของการทำธุรกรรมในแอปกับการรับ Postback การระบุแหล่งที่มา Apple จึงใช้การหน่วงเวลาการส่งข้อมูลแบบสุ่ม:

  • ตัวจับเวลาหน้าต่างที่ 1: หากหน้าต่างที่ 1 ปิดลงตามธรรมชาติโดยไม่มีการล็อกล่วงหน้า Postback แรกจะถูกส่งหลังจากการหน่วงเวลาแบบสุ่มเพิ่มอีก 24 ถึง 48 ชั่วโมง
  • ตัวจับเวลาหน้าต่างที่ 2 และ 3: Apple ขยายหน้าต่างการหน่วงเวลาแบบสุ่มเป็น 24 ถึง 144 ชั่วโมง (สูงสุด 6 วันเต็ม) เพื่อรองรับระยะเวลาที่ยาวนานขึ้นของช่วงการวัดผล

ระดับข้อมูล Postback ควบคุมการเปิดเผยข้อมูลอย่างไร

เมทริกซ์ระดับข้อมูล Postback อย่างเป็นทางการ

Apple จะกำหนดระดับข้อมูล Postback (ตั้งแต่ Tier 0 ถึง Tier 3) ให้กับการดาวน์โหลดแอป โดยอิงตามกลุ่มเป้าหมายที่เกี่ยวข้องกับแอปหรือโดเมนต้นทาง, แอปที่ลงโฆษณา, ประเทศที่ติดตั้ง และตัวระบุแหล่งที่มาแบบลำดับชั้น ทั้งนี้ Apple ไม่ได้เผยแพร่เกณฑ์จำนวนการติดตั้งสากลสำหรับ Tier 0 ถึง Tier 3

ระดับข้อมูล Postback Postback แรก (หน้าต่างที่ 1) Postback ครั้งที่ 2 และ 3 (หน้าต่างที่ 2 และ 3)
Tier 3 ID แหล่งที่มาแบบ 2, 3 หรือ 4 หลัก + ค่าแบบละเอียด (ถ้ามี) + เมทาดาต้าแหล่งที่มา/ประเทศที่มีสิทธิ์ ID แหล่งที่มาแบบ 2 หลัก + ค่าแบบหยาบ (ถ้ามี)
Tier 2 ID แหล่งที่มาแบบ 2, 3 หรือ 4 หลัก + ค่าแบบละเอียด (ถ้ามี) ID แหล่งที่มาแบบ 2 หลัก + ค่าแบบหยาบ (ถ้ามี)
Tier 1 ID แหล่งที่มาแบบ 2 หลัก + ค่าแบบหยาบ (ถ้ามี) ID แหล่งที่มาแบบ 2 หลัก + ค่าแบบหยาบ (ถ้ามี)
Tier 0 ID แหล่งที่มาแบบ 2 หลักเท่านั้น (ไม่มีค่าการแปลง) ไม่มีการส่ง Postback ครั้งที่ 2 หรือ 3

แผนภูมิเมทริกซ์การเปรียบเทียบระดับองค์กรที่แสดงกฎการเปิดเผยระดับข้อมูล Postback ของ SKAdNetwork 4.0 ตั้งแต่ Tier 0 ถึง Tier 3 พร้อมป้ายสถานะที่ชัดเจนบนพื้นหลังกริดสีครีมอุ่น

ตัวระบุแหล่งที่มาแบบลำดับชั้นทำงานอย่างไร

โครงสร้างและความละเอียดของตัวระบุแหล่งที่มา

SKAdNetwork 4.0 แทนที่ Campaign ID แบบ 2 หลักเดิมด้วยจำนวนเต็มลำดับชั้นแบบ 4 หลักที่เรียกว่า Source Identifier (ตัวระบุแหล่งที่มา):

Source Identifier=d4d3d2d1(0000 to 9999)\text{Source Identifier} = d_4 d_3 d_2 d_1 \quad (0000 \text{ to } 9999)

เครือข่ายโฆษณาและนักพัฒนาเป็นผู้กำหนดความหมายของตัวระบุแหล่งที่มาแบบลำดับชั้นตามข้อกำหนดในการรายงานภายใน:

  • ตัวเลขสองหลักล่าง (d2d1d_2 d_1): เป็นส่วนประกอบสองหลักขั้นต่ำของตัวระบุแหล่งที่มาแบบลำดับชั้นที่อาจถูกเปิดเผย เครือข่ายโฆษณาอาจใช้ส่วนนี้สำหรับการจัดกลุ่มแคมเปญในวงกว้าง แต่ Apple ไม่ได้กำหนดความหมายทางธุรกิจที่ตายตัว
  • ตัวเลขลำดับสูงกว่า (d4d3d_4 d_3): อาจเข้ารหัสตัวแปรมิติข้อมูลภายใน เช่น ตำแหน่งการจัดวางโฆษณา, Creative ID หรือเป้าหมายทางภูมิศาสตร์ Apple ไม่ได้กำหนดความหมายทางธุรกิจที่ตายตัวให้กับตัวเลขแต่ละหลัก

แผนผังทางสถาปัตยกรรมเทคโนโลยีที่แบ่งย่อยโครงสร้างตัวระบุแหล่งที่มาแบบลำดับชั้น 4 หลักของ SKAdNetwork 4.0 เป็นสถานะการเปิดเผยแบบ 2 หลักเทียบกับ 4 หลักบนพื้นหลังกริดสีครีมอุ่น

Original Source Identifier: [ d4 ] [ d3 ] [ d2 ] [ d1 ]

Possible disclosed forms in first winning postback:
2-digit disclosure:          [ d2 ] [ d1 ]
3-digit disclosure:    [ d3 ][ d2 ] [ d1 ]
4-digit disclosure: [ d4 ][ d3 ][ d2 ] [ d1 ]

The exact number of digits disclosed depends on Apple's postback data tier.

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

ค่าการแปลงแบบละเอียด (Fine-Grained) เทียบกับแบบหยาบ (Coarse-Grained)

ค่าการแปลงแบบละเอียด

ค่าการแปลงแบบละเอียดทำงานเป็นตัวเลขฐานสอง 6 บิต ซึ่งแทนจำนวนเต็มตั้งแต่ 0 ถึง 63 (26=642^6 = 64 ค่าที่ไม่ซ้ำกัน) โดยจะใช้งานได้เฉพาะในหน้าต่างที่ 1 ภายใต้ระดับข้อมูล Postback Tier 2 หรือ Tier 3 เท่านั้น ค่าแบบละเอียดช่วยให้นักพัฒนาสามารถเข้ารหัสช่วงรายได้ที่มีความละเอียด, ขั้นตอนใน Funnel หรือการรวมเหตุการณ์แบบ Bitwise ได้

ค่าการแปลงแบบหยาบ

ค่าการแปลงแบบหยาบเป็นทางเลือกที่มีความละเอียดต่ำกว่าในกรณีที่ระดับข้อมูล Postback ที่เกี่ยวข้องไม่อนุญาตให้เปิดเผยข้อมูลแบบละเอียด และทำหน้าที่เป็นรูปแบบค่าการแปลงสำหรับ Postback ครั้งที่ 2 และ 3 Apple ไม่ได้กำหนดความหมายทางธุรกิจล่วงหน้าให้กับ low, medium หรือ high โดยตัวอย่างด้านล่างเป็นการจับคู่ตามที่แอปพลิเคชันกำหนดเพื่อเป็นแนวทางประกอบความเข้าใจ:

  • low: การจับคู่ตัวอย่างสำหรับการมีส่วนร่วมพื้นฐาน (เช่น การเปิดแอปครั้งแรกหรือการลงทะเบียน)
  • medium: การจับคู่ตัวอย่างสำหรับการมีส่วนร่วมระดับกลาง (เช่น ทำบทแนะนำสำเร็จหรือเซสชันการใช้งานต่อเนื่องหลายวัน)
  • high: การจับคู่ตัวอย่างสำหรับเหตุการณ์สำคัญในการแปลงที่มีมูลค่าสูง (เช่น การซื้อในแอปหรือการเปิดใช้งานช่วงทดลองใช้)

สำหรับการออกแบบ Schema การแปลงเฉพาะตามการใช้งาน โปรดดูที่ เอกสารประกอบการแมปการแปลง SKAN

การแมปดัชนีลำดับ Postback

ใน Postback ของ SKAdNetwork 4 ฟิลด์ postback-sequence-index จะระบุหน้าต่างการแปลงที่สอดคล้องกัน:

postback-sequence-index หน้าต่างการแปลงที่สอดคล้องกัน รูปแบบค่าการแปลงที่อนุญาต
0 หน้าต่างที่ 1 (วันที่ 0–2 หลังเปิดใช้งานครั้งแรก) แบบละเอียด (0–63) หรือ แบบหยาบ (low, medium, high)
1 หน้าต่างที่ 2 (วันที่ 3–7 หลังเปิดใช้งานครั้งแรก) แบบหยาบ (low, medium, high) เท่านั้น (หรือไม่มีเลย)
2 หน้าต่างที่ 3 (วันที่ 8–35 หลังเปิดใช้งานครั้งแรก) แบบหยาบ (low, medium, high) เท่านั้น (หรือไม่มีเลย)

Apple ระบุว่า Postback ตรวจสอบความถูกต้องของการติดตั้งอาจมี conversion-value (แบบละเอียด) หรือ coarse-conversion-value (แบบหยาบ) อย่างใดอย่างหนึ่ง แต่จะไม่มีทั้งสองค่าพร้อมกันในเวลาเดียวกัน

เพย์โหลดต่อไปนี้เป็นตัวอย่างจำลองของ SKAdNetwork 4 ฟิลด์ Postback จริงอาจแตกต่างกันไปตามลำดับ Postback, ระดับข้อมูล Postback, ประเภทโฆษณา และเงื่อนไขการเปิดเผยความเป็นส่วนตัว ค่าตัวอย่างของ attribution-signature เป็นเพียงข้อมูลจำลองและไม่มีความถูกต้องตามหลักการเข้ารหัส

ตัวอย่างที่ 1 ด้านล่างแสดงเพย์โหลด Postback แบบละเอียดของหน้าต่างที่ 1 และตัวอย่างที่ 2 แสดงเพย์โหลด Postback แบบหยาบของหน้าต่างที่ 2:

{
  "version": "4.0",
  "ad-network-id": "example123.skadnetwork",
  "source-identifier": "4821",
  "app-id": 1234567890,
  "transaction-id": "6a8b1c2d-3e4f-5a6b-7c8d-9e0f1a2b3c4d",
  "postback-sequence-index": 0,
  "conversion-value": 47,
  "fidelity-type": 1,
  "did-win": true,
  "attribution-signature": "MEQCIFz8...SAMPLE_CRYPTOGRAPHIC_SIGNATURE...=="
}
{
  "version": "4.0",
  "ad-network-id": "example123.skadnetwork",
  "source-identifier": "48",
  "app-id": 1234567890,
  "transaction-id": "6a8b1c2d-3e4f-5a6b-7c8d-9e0f1a2b3c4d",
  "postback-sequence-index": 1,
  "coarse-conversion-value": "high",
  "fidelity-type": 1,
  "did-win": true,
  "attribution-signature": "MEQCIFz8...SAMPLE_CRYPTOGRAPHIC_SIGNATURE...=="
}

ข้อดีและข้อเสียของการล็อกหน้าต่างการแปลงล่วงหน้า

การเร่งรัดการวัดผลด้วยพารามิเตอร์ lockWindow

โดยค่าเริ่มต้น หน้าต่างการวัดผลแต่ละรายการจะเปิดอยู่ตลอดระยะเวลาปฏิทิน (48 ชั่วโมงสำหรับหน้าต่างที่ 1, 5 วันสำหรับหน้าต่างที่ 2 และ 28 วันสำหรับหน้าต่างที่ 3) เมื่อกำหนดค่า lockWindow เป็น true การอัปเดตนั้นจะกลายเป็นการอัปเดตค่าการแปลงครั้งสุดท้ายสำหรับหน้าต่างที่ใช้งานอยู่ ระบบจะเตรียม Postback และละเว้นการอัปเดตค่าการแปลงเพิ่มเติมสำหรับช่วงเวลาที่เหลือของหน้าต่างนั้น

แผนภาพเทคนิคเปรียบเทียบหน้าต่างการวัดผลเริ่มต้น 48 ชั่วโมงกับการเร่งรัดการล็อกหน้าต่างล่วงหน้าใน SKAdNetwork 4.0 บนพื้นหลังกริดสีครีมอุ่น

Default Window 1 (No Lock):
[First Launch] ─────────────── 48 Hours Open ───────────────► [Closes] ──► Delay (24-48h) ──► Postback 1

Locked Window 1 (Purchase at Hour 6):
[First Launch] ── 6h (Lock: true) ──► [Conversion Value Locked / Postback Prepared] ──► Delay (24-48h) ──► Postback 1 Sent Sooner

ข้อควรพิจารณาในการดำเนินงานเมื่อเรียกใช้การล็อกหน้าต่าง

  • การส่ง Postback ที่เร็วขึ้น: เมื่อการแปลงเสร็จสมบูรณ์ล่วงหน้า การหน่วงเวลา Postback จะเริ่มต้นทันทีที่มีการสรุปผลการแปลงที่ถูกล็อก แทนที่จะรอให้ครบระยะเวลาปฏิทินเต็ม
  • ความเป็นอิสระของหน้าต่าง: การล็อกหน้าต่างปัจจุบันจะไม่ทำให้เวลาเริ่มต้นของหน้าต่างถัดไปเลื่อนเร็วขึ้น หน้าต่างการแปลงถัดไปจะยังคงเริ่มต้นตามขอบเขตเวลาที่กำหนดไว้ล่วงหน้า (เช่น หน้าต่างที่ 2 จะเริ่มในวันที่ 3 โดยไม่คำนึงว่าหน้าต่างที่ 1 จะถูกล็อกเมื่อใดก็ตาม)
  • การบล็อกเหตุการณ์ภายหลัง: เมื่อมีการใช้งานคำสั่ง lockWindow: true ระบบปฏิบัติการจะละเว้นการเรียกอัปเดตค่าการแปลงทั้งหมดที่เกิดขึ้นในภายหลังตลอดช่วงเวลาที่เหลือของหน้าต่างเฉพาะนั้น

โค้ด Swift ด้านล่างแสดงวิธีการอัปเดตค่าการแปลงทั้งแบบละเอียดและแบบหยาบ พร้อมทั้งเรียกใช้การล็อกหน้าต่างโดยใช้ StoreKit:

import Foundation
import StoreKit

enum SKANError: Error {
    case invalidFineValue
    case unsupportedOSVersion
}

final class SKAN4Manager {

    static let shared = SKAN4Manager()
    private init() {}

    /// Updates conversion values and optionally locks the active SKAN 4.0 window
    /// - Parameters:
    ///   - fineValue: 6-bit integer (0 to 63) for Window 1. Note: In Windows 2 and 3, SKAdNetwork ignores the fineValue parameter.
    ///   - coarseValue: Coarse value string ("low", "medium", "high") for all windows
    ///   - shouldLock: Boolean flag to immediately finalize the active window
    func updateConversionState(
        fineValue: Int,
        coarseValue: SKAdNetwork.CoarseConversionValue,
        shouldLock: Bool,
        completion: ((Error?) -> Void)? = nil
    ) {
        guard #available(iOS 16.1, *) else {
            completion?(SKANError.unsupportedOSVersion)
            return
        }

        // Validate fine-grained value bounds (0 to 63)
        guard (0...63).contains(fineValue) else {
            completion?(SKANError.invalidFineValue)
            return
        }

        // Execute asynchronous SKAN 4.0 conversion update
        SKAdNetwork.updatePostbackConversionValue(
            fineValue,
            coarseValue: coarseValue,
            lockWindow: shouldLock
        ) { error in
            if let error = error {
                print("SKAN 4.0 update failed: \(error.localizedDescription)")
            } else {
                print("SKAN 4.0 update succeeded - Fine: \(fineValue), Coarse: \(coarseValue.rawValue), Locked: \(shouldLock)")
            }
            completion?(error)
        }
    }

    /// Illustrative revenue mapping workflow (Do not copy specific thresholds directly to production)
    /// Note: In production, determine the active conversion window and define window-specific coarse-value logic.
    func handleInAppPurchase(amountUSD: Double) {
        let fineVal: Int
        let coarseVal: SKAdNetwork.CoarseConversionValue
        let lock: Bool

        switch amountUSD {
        case 0.0..<5.0:
            fineVal = 10
            coarseVal = .low
            lock = false
        case 5.0..<25.0:
            fineVal = 25
            coarseVal = .medium
            lock = false
        case 25.0...:
            fineVal = 60
            coarseVal = .high
            // Lock window immediately to expedite postback preparation for high-value conversion
            lock = true
        default:
            fineVal = 0
            coarseVal = .low
            lock = false
        }

        updateConversionState(fineValue: fineVal, coarseValue: coarseVal, shouldLock: lock)
    }
}

ความเข้ากันได้ระหว่าง SKAdNetwork 4.0 และ AdAttributionKit

ความสัมพันธ์ระหว่าง SKAdNetwork และ Apple AdAttributionKit

Apple ได้แนะนำ AdAttributionKit เป็นกรอบงานการระบุแหล่งที่มาที่ขยายเพิ่มเติมสำหรับ iOS 17.4 ขึ้นไป AdAttributionKit และ SKAdNetwork สามารถใช้งานร่วมกันได้ แต่ยังคงเป็น API การระบุแหล่งที่มาที่แยกจากกัน:

  • การเรียกใช้ API เฉพาะโครงสร้างพื้นฐาน: แอปควรเรียกใช้ API การอัปเดตการแปลงที่สอดคล้องกับกรอบงานที่เครือข่ายโฆษณาใช้งาน หากเครือข่ายโฆษณาแสดงผลโฆษณาผ่าน AdAttributionKit แอปจะเรียกใช้เมธอดการแปลงของ AdAttributionKit แต่หากใช้ SKAdNetwork แอปจะเรียกใช้ StoreKit API
  • การเลือกผู้ชนะข้ามกรอบงาน: เมื่อกรอบงานทั้งสองบันทึกการแสดงผลที่มีคุณสมบัติสำหรับการติดตั้งครั้งเดียว ระบบปฏิบัติการจะประเมินร่วมกันและเลือกการแสดงผลที่ชนะเพียงรายการเดียวสำหรับการระบุแหล่งที่มา
  • พฤติกรรมการเชื่อมโยง (Bridging Behavior): Apple มีพฤติกรรมการเชื่อมโยงค่าการแปลงสำหรับการเรียกอัปเดต SKAdNetwork บางรายการ เพื่อให้มั่นใจถึงความเข้ากันได้ในเลเยอร์การวัดผลต่างๆ

SKAdNetwork 4 ยังคงมีความสำคัญสำหรับการใช้งานบูรณาการการระบุแหล่งที่มาของ App Store ที่มีอยู่เดิม ในขณะที่ Apple สนับสนุนให้การใช้งานโฆษณาแอปใหม่ๆ หันไปใช้ AdAttributionKit และจัดทำเอกสารความเข้ากันได้ระหว่างกรอบงานทั้งสอง

เมทริกซ์เปรียบเทียบ: โมเดลเดิม SKAN 3.0 เทียบกับโมเดลหลายหน้าต่าง SKAN 4.0

มิติการทำงาน SKAdNetwork 3.0 เดิม SKAdNetwork 4.0
จำนวน Postback ที่ชนะการประมูล หนึ่ง Postback สูงสุดสาม Postback
กำหนดเวลาการวัดผล ตัวจับเวลาแบบหมุนเวียน 24 ชั่วโมงหลังจากการอัปเดตเพิ่มขึ้นที่มีคุณสมบัติล่าสุด สูงสุด 35 วัน (สามหน้าต่างนับจากการเปิดใช้งานครั้งแรก)
โครงสร้าง Source ID จำนวนเต็ม 2 หลัก (00 ถึง 99) Source ID แบบลำดับชั้น 4 หลัก (2, 3 หรือ 4 หลัก)
ความละเอียดของค่าการแปลง จำนวนเต็ม 6 บิต (0 ถึง 63) เท่านั้น แบบละเอียด (0 ถึง 63) + แบบหยาบ (low, medium, high)
การสรุปผลล่วงหน้า ไม่รองรับ รองรับผ่าน Window Locking API (lockWindow: true)
การระบุแหล่งที่มาแบบ Web-to-App ไม่รองรับ รองรับสำหรับโฆษณาบนเว็บที่ระบุแหล่งที่มาได้ใน Safari

คำถามที่พบบ่อย (FAQ)

แอปพลิเคชันสามารถรับค่าการแปลงแบบละเอียดในหน้าต่างที่ 2 หรือหน้าต่างที่ 3 ได้หรือไม่
ไม่ได้ ภายใต้ข้อกำหนดของ SKAdNetwork 4.0 ค่าการแปลงแบบละเอียด (จำนวนเต็ม 6 บิตตั้งแต่ 0 ถึง 63) จะใช้งานได้เฉพาะในหน้าต่าง Postback แรก (0–2 วัน) เท่านั้น โดยมีเงื่อนไขว่าระดับข้อมูล Postback ที่เกี่ยวข้องต้องเป็น Tier 2 หรือ Tier 3 ส่วนหน้าต่างที่ 2 และ 3 จะส่งค่าแบบหยาบ (`low`, `medium`, `high`) กลับมาหรือละเว้นฟิลด์ดังกล่าว
จะเกิดอะไรขึ้นหากแอปพลิเคชันไม่ได้ล็อกหน้าต่าง Postback ล่วงหน้า
หากแอปพลิเคชันไม่ได้เรียกใช้คำสั่ง `lockWindow: true` หน้าต่างจะยังคงเปิดอยู่ตามระยะเวลาที่กำหนดเต็มจำนวน (48 ชั่วโมงสำหรับหน้าต่างที่ 1, 5 วันสำหรับหน้าต่างที่ 2 หรือ 28 วันสำหรับหน้าต่างที่ 3) เมื่อหน้าต่างปิดลงตามธรรมชาติ Apple จะใช้เวลาหน่วงแบบสุ่มที่กำหนดไว้ก่อนที่จะส่ง Postback ไปยังเครือข่ายโฆษณา และหากแอปที่ลงโฆษณาได้กำหนดค่าปลายทาง Postback ของนักพัฒนาซอฟต์แวร์ไว้ (`NSAdvertisingAttributionReportEndpoint`) ก็จะทำการส่งสำเนาไปยังนักพัฒนาด้วยเช่นกัน
SKAdNetwork 4.0 จำเป็นต้องแสดงพรอมต์ขออนุญาตการติดตามข้อมูลแอป (ATT) หรือไม่
ไม่ การใช้ SKAdNetwork นั้นไม่จำเป็นต้องได้รับอนุญาตจาก ATT เนื่องจาก SKAdNetwork มีการระบุแหล่งที่มาที่ช่วยรักษาความเป็นส่วนตัวโดยไม่ต้องเปิดเผยตัวระบุโฆษณาข้ามแอปที่คงอยู่ถาวร

สรุปและกรอบการตัดสินใจ

SKAdNetwork 4.0 ขยายการมองเห็นการระบุแหล่งที่มาเป็น 35 วันนับจากการเปิดใช้งานแอปครั้งแรก, แนะนำค่าการแปลงแบบหยาบเพื่อให้การวัดผลมีความละเอียดต่ำลงเมื่อไม่สามารถเปิดเผยข้อมูลแบบละเอียดได้ และช่วยให้นักพัฒนาสามารถล็อกหน้าต่างการวัดผลเพื่อลดความล่าช้าของ Postback เมื่อสรุปผลหน้าต่างการแปลงได้เร็วขึ้น การใช้งานให้ประสบความสำเร็จต้องอาศัยการแมป Schema การแปลงอย่างรอบคอบทั้งสามหน้าต่าง และการปรับเทียบการเรียกอัปเดตฝั่งไคลเอนต์ให้สอดคล้องกับเหตุการณ์สำคัญทางธุรกิจที่แท้จริง

การกำหนดเส้นทางลิงก์เชิงลึก (Deep-link routing) ในระดับแอปพลิเคชันสามารถทำงานควบคู่ไปกับโครงสร้างพื้นฐานการระบุแหล่งที่มาที่รักษาความเป็นส่วนตัวของ Apple ในฐานะเลเยอร์การวัดผลและการใช้งานเริ่มต้นที่แยกต่างหาก สำหรับเวิร์กโฟลว์การระบุแหล่งที่มาและการกำหนดเส้นทางลิงก์เชิงลึกเฉพาะการใช้งาน โปรดดูที่ เอกสารประกอบของ OpoInstall

วัสดุและเอกสารที่เกี่ยวข้อง

  • แนวคิด: การระบุแหล่งที่มาแบบหลายหน้าต่าง, ระดับข้อมูล Postback, ตัวระบุแหล่งที่มาแบบลำดับชั้น, การล็อกหน้าต่าง, ค่าแบบหยาบ

  • เทคโนโลยี: Apple SKAdNetwork, Apple AdAttributionKit, StoreKit Framework, OpoInstall Mobile SDK

  • มาตรฐาน: ข้อกำหนด JSON IETF RFC 8259

  • API: StoreKit updatePostbackConversionValue API, Postback ตรวจสอบความถูกต้องของการติดตั้ง SKAdNetwork

เอกสารประกอบอย่างเป็นทางการ

Share this article

Keep Discovering

OpenAI เพิ่มฟีเจอร์ควบคุม Apple Messages ให้กับ ChatGPT บน Mac

OpenAI เพิ่มฟีเจอร์ควบคุม Apple Messages ให้กับ ChatGPT บน Mac

OpenAI เพิ่มการรองรับ Apple Messages บน ChatGPT สำหรับ Mac เจาะลึกว่าสิทธิ์การใช้งานใหม่ การอนุมัติการส่งข้อความเริ่มต้น และระบบอัตโนมัติของ macOS ส่งผลต่อความปลอดภัยของระบบเอเจนต์อย่างไร

Alibaba Qwen UI Agent ควบคุมโทรศัพท์จริงได้ครอบคลุมกว่า 150 แอปพลิเคชัน

Alibaba Qwen UI Agent ควบคุมโทรศัพท์จริงได้ครอบคลุมกว่า 150 แอปพลิเคชัน

Alibaba Qwen UI Agent ควบคุมโทรศัพท์จริงได้ครอบคลุมกว่า 150 แอปพลิเคชัน อ่านบทวิเคราะห์ทางเทคนิคของโมเดลรากฐาน GUI นี้และผลการทดสอบมาตรฐาน

วิธีใช้งาน PrivacyInfo.xcprivacy สำหรับแอปพลิเคชันและ SDK บน iOS

วิธีใช้งาน PrivacyInfo.xcprivacy สำหรับแอปพลิเคชันและ SDK บน iOS

เรียนรู้วิธีการใช้งาน PrivacyInfo.xcprivacy สำหรับแอปและ SDK บน iOS: การประกาศ API ที่ต้องระบุเหตุผล (Required Reason APIs), การสร้างรายงานความเป็นส่วนตัว (Privacy Reports) และการแก้ไขข้อผิดพลาดการลงนาม CocoaPods