การระบุแหล่งที่มาแบบหลายหน้าต่างของ 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, การแปลงจากการทดลองใช้เป็นการสมัครสมาชิกแบบชำระเงิน และเหตุการณ์สำคัญในการสร้างรายได้ระยะยาว

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 |

ตัวระบุแหล่งที่มาแบบลำดับชั้นทำงานอย่างไร
โครงสร้างและความละเอียดของตัวระบุแหล่งที่มา
SKAdNetwork 4.0 แทนที่ Campaign ID แบบ 2 หลักเดิมด้วยจำนวนเต็มลำดับชั้นแบบ 4 หลักที่เรียกว่า Source Identifier (ตัวระบุแหล่งที่มา):
เครือข่ายโฆษณาและนักพัฒนาเป็นผู้กำหนดความหมายของตัวระบุแหล่งที่มาแบบลำดับชั้นตามข้อกำหนดในการรายงานภายใน:
- ตัวเลขสองหลักล่าง (
): เป็นส่วนประกอบสองหลักขั้นต่ำของตัวระบุแหล่งที่มาแบบลำดับชั้นที่อาจถูกเปิดเผย เครือข่ายโฆษณาอาจใช้ส่วนนี้สำหรับการจัดกลุ่มแคมเปญในวงกว้าง แต่ Apple ไม่ได้กำหนดความหมายทางธุรกิจที่ตายตัว - ตัวเลขลำดับสูงกว่า (
): อาจเข้ารหัสตัวแปรมิติข้อมูลภายใน เช่น ตำแหน่งการจัดวางโฆษณา, Creative ID หรือเป้าหมายทางภูมิศาสตร์ Apple ไม่ได้กำหนดความหมายทางธุรกิจที่ตายตัวให้กับตัวเลขแต่ละหลัก

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 (
ค่าการแปลงแบบหยาบ
ค่าการแปลงแบบหยาบเป็นทางเลือกที่มีความละเอียดต่ำกว่าในกรณีที่ระดับข้อมูล 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 และละเว้นการอัปเดตค่าการแปลงเพิ่มเติมสำหรับช่วงเวลาที่เหลือของหน้าต่างนั้น

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 ได้หรือไม่
จะเกิดอะไรขึ้นหากแอปพลิเคชันไม่ได้ล็อกหน้าต่าง Postback ล่วงหน้า
SKAdNetwork 4.0 จำเป็นต้องแสดงพรอมต์ขออนุญาตการติดตามข้อมูลแอป (ATT) หรือไม่
สรุปและกรอบการตัดสินใจ
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
updatePostbackConversionValueAPI, Postback ตรวจสอบความถูกต้องของการติดตั้ง SKAdNetwork
เอกสารประกอบอย่างเป็นทางการ
-
เอกสารสำหรับนักพัฒนา Apple เกี่ยวกับการรับ Postback ในหน้าต่างการแปลงหลายช่วง
-
เอกสารสำหรับนักพัฒนา Apple เกี่ยวกับการระบุพารามิเตอร์ใน Postback ตรวจสอบความถูกต้องของการติดตั้ง
-
เอกสารสำหรับนักพัฒนา Apple เกี่ยวกับการอัปเดตค่าการแปลง Postback
-
ทำความเข้าใจความเข้ากันได้ระหว่าง AdAttributionKit และ SKAdNetwork
Share this article



