ใน iOS 14.5 นั้น Apple กำหนดให้นักพัฒนาแอปต้องได้รับสิทธิ์จากผู้ใช้ผ่านเฟรมเวิร์ก App Tracking Transparency เพื่อติดตามผู้ใช้หรือเข้าถึงตัวระบุโฆษณา (IDFA) ของอุปกรณ์ ดูรายละเอียดเพิ่มเติมได้ในเอกสารประกอบเกี่ยวกับความเป็นส่วนตัวของผู้ใช้และการใช้ข้อมูลของ Apple และความโปร่งใสในการติดตามแอปของ Apple
ผลิตภัณฑ์ Firebase ที่ได้รับผลกระทบ
Firebase SDK ไม่ได้เข้าถึง IDFA แม้ว่าบางรายการจะผสานรวมกับ 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 ระบบ Google Analytics จะ บันทึกเหตุการณ์ Conversion บางรายการที่เกี่ยวข้องกับ FCM โดยอัตโนมัติ การระบุแหล่งที่มาของเหตุการณ์เหล่านี้ต้องใช้สิทธิ์เข้าถึง IDFA |
| Cloud Storage | ไม่ได้ส่งผลอะไร |
| Crashlytics | ไม่ได้ส่งผลอะไร การผสานรวม Crashlytics กับ Google Analytics ที่ให้ข้อมูลข้อขัดข้องและเบรดครัมบ์แบบเรียลไทม์ไม่ได้ขึ้นอยู่กับ IDFA |
| In-App Messaging | ไม่ได้ส่งผลอะไร |
| การติดตั้ง Firebase รายการ | ไม่ได้ส่งผลอะไร |
| Performance Monitoring | ไม่ได้ส่งผลอะไร |
| Realtime Database | ไม่ได้ส่งผลอะไร |
| Remote Config | เมื่อใช้กับ Google Analytics Remote Config จะไม่อนุญาตพร็อพเพอร์ตี้ผู้ใช้ที่สร้างขึ้นโดยอัตโนมัติสำหรับการกำหนดเป้าหมายโดยไม่มีสิทธิ์เข้าถึง IDFA |
| ไลบรารีที่เลิกใช้งานแล้วหรือไม่รองรับ | |
| Dynamic Links | ไม่มีผลกระทบต่อฟังก์ชันการเปิดลิงก์ เมื่อใช้กับ Google Analytics การระบุแหล่งที่มาของเหตุการณ์ Conversion ของลิงก์จะใช้ไม่ได้ |
| InstanceID | ไม่ได้ส่งผลอะไร |
| Firebase ML | ไม่ได้ส่งผลอะไร |
1 Firebase AI Logic เดิมเรียกว่า "Vertex AI in Firebase"
การผสานรวม Firebase ที่ได้รับผลกระทบ
ตารางด้านล่างแสดงผลิตภัณฑ์ที่ผสานรวมกับ Firebase ซึ่งจะได้รับผลกระทบหากเข้าถึง IDFA ไม่ได้
| ผลิตภัณฑ์ | ผลกระทบหากเข้าถึง IDFA ไม่ได้ |
|---|---|
| Google Analytics | การบันทึกเหตุการณ์ การรายงานเหตุการณ์ และการวัด Conversion ของ Analytics จะไม่ได้รับผลกระทบ แต่การระบุแหล่งที่มาจะได้รับผลกระทบหากเข้าถึง IDFA ไม่ได้ ดูข้อมูลเพิ่มเติมเกี่ยวกับการตอบสนองของ Google ต่อ iOS 14 ได้ที่บล็อกโพสต์ |
การขอสิทธิ์การติดตามแอปใน iOS 14
หากต้องการให้แอปพลิเคชัน Apple เข้าถึง IDFA ได้ คุณสามารถเพิ่มเฟรมเวิร์ก App Tracking Transparency ของ Apple ลงในแอปและขอสิทธิ์ในการติดตามหรือเข้าถึง IDFA ของผู้ใช้
แอปพลิเคชันจำนวนมากเลือกที่จะแสดงหน้าจออธิบายข้อมูลต่างๆ ที่ปรากฏก่อนขอสิทธิ์ คุณสามารถใช้หน้าจออธิบายนี้เพื่อแจ้งให้ผู้ใช้ทราบบริบทเพิ่มเติมเกี่ยวกับวิธีที่แอปของคุณนำ IDFA มาใช้ก่อนที่จะขอสิทธิ์เข้าถึง
หากคุณเป็นผู้เผยแพร่โฆษณาในแอป AdMob หรือ Ad Manager ให้พิจารณาใช้ Funding Choices ซึ่งจะจัดการการขอความยินยอมเพื่อแสดงโฆษณาที่ปรับตามโปรไฟล์ของผู้ใช้ รวมถึงความยินยอมในการติดตามผู้ใช้ตามหลักเกณฑ์ของ Apple โดยอัตโนมัติ ดูรายละเอียดเพิ่มเติมได้ที่หน้าความยินยอมด้วย User Messaging ของ 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 เพื่อดูข้อมูลเกี่ยวกับวิธีตรวจสอบการทดสอบและเปิดตัวตัวแปรที่ประสบความสำเร็จ