ใน iOS 14.5 Apple กำหนดให้นักพัฒนาแอปต้องได้รับอนุญาตจากผู้ใช้ผ่านเฟรมเวิร์ก App Tracking Transparency เพื่อติดตามผู้ใช้หรือเข้าถึงตัวระบุโฆษณา (IDFA) ของอุปกรณ์ ดูรายละเอียดเพิ่มเติมได้ที่ นโยบายความเป็นส่วนตัวของผู้ใช้และการใช้ข้อมูลของ Apple และ เอกสารประกอบ App Tracking Transparency ของ Apple
ผลิตภัณฑ์ Firebase ที่ได้รับผลกระทบ
Firebase SDK ไม่ได้เข้าถึง IDFA แม้ว่าบาง SDK จะมีการผสานรวมกับ Google Analytics ซึ่งอาจเกี่ยวข้องกับการเข้าถึง IDFA
ตารางด้านล่างแสดงผลิตภัณฑ์ Firebase ที่พร้อมใช้งานในแพลตฟอร์ม Apple และอธิบายว่าฟังก์ชันการทำงานของแต่ละผลิตภัณฑ์จะได้รับผลกระทบอย่างไรหากเข้าถึง IDFA ไม่ได้
| ผลิตภัณฑ์ | ผลกระทบหากเข้าถึง IDFA ไม่ได้ |
|---|---|
| A/B Testing | ข้อมูลการกำหนดเป้าหมายบางอย่าง (เช่น ข้อมูลประชากร) ในการผสานรวม A/B Testing กับ Google Analytics ได้มาจาก IDFA แอปที่เข้าถึง IDFA ไม่ได้จะใช้การกำหนดเป้าหมายนี้ไม่ได้ |
| Firebase AI Logic 1 | ไม่ได้รับผลกระทบ |
| App Check | ไม่ได้รับผลกระทบ |
| App Distribution | ไม่ได้รับผลกระทบ |
| Authentication | ไม่ได้รับผลกระทบใน Authentication และผู้ให้บริการ Authentication บุคคลที่หนึ่ง เช่น Google Sign-In และการตรวจสอบสิทธิ์ทางโทรศัพท์ |
| Cloud Firestore | ไม่ได้รับผลกระทบ |
| Cloud Functions | ไม่ได้รับผลกระทบ |
| Cloud Messaging | เมื่อใช้กับ Google Analytics ระบบจะบันทึกเหตุการณ์ Conversion บางรายการที่เกี่ยวข้องกับ FCM โดยอัตโนมัติGoogle Analytics การระบุแหล่งที่มา ของเหตุการณ์เหล่านี้ต้องมีการเข้าถึง IDFA |
| Cloud Storage | ไม่ได้รับผลกระทบ |
| Crashlytics | ไม่ได้รับผลกระทบ การผสานรวม Crashlytics กับ Google Analytics ซึ่งให้ข้อมูลข้อขัดข้องแบบเรียลไทม์และเส้นทางของผู้ใช้ไม่ได้ขึ้นอยู่กับ IDFA |
| Dynamic Links | ฟังก์ชันการทำงานในการเปิดลิงก์ไม่ได้รับผลกระทบ เมื่อใช้กับ Google Analytics การระบุแหล่งที่มาของเหตุการณ์ Conversion ของลิงก์จะไม่พร้อมใช้งาน |
| In-App Messaging | ไม่ได้รับผลกระทบ |
| Firebase การติดตั้งใช้งาน | ไม่ได้รับผลกระทบ |
| InstanceID | ไม่ได้รับผลกระทบ |
| Firebase ML | ไม่ได้รับผลกระทบ |
| Performance Monitoring | ไม่ได้รับผลกระทบ |
| Realtime Database | ไม่ได้รับผลกระทบ |
| Remote Config | เมื่อใช้กับ Google Analytics Remote Config จะไม่อนุญาตให้ใช้พร็อพเพอร์ตี้ผู้ใช้ที่สร้างขึ้นโดยอัตโนมัติสำหรับการกำหนดเป้าหมายหากไม่มีสิทธิ์เข้าถึง IDFA |
1 Firebase AI Logic ก่อนหน้านี้มีชื่อว่า "Vertex AI in Firebase"
การผสานรวม Firebase ที่ได้รับผลกระทบ
ตารางด้านล่างแสดงผลิตภัณฑ์ที่ผสานรวมกับ Firebase ซึ่งได้รับผลกระทบหากเข้าถึง IDFA ไม่ได้
| ผลิตภัณฑ์ | ผลกระทบหากเข้าถึง IDFA ไม่ได้ |
|---|---|
| Google Analytics | การบันทึกเหตุการณ์ Analytics การรายงานเหตุการณ์ และการวัด Conversion ไม่ได้รับผลกระทบ แต่การระบุแหล่งที่มาจะได้รับผลกระทบหากเข้าถึง IDFA ไม่ได้ ดูข้อมูลเพิ่มเติมเกี่ยวกับการตอบสนองของ Google ต่อ iOS 14 ได้ใน บล็อกโพสต์ |
การขอสิทธิ์ติดตามแอปใน iOS 14
หากต้องการให้แอปพลิเคชัน Apple เข้าถึง IDFA ได้ คุณสามารถเพิ่มเฟรมเวิร์ก App Tracking Transparency ของ Apple ลงในแอปและขอสิทธิ์ติดตามหรือเข้าถึง IDFA ของผู้ใช้
แอปพลิเคชันจำนวนมากเลือกที่จะแสดงหน้าจออธิบายข้อมูลต่างๆ ที่ปรากฏก่อนขอสิทธิ์ คุณสามารถใช้หน้าจออธิบายนี้เพื่อแจ้งให้ผู้ใช้ทราบบริบทเพิ่มเติมเกี่ยวกับวิธีที่แอปของคุณใช้ IDFA ก่อนที่จะขอสิทธิ์เข้าถึง
หากคุณเป็นผู้เผยแพร่แอป AdMob หรือ Ad Manager ให้พิจารณาใช้ Funding Choices ซึ่งจะจัดการการขอความยินยอมในการแสดงโฆษณาที่ปรับตามโปรไฟล์ของผู้ใช้ รวมถึง ความยินยอมในการติดตามผู้ใช้ตามหลักเกณฑ์ของ Apple โดยอัตโนมัติ ดูรายละเอียดเพิ่มเติมได้ที่หน้า AdMobความยินยอมพร้อมข้อความขอความยินยอมจากผู้ใช้
คู่มือต่อไปนี้จะแสดงโซลูชันที่ใช้ Firebase In-App Messagingในการสร้างและ แสดงหน้าจออธิบายข้อมูลต่างๆ ที่ปรากฏก่อนขอสิทธิ์เข้าถึงการติดตามผ่าน App Tracking Transparency
เพิ่ม In-App Messaging ลงในแอป
ทำตามวิธีการเพื่อ เพิ่ม In-App Messaging ลงในแอปพลิเคชัน Apple
จัดการการปิดข้อความในแอป
ขั้นแรก ให้หลีกเลี่ยงการแสดงหน้าจออธิบายข้อมูลต่างๆ ที่ปรากฏในอุปกรณ์ที่ไม่สามารถแสดงกล่องโต้ตอบความยินยอม เช่น อุปกรณ์ที่ใช้ iOS 13 ตรวจสอบว่าโค้ดนี้ทำงานทันทีหลังจาก FirebaseApp.configure()
Swift
if NSClassFromString("ATTrackingManager") == nil {
// Avoid showing the App Tracking Transparency explainer if the
// framework is not linked.
InAppMessaging.inAppMessaging().messageDisplaySuppressed = true
}
ใช้โปรโตคอล InAppMessagingDisplayDelegate เพื่อจัดการเหตุการณ์เมื่อผู้ใช้ปิดหน้าจออธิบายข้อมูลต่างๆ ที่ปรากฏ หากผู้ใช้แตะ "ตกลง" ให้แสดงข้อความแจ้งของระบบผ่านเฟรมเวิร์ก App Tracking Transparency
Swift
// The InAppMessaging delegate must be assigned before events can be handled.
InAppMessaging.inAppMessaging().delegate = self
func messageClicked(_ inAppMessage: InAppMessagingDisplayMessage,
with action: InAppMessagingAction) {
switch action.actionText {
case "OK":
ATTrackingManager.requestTrackingAuthorization { status in
switch status {
case .authorized:
// Optionally, log an event when the user accepts.
Analytics.logEvent("tracking_authorized", parameters: nil)
case _:
// Optionally, log an event here with the rejected value.
}
}
case _:
// do nothing
}
}
สร้างแคมเปญ In-App Messaging
เมื่อใส่โค้ดลงในแอปพลิเคชันแล้ว ให้สร้างข้อความในแอปใน Firebase คอนโซล
- ในคอนโซล Firebase สร้างแคมเปญ In-App Messaging ใหม่
- ป้อนเนื้อหาที่ต้องการลงในข้อความในแอปและตั้งค่าให้ข้อความทริกเกอร์ในเหตุการณ์
app_launch - ในส่วน การกำหนดเป้าหมาย ให้ตรวจสอบว่าแคมเปญกำหนดเป้าหมายเฉพาะแอปเวอร์ชันล่าสุดและเวอร์ชันที่สูงกว่า
คุณสามารถปรับแต่งลักษณะที่ปรากฏของหน้าจออธิบายข้อมูลต่างๆ ที่ปรากฏได้โดยทำตาม วิธีการใน In-App Messagingเอกสารประกอบ
ไม่บังคับ: การทดสอบ A/B ของหน้าจออธิบายข้อมูลต่างๆ ที่ปรากฏแบบต่างๆ
In-App Messaging มีการผสานรวมกับ Firebase A/B Testing ในตัว ซึ่งคุณสามารถใช้เพื่อทดสอบ หน้าจออธิบายข้อมูลต่างๆ ที่ปรากฏแบบต่างๆ ได้
Firebase A/B Testing จะสร้างกลุ่มทดสอบโดยอัตโนมัติและช่วยให้คุณ เห็นภาพว่าผู้ใช้โต้ตอบกับแอปพลิเคชันเวอร์ชันต่างๆ อย่างไร
บันทึกสิทธิ์ติดตามแอป
หากคุณไม่ได้บันทึกเหตุการณ์ Google Analytics เมื่อจัดการการตอบกลับสิทธิ์ติดตามแอป คุณจะต้องบันทึกเพื่อวัดการเปลี่ยนแปลงในอัตราการตอบกลับ เมื่อทำการทดสอบ A/B
Swift
ATTrackingManager.requestTrackingAuthorization { status in
switch status {
case .authorized:
// Optionally, log an event when the user accepts.
Analytics.logEvent("tracking_authorized", parameters: nil)
case _:
// Optionally, log an event here with the rejected value.
}
}
สร้างเหตุการณ์ Conversion ใหม่
ในส่วน Analytics ของคอนโซล Firebaseให้ไปที่เมนู Conversion แล้วเพิ่มเหตุการณ์ Conversion ใหม่ที่มีชื่อเดียวกับเหตุการณ์ที่บันทึกด้วยโค้ดตัวอย่าง ด้านบน
สร้างการทดสอบใหม่
ในเมนู In-App Messagingของคอนโซล, ให้คลิกการทดสอบใหม่ แล้วทำตามวิธีการในหน้าจอที่ปรากฏ
- ในส่วน การกำหนดเป้าหมาย ให้ตรวจสอบว่าแคมเปญกำหนดเป้าหมายเฉพาะแอปเวอร์ชันล่าสุดและเวอร์ชันที่สูงกว่า
- ในส่วน เป้าหมาย ให้เลือกเหตุการณ์ Conversion ที่คุณสร้างด้วยโค้ดตัวอย่างด้านบน รวมถึงเมตริกอื่นๆ ที่ต้องการติดตาม
เมื่อเผยแพร่การทดสอบแล้ว ระบบจะต้องรวบรวมข้อมูลสักระยะหนึ่งก่อนจึงจะแสดงผลลัพธ์ที่ได้ข้อสรุปชัดเจนได้
อ่านเอกสารประกอบ Firebase A/B Testingเพื่อดูข้อมูลเกี่ยวกับวิธีตรวจสอบการทดสอบและเปิดตัวเวอร์ชันที่ประสบความสำเร็จ