คู่มือ 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

Pony.ai วางแผนนำรถแท็กซี่ไร้คนขับ 200 คันสู่เกาหลี? การเปลี่ยนแปลงของระบบการเดินทางอัจฉริยะ

Pony.ai วางแผนนำรถแท็กซี่ไร้คนขับ 200 คันสู่เกาหลี? การเปลี่ยนแปลงของระบบการเดินทางอัจฉริยะ

Pony.ai วางแผนนำรถแท็กซี่ไร้คนขับ 200 คันสู่เกาหลีร่วมกับ FutureLink ภายในปี 2028 พร้อมเรียนรู้ว่าการขยายกองยานยนต์ไร้คนขับส่งผลอย่างไรต่อการเดินทางอัจฉริยะและการทำ deferred deep linking

วิธีใช้ Cohort Analysis เพื่อตรวจสอบวงจรการใช้งานแอปและอัตราการเลิกใช้งาน

วิธีใช้ Cohort Analysis เพื่อตรวจสอบวงจรการใช้งานแอปและอัตราการเลิกใช้งาน

เรียนรู้วิธีอ่านตารางการวิเคราะห์กลุ่มผู้ใช้ (cohort analysis table) เพื่อตรวจสอบอัตราการรักษาผู้ใช้ของแอป วิเคราะห์การเสื่อมถอยในแนวราบ ประเมินการออกเวอร์ชันใหม่ในแนวตั้ง และตรวจจับความผิดปกติของวันในปฏิทิน

John Ternus เข้ามารับตำแหน่ง CEO ของ Apple: สิ่งนี้มีความหมายต่อ Siri AI อย่างไร

John Ternus เข้ามารับตำแหน่ง CEO ของ Apple: สิ่งนี้มีความหมายต่อ Siri AI อย่างไร

John Ternus เข้ารับตำแหน่ง CEO ของ Apple ในวันที่ 1 กันยายน ค้นพบว่าการเปลี่ยนผ่านผู้บริหารครั้งนี้ส่งผลกระทบอย่างไรต่อ Siri AI, App Intents และ mobile deep linking