รองรับ iOS 14

ใน 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

  1. ในคอนโซล Firebase ให้สร้างแคมเปญ In-App Messaging ใหม่
  2. ป้อนเนื้อหาที่ต้องการในข้อความในแอป และตั้งค่าข้อความให้แสดงเมื่อเกิดเหตุการณ์ app_launch
  3. ในส่วนการกำหนดเป้าหมาย ให้ตรวจสอบว่าแคมเปญกำหนดเป้าหมายเฉพาะแอปเวอร์ชันล่าสุดขึ้นไปเท่านั้น

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