ใน iOS 14.5 เป็นต้นไป Apple กําหนดให้นักพัฒนาแอปต้องได้รับสิทธิ์จากผู้ใช้ผ่านเฟรมเวิร์ก App Tracking Transparency เพื่อติดตามผู้ใช้หรือเข้าถึงตัวระบุโฆษณา (IDFA) ของอุปกรณ์ ดูรายละเอียดเพิ่มเติมได้ที่เอกสารประกอบความเป็นส่วนตัวของผู้ใช้และการใช้ข้อมูลของ Apple และApp Tracking Transparency ของ Apple
ผลิตภัณฑ์ Firebase ที่ได้รับผลกระทบ
SDK ของ Firebase จะไม่เข้าถึง IDFA แม้ว่าบางรายการจะมีการผสานรวมกับ Google Analytics ที่อาจเกี่ยวข้องกับการเข้าถึง IDFA ก็ตาม
ตารางด้านล่างแสดงผลิตภัณฑ์ Firebase ที่พร้อมให้บริการบนแพลตฟอร์มของ Apple และอธิบายผลกระทบที่ฟังก์ชันการทํางานของผลิตภัณฑ์แต่ละรายการจะได้รับหากเข้าถึง IDFA ไม่ได้
ผลิตภัณฑ์ | ผลกระทบหากเข้าถึง IDFA ไม่ได้ |
---|---|
A/B Testing | ข้อมูลการกําหนดเป้าหมายบางอย่าง (เช่น ข้อมูลประชากร) ในA/B Testingที่ผสานรวมกับ Google Analytics มาจาก IDFA การกำหนดเป้าหมายนี้จะใช้ไม่ได้ในแอปที่ไม่มีสิทธิ์เข้าถึง IDFA |
App Check | ไม่มีผล |
App Distribution | ไม่มีผล |
Authentication | ไม่มีผลกับ Authentication และผู้ให้บริการ Authentication บุคคลที่หนึ่ง เช่น Google Sign-In และการตรวจสอบสิทธิ์ทางโทรศัพท์ |
Crashlytics | ไม่มีผล การผสานรวม Crashlytics กับ Google Analytics ที่แสดงข้อมูลข้อขัดข้องและเบรดครัมแบบเรียลไทม์นั้นไม่ขึ้นอยู่กับ IDFA |
Dynamic Links | ไม่มีผลต่อฟังก์ชันการเปิดลิงก์ เมื่อใช้ร่วมกับ Google Analytics การระบุแหล่งที่มาสําหรับเหตุการณ์ Conversion ของลิงก์จะใช้งานไม่ได้ |
Cloud Firestore | ไม่มีผล |
Cloud Functions | ไม่มีผล |
In-App Messaging | ไม่มีผลกระทบ |
การติดตั้ง Firebase ครั้ง | ไม่มีผล |
InstanceID | ไม่มีผล |
Cloud Messaging | เมื่อใช้กับ Google Analytics แล้ว Google Analytics จะบันทึกเหตุการณ์ Conversion บางอย่างที่เกี่ยวข้องกับ FCM โดยอัตโนมัติ การระบุแหล่งที่มาของเหตุการณ์เหล่านี้ต้องใช้สิทธิ์เข้าถึง IDFA |
Firebase ML | ไม่มีผล |
Performance Monitoring | ไม่มีผล |
Remote Config | เมื่อใช้กับ Google Analytics Remote Config ไม่อนุญาตให้ใช้พร็อพเพอร์ตี้ผู้ใช้ที่สร้างขึ้นโดยอัตโนมัติในการกําหนดเป้าหมายโดยไม่มีสิทธิ์เข้าถึง IDFA |
Realtime Database | ไม่มีผล |
Cloud Storage | ไม่มีผล |
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 ในการสร้างและแสดงหน้าจออธิบายก่อนขอสิทธิ์เข้าถึงการติดตามผ่านความโปร่งใสในการติดตามแอป
เพิ่ม 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
เพื่อจัดการเหตุการณ์เมื่อผู้ใช้ปิดหน้าจอคําอธิบาย หากผู้ใช้แตะ "ตกลง" ให้แสดงข้อความแจ้งของระบบผ่านเฟรมเวิร์กความโปร่งใสในการติดตามแอป
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 เพื่อดูข้อมูลเกี่ยวกับวิธีตรวจสอบการทดสอบและเปิดตัวตัวแปรที่ประสบความสำเร็จ