Privacy Nutrition Label คือป้ายความเป็นส่วนตัวใน App Store ที่แสดงให้ผู้ใช้เห็นว่าแอปเก็บรวบรวมข้อมูลใดและเพื่อวัตถุประสงค์ใด Apple กำหนดให้ทุกแอปต้องมีป้ายที่กรอกครบถ้วนก่อนเผยแพร่หรืออัปเดต ตาม Apple App Privacy Details ป้ายความเป็นส่วนตัวครอบคลุมข้อมูล 14 ประเภทและวัตถุประสงค์ในการเก็บรวบรวม 5 ประการ ตั้งแต่การวิเคราะห์ไปจนถึงการปรับแต่งเนื้อหาในแบบเฉพาะบุคคล
ประเด็นสำคัญ
Privacy Nutrition Label คือบล็อกที่มองเห็นได้บนหน้าแอปใน App Store ซึ่งแสดงสรุปการเก็บรวบรวมข้อมูล Apple เปิดตัวป้ายในเดือนธันวาคม 2020 โดยเปรียบเสมือน ข้อมูลโภชนาการ บนผลิตภัณฑ์อาหาร: แทนที่จะเป็นแคลอรี่และไขมัน ผู้ใช้จะเห็นว่าแอปเก็บรวบรวมข้อมูลใดและนำไปใช้อย่างไร
ป้ายประกอบด้วยสองส่วน: “ข้อมูลที่ใช้สำหรับการติดตาม” และ “ข้อมูลที่เชื่อมโยงกับผู้ใช้” ส่วนแรกระบุข้อมูลที่ส่งไปยังบุคคลที่สามเพื่อการติดตาม ส่วนที่สองรวมถึงข้อมูลทั้งหมดที่แอปเก็บรวบรวมและเชื่อมโยงกับบัญชีหรืออุปกรณ์ของผู้ใช้
รายการข้อมูลแต่ละรายการจะถูกทำเครื่องหมายด้วยสี: สีเหลือง (ข้อมูลที่เชื่อมโยงกับผู้ใช้) หรือ สีเขียว (ข้อมูลที่ไม่เชื่อมโยงกับผู้ใช้) ยิ่งมีป้ายสีเหลืองมากเท่าใด ผู้ใช้ก็ยิ่งให้ความสนใจกับข้อมูลที่ถูกเก็บรวบรวมมากขึ้นเท่านั้น ตาม Adjust (2024) แอปที่มีป้ายสีเหลือง 8+ ป้ายมีอัตราการแปลงการติดตั้งน้อยกว่า 22%
การกรอกป้ายเกิดขึ้นใน App Store Connect ผ่านอินเทอร์เฟซเว็บ นักพัฒนาจะตอบคำถาม: แอปเก็บรวบรวมข้อมูลประเภทใดประเภทหนึ่งหรือไม่ ข้อมูลเชื่อมโยงกับผู้ใช้หรือไม่ และใช้เพื่อวัตถุประสงค์ใด Apple ไม่ได้ ตรวจสอบ ความถูกต้องของป้ายโดยทางโปรแกรม แต่ความไม่สอดคล้องระหว่างการประกาศกับพฤติกรรมจริงอาจนำไปสู่การปฏิเสธได้
Apple ประกาศป้ายในงาน WWDC 2020 พร้อมกับ iOS 14 ในตอนแรก ป้ายเหล่านี้เป็นส่วนหนึ่งของโครงการริเริ่มด้านความเป็นส่วนตัวที่กว้างขึ้นซึ่งรวมถึง ATT และ Privacy Manifest การกรอกป้ายกลายเป็นข้อบังคับสำหรับ แอปทั้งหมด และการอัปเดตตั้งแต่วันที่ 8 ธันวาคม 2020
ป้ายเหล่านี้เป็นคำตอบของ Apple ต่อความสนใจที่เพิ่มขึ้นจากหน่วยงานกำกับดูแลและผู้ใช้เกี่ยวกับการเก็บรวบรวมข้อมูล แตกต่างจาก GDPR และ CCPA ที่ต้องการความยินยอมอย่างเป็นทางการ Apple มุ่งเน้นไปที่ความโปร่งใส: ผู้ใช้จะเห็นทันทีว่าข้อมูลใดถูกเก็บรวบรวม แม้กระทั่งก่อนติดตั้งแอป
ในปี 2022 Apple เพิ่ม การโต้ตอบ ให้กับป้าย: ผู้ใช้สามารถแตะแต่ละประเภทและดูว่าข้อมูลถูกใช้เพื่อวัตถุประสงค์ใด ในปี 2024 Apple เริ่มกำหนดให้ป้ายต้องตรงกับข้อมูลที่ประกาศใน Privacy Manifest ภายในไบนารี
Google เปิดตัวส่วน “ความปลอดภัยของข้อมูล” (Data Safety) ที่คล้ายกันใน Google Play ในเดือนเมษายน 2022 ความแตกต่างหลัก: Google ตรวจสอบ ป้ายโดยใช้การสแกนโค้ดอัตโนมัติและอาจขอการยืนยันจากนักพัฒนา ในขณะที่ Apple อาศัยการประกาศของนักพัฒนาพร้อมการตรวจสอบระหว่างการตรวจสอบ
นอกจากนี้ Google Play ต้องการระบุมาตรการรักษาความปลอดภัย (การเข้ารหัสข้อมูลขณะพักและระหว่างการส่ง การปฏิบัติตามโปรแกรมความปลอดภัย) Apple ไม่ได้ขอข้อมูลนี้ แต่ตรวจสอบการปฏิบัติตามข้อกำหนดผ่านคุณสมบัติบังคับเช่น ATS (App Transport Security)
Apple ไม่ได้วิเคราะห์โค้ดของแอปเพื่อกรอกป้าย — นักพัฒนาจะประกาศข้อมูลที่เก็บรวบรวมอย่างอิสระ อย่างไรก็ตาม ในปี 2024 Apple เริ่มตรวจสอบป้ายกับ Privacy Manifest ภายในไบนารี ซึ่งทำให้กระบวนการเป็นทางการมากขึ้น
นัก-developer เข้าไปที่ App Store Connect → เลือกแอป → ส่วน “ความเป็นส่วนตัวของแอป” → “ป้ายความเป็นส่วนตัว” แบบสอบถามจะเปิดขึ้นพร้อมคำถามเกี่ยวกับข้อมูลแต่ละประเภทจาก 14 ประเภท สำหรับแต่ละประเภท ต้องระบุ: คุณเก็บรวบรวมข้อมูลประเภทนี้หรือไม่ ข้อมูลเชื่อมโยงกับผู้ใช้หรือไม่ และใช้เพื่อวัตถุประสงค์ใด
วัตถุประสงค์ในการเก็บรวบรวมรวมถึง: โฆษณาของบุคคลที่สาม การวิเคราะห์ของนักพัฒนา การพัฒนาผลิตภัณฑ์ การปรับเปลี่ยนเนื้อหาในแบบเฉพาะบุคคล และการทำงานของแอป ข้อมูลหนึ่งประเภทสามารถใช้เพื่อวัตถุประสงค์หลายอย่างได้ สิ่งสำคัญ: หากข้อมูลถูกแชร์กับบุคคลที่สาม จะต้องทำเครื่องหมายเป็นการติดตาม
หลังจากบันทึกการเปลี่ยนแปลง Apple จะสร้างป้ายเวอร์ชันใหม่ซึ่งจะปรากฏใน App Store ภายใน 24 ชั่วโมง เมื่อส่งบิลด์ใหม่ ป้ายจะถูกตรวจสอบโดยอัตโนมัติ: หากยังไม่ได้กรอก ปุ่มส่งจะถูกบล็อก Apple Developer (2024) แนะนำให้อัปเดตป้ายทุกครั้งที่มีการเปลี่ยนแปลงในตรรกะการเก็บรวบรวมข้อมูล
จนถึงปี 2024 ป้ายเป็นการรายงานตนเองทั้งหมด — Apple เชื่อถือคำตอบของนักพัฒนา ด้วยการเปิดตัว Privacy Manifest และการรวมป้ายเข้ากับ manifesต์ Apple เริ่ม การอ้างอิงโยงอัตโนมัติ ตัวอย่างเช่น หาก manifesต์ประกาศการเก็บรวบรวมตัวระบุ (IDFA) สำหรับการโฆษณา แต่ป้ายไม่ได้ทำเครื่องหมายประเภทนี้ App Store Connect จะออกคำเตือน
อย่างไรก็ตาม การตรวจสอบอัตโนมัติอย่างสมบูรณ์ยังไม่มีอยู่ นักพัฒนาต้องรักษาแหล่งข้อมูลทั้งสอง (ป้าย + manifesต์) ให้เป็นปัจจุบัน สามารถตรวจพบความไม่สอดคล้องได้ระหว่างการตรวจสอบด้วยตนเอง โดยเฉพาะอย่างยิ่งสำหรับการอัปเดตครั้งใหญ่หรือแอปที่มีข้อมูลจำนวนมาก
| วิธีการตรวจสอบ | Apple | |
|---|---|---|
| การรายงานตนเอง | ใช่ หลัก | ใช่ หลัก |
| การตรวจสอบโค้ดอัตโนมัติ | บางส่วน (ตั้งแต่ 2024, ผ่าน manifesต์) | ใช่ |
| การตรวจสอบด้วยตนเองโดยผู้ตรวจทาน | เมื่อสงสัย | นานๆ ครั้ง |
Apple แบ่งข้อมูลออกเป็น 14 ประเภทที่จัดกลุ่มเป็น 3 ส่วน: ข้อมูลที่ใช้สำหรับการติดตาม ข้อมูลที่เชื่อมโยงกับผู้ใช้ และข้อมูลที่ไม่เชื่อมโยงกับผู้ใช้ มาดูประเภทหลักกัน
ประเภท “ข้อมูลติดต่อ” รวมถึงชื่อ อีเมล โทรศัพท์ และที่อยู่ทางกายภาพ ประเภท “ตัวระบุ” รวมถึง IDFA, รหัสผู้ใช้ และชื่อผู้ใช้ หากแอปใช้การเข้าสู่ระบบผ่านโซเชียลและรับอีเมลของผู้ใช้ จะต้องระบุประเภทนี้ด้วยวัตถุประสงค์ “การดำเนินการตามฟังก์ชัน”
ประเภท “ข้อมูลการชำระเงิน” รวมถึงข้อมูลการซื้อ: หมายเลขบัตร (หากไม่ได้ใช้ Apple Pay) และประวัติการซื้อ Apple Pay ไม่จำเป็นต้องระบุประเภทนี้เพราะ Apple ดำเนินการชำระเงินในฝั่งของตนและไม่ส่งข้อมูลไปยังนักพัฒนา
ประเภท “ข้อมูลการใช้งาน” รวมถึงบันทึกการโต้ตอบ การคลิกโฆษณา การดูหน้าเว็บ และเวลาเซสชัน แอปส่วนใหญ่เก็บรวบรวมข้อมูลนี้เพื่อ การวิเคราะห์ สิ่งสำคัญ: หากข้อมูลถูกแชร์กับบุคคลที่สาม (Google Analytics, Firebase) จะต้องทำเครื่องหมายวัตถุประสงค์ “การวิเคราะห์”
ประเภท “การวินิจฉัย” รวมถึงบันทึกการขัดข้อง ข้อมูลประสิทธิภาพ และรายงานการเริ่มทำงาน โดยปกติข้อมูลนี้จะไม่เชื่อมโยงกับผู้ใช้ (not linked) และถูกเก็บรวบรวมในรูปแบบรวม อย่างไรก็ตาม ข้อมูลจะต้องสะท้อนในป้ายหากแอปใช้ Crashlytics หรือ Sentry
ประเภท “เนื้อหาผู้ใช้” รวมถึงรูปภาพ วิดีโอ เสียง ไฟล์ และเนื้อหาที่ผู้ใช้สร้างขึ้น (ข้อความ ความคิดเห็น) หากแอปขอสิทธิ์เข้าถึงรูปภาพหรือไฟล์ ประเภทนี้เป็นข้อบังคับ แม้ว่าแอปจะอ่านรูปภาพเท่านั้น ก็ถือว่าเป็นการเก็บรวบรวมข้อมูล
ประเภท “ประวัติการซื้อ” รวมถึงข้อมูลรวมเกี่ยวกับการซื้อภายในแอป การสมัครรับบริการ และการชำระเงิน อย่าสับสนกับ “ข้อมูลทางการเงิน” ประวัติการซื้อคือ ข้อมูลเมตา ของธุรกรรม ไม่ใช่รายละเอียดการชำระเงิน
คำแนะนำทีละขั้นตอนในการกรอก Privacy Nutrition Label ใน App Store Connect สำหรับแอปใหม่หรือที่อัปเดตแล้ว
ก่อนกรอกป้าย ให้รวบรวมรายการ SDK และบริการทั้งหมดที่เก็บรวบรวมข้อมูล: Firebase, AppsFlyer, Google Ads, Facebook SDK, Sentry, Amplitude สำหรับแต่ละ SDK ให้ตรวจสอบว่ามันเก็บรวบรวมข้อมูลใดและแชร์ข้อมูลกับบุคคลที่สามหรือไม่ Adjust (2024) แนะนำให้เก็บตารางที่มีประเภทข้อมูล วัตถุประสงค์ และการเชื่อมโยงสำหรับแต่ละ SDK
กำหนดว่าโค้ดของคุณเก็บรวบรวมข้อมูลใดโดยตรง ตัวอย่างเช่น หากแอปบันทึกประวัติการค้นหาและเชื่อมโยงกับบัญชีผู้ใช้ นี่คือ “ข้อมูลการใช้งาน” ที่เชื่อมโยงสำหรับวัตถุประสงค์ “การพัฒนาผลิตภัณฑ์” ตรวจสอบเสมอว่าข้อมูลถูกแชร์กับบุคคลที่สาม (เครือข่ายโฆษณา การวิเคราะห์) หรือไม่
ใน App Store Connect เลือกแอป → ส่วน “ความเป็นส่วนตัวของแอป” คลิก “เริ่มต้น” และเลือกว่าแอปของคุณเก็บรวบรวมข้อมูลเพื่อการติดตามหรือไม่ ถ้าไม่ ให้ดำเนินการต่อในแบบสอบถาม ตอบคำถามแต่ละข้อตามลำดับสำหรับข้อมูลทั้ง 14 ประเภท
ตัวอย่าง: หากแอปใช้ Firebase Analytics ให้ตอบ “ใช่” สำหรับประเภท “ข้อมูลการใช้งาน” ระบุเชื่อมโยง (Firebase เชื่อมโยงข้อมูลกับ Instance ID) และวัตถุประสงค์ “การวิเคราะห์” หากคุณใช้ Firebase Crashlytics ด้วย ให้เพิ่มประเภท “การวินิจฉัย” ด้วยวัตถุประสงค์ “การพัฒนาผลิตภัณฑ์”
หลังจากกรอกแล้ว ให้บันทึกป้าย หากคุณมีหลายแอป ป้ายจะไม่ซ้ำกันสำหรับแต่ละแอป — ไม่รองรับการคัดลอก อัปเดตป้าย ทุกครั้งที่มีการเปลี่ยนแปลง ในตรรกะการเก็บรวบรวมข้อมูล มิฉะนั้นป้ายเก่าอาจไม่ตรงกับฟังก์ชันการทำงานใหม่
// ตัวอย่าง: การตรวจสอบการส่งข้อมูลสำหรับการวิเคราะห์
import FirebaseAnalytics
final class AnalyticsService {
static func logEvent(_ name: String, params: [String: Any]) {
Analytics.logEvent(name, parameters: params)
}
static func logPurchase(amount: Double, currency: String) {
Analytics.logEvent(AnalyticsEventPurchase, parameters: [
AnalyticsParameterValue: amount,
AnalyticsParameterCurrency: currency
])
}
}
ในการอัปเดตป้ายสำหรับแอปที่เผยแพร่แล้ว ให้เปิดเวอร์ชันแอปใน App Store Connect และทำการเปลี่ยนแปลงในส่วน “ความเป็นส่วนตัวของแอป” การเปลี่ยนแปลงจะมีผลหลังจากผ่านการตรวจสอบ ป้ายใหม่จะแสดงต่อผู้ใช้ ภายใน 24 ชั่วโมง หลังจากเผยแพร่การอัปเดต
สำคัญ: การลบข้อมูลออกจากป้าย (เช่น คุณหยุดแชร์ข้อมูลกับบุคคลที่สาม) ไม่จำเป็นต้องมีบิลด์ใหม่ — เพียงเปลี่ยนป้ายใน App Store Connect การเพิ่มข้อมูลใหม่ต้องทั้งเปลี่ยนป้ายและอัปเดต Privacy Manifest ที่เกี่ยวข้องในโค้ด
นักพัฒนามักทำผิดพลาดเมื่อกรอกป้าย ซึ่งนำไปสู่การปฏิเสธการอัปเดตหรือข้อร้องเรียนจากผู้ใช้
ข้อผิดพลาดที่พบบ่อยที่สุดคือนักพัฒนากรอกป้ายโดยอิงจากโค้ดของตนเองเท่านั้น โดยลืม SDK ของบุคคลที่สาม Firebase, AppsFlyer, Facebook SDK และอื่นๆ เก็บรวบรวมข้อมูล โดยอัตโนมัติ โดยไม่ต้องใช้โค้ดเพิ่มเติมของนักพัฒนา ตัวอย่างเช่น Firebase Analytics เก็บรวบรวมข้อมูลการใช้งาน (เหตุการณ์ หน้าจอ) และตัวระบุ (Instance ID, IDFV)
คำแนะนำ: สำหรับแต่ละ SDK ที่รวมเข้าด้วยกัน ให้อ่านส่วน “ข้อมูลที่เก็บรวบรวม” ในเอกสารประกอบและเพิ่มประเภทที่เกี่ยวข้องลงในป้าย AppsFlyer (2024) เผยแพร่รายการข้อมูลที่เก็บรวบรวมสำหรับแต่ละเวอร์ชันของ SDK ซึ่งช่วยให้นักพัฒนาตรวจสอบป้ายได้
นักพัฒนาหลายคนทำเครื่องหมายข้อมูลเป็น not linked ในเมื่อจริงๆ แล้วข้อมูลเชื่อมโยงกับบัญชี หากผู้ใช้มีบัญชีและคุณบันทึกชื่อหรืออีเมลของพวกเขา นั่นคือ linked หากคุณเก็บรวบรวมบันทึกการขัดข้องโดยไม่เชื่อมโยงกับบัญชี นั่นคือ not linked ข้อผิดพลาดใน การเชื่อมโยง อาจถือเป็นการทำให้ผู้ใช้เข้าใจผิด
ข้อมูล linked จะแสดงเป็นสีเหลืองและดึงดูดความสนใจจากผู้ใช้มากขึ้น หากคุณไม่แน่ใจว่าข้อมูลประเภทใดประเภทหนึ่งเป็น linked หรือไม่ ควรทำเครื่องหมายเป็น linked และให้คำอธิบายระหว่างการตรวจสอบ Apple ไม่ลงโทษการประกาศเกินความจริง แต่อาจปฏิเสธเนื่องจากการประกาศไม่เพียงพอ
หากข้อมูลถูกแชร์กับบุคคลที่สามและใช้สำหรับโฆษณาแบบกำหนดเป้าหมาย จะต้องทำเครื่องหมายเป็น “ข้อมูลที่ใช้สำหรับการติดตาม” นักพัฒนาบางคน ซ่อน การติดตามโดยส่งข้อมูลเป็นการวิเคราะห์ — ซึ่งละเมิดกฎของ Apple และอาจนำไปสู่การแบน
กฎของ Apple: หากข้อมูลถูกแชร์กับบุคคลที่สามและใช้สำหรับการปรับเปลี่ยนโฆษณาในแบบเฉพาะบุคคลหรือการแสดงที่มา นั่นคือการติดตาม แม้ว่าแอปจะไม่แสดงโฆษณา แต่ใช้ Google Ads สำหรับการแสดงที่มาการติดตั้ง ข้อมูลการดูถือเป็นการติดตาม
ป้ายเก่าที่ไม่ตรงกับตรรกะการเก็บรวบรวมข้อมูลปัจจุบันเป็นปัญหาทั่วไปในการบำรุงรักษาแอประยะยาว นักพัฒนาเปลี่ยน SDK เพิ่มฟีเจอร์ใหม่ แต่ลืม อัปเดตป้าย ผลลัพธ์คือผู้ใช้เห็นข้อมูลที่ล้าสมัย ซึ่งลดความไว้วางใจ
แนวทางปฏิบัติที่ดีที่สุด: ทุกครั้งที่มีการเปลี่ยนแปลงโค้ดที่เกี่ยวข้องกับข้อมูล ให้ตรวจสอบป้ายและ manifesต์ ขอแนะนำให้ตั้งค่าการตรวจสอบ CI ที่เตือนเกี่ยวกับความจำเป็นในการอัปเดตป้ายเมื่อมีการเปลี่ยนแปลงไฟล์ PrivacyInfo.xcprivacy หรือรายการ SDK
คำถามที่พบบ่อย
ใช่ ป้ายจำเป็นสำหรับ แอปทั้งหมด รวมถึงแอปฟรี แอปฟรีที่มีการซื้อภายในแอป และแอปแบบชำระเงิน ข้อยกเว้นเพียงอย่างเดียวคือแอปในหมวด “สำหรับเด็ก” ซึ่งกฎระเบียบเข้มงวดยิ่งกว่า
App Store Connect จะไม่อนุญาตให้คุณส่งบิลด์เพื่อตรวจสอบหากไม่มีป้ายที่กรอกครบถ้วน แอปที่เผยแพร่แล้วยังคงอยู่ในร้านค้า แต่ไม่สามารถรับ การอัปเดต ได้หากไม่มีป้าย
ทุกครั้งที่มีการเปลี่ยนแปลงในตรรกะการเก็บรวบรวมข้อมูล: การเพิ่ม SDK ใหม่ การเปลี่ยนวัตถุประสงค์การใช้งาน การแชร์ข้อมูลกับบุคคลที่สาม อย่างน้อยทุก 6-12 เดือน ให้ตรวจสอบป้ายกับโค้ดปัจจุบัน
ใช่ ผู้ใช้ทุกคนสามารถรายงานความไม่สอดคล้องระหว่างป้ายกับพฤติกรรมจริงของแอปผ่านแบบฟอร์มของ Apple เมื่อได้รับข้อร้องเรียนหลายครั้ง Apple อาจ ดำเนินการตรวจสอบ และปฏิเสธการอัปเดตครั้งถัดไป
ใช่ ป้ายมองเห็นได้บนหน้าแอป แต่ไม่แสดงในผลการค้นหาหรือคำแนะนำ ผู้ใช้จะเห็นป้ายเมื่อ ดู หน้าแอปก่อนการติดตั้ง
สรุป
เราจะพัฒนาแอปพลิเคชันบนมือถือแบบครบวงจร
IT Sectr สร้างแอปพลิเคชัน iOS และ Android สำหรับสตาร์ทอัพและธุรกิจตั้งแต่ปี 2017 เราจะให้คำแนะนำและเสนอวิธีแก้ปัญหาที่ดีที่สุดแก่คุณ
อ่านเพิ่มเติม