หน้านี้มีไว้สำหรับนักพัฒนาซอฟต์แวร์ที่ใช้ SDK ของ Google Analytics สำหรับ Firebase ในแอปและต้องการผสานรวมโหมดความยินยอม หากต้องการดูข้อมูลเบื้องต้นเกี่ยวกับโหมดความยินยอม โปรดอ่านภาพรวมของโหมดความยินยอม
Google Analytics มีโหมดความยินยอมเพื่อปรับลักษณะการทำงานของ SDK โดยอิงตามสถานะความยินยอมของผู้ใช้ คุณใช้โหมดความยินยอมแบบพื้นฐานหรือขั้นสูงได้ หากไม่แน่ใจว่าจะใช้โหมดความยินยอมพื้นฐานหรือขั้นสูง โปรดดูข้อมูลเพิ่มเติมเกี่ยวกับโหมดความยินยอมแบบพื้นฐานกับขั้นสูง และตรวจสอบหลักเกณฑ์ของบริษัท
ก่อนเริ่มต้น
คุณต้องทำตามขั้นตอนต่อไปนี้ก่อนจึงจะจัดการความยินยอมของผู้ใช้ได้
- SDK ของ Google Analytics สำหรับ Firebase
แบนเนอร์การตั้งค่าความยินยอมเพื่อบันทึกความยินยอมของผู้ใช้
สร้างโหมดความยินยอม
หากต้องการตั้งค่าโหมดความยินยอม คุณต้องทำดังนี้
- ก่อนที่ผู้ใช้จะให้ความยินยอม: ปิดใช้การรวบรวมข้อมูลของ Analytics ชั่วคราว
- ตั้งค่าสถานะความยินยอมเริ่มต้น
- อัปเดตสถานะความยินยอมตามการโต้ตอบของผู้ใช้กับการตั้งค่าความยินยอม
- เปิดใช้การรวบรวมข้อมูล Analytics อีกครั้ง
ปิดใช้การรวบรวมข้อมูลของ Analytics ชั่วคราว
การใช้งานโหมดความยินยอมพื้นฐานหมายถึงการบล็อก SDK ของ Google Analytics สำหรับ Firebase ไม่ให้โหลดจนกว่าผู้ใช้จะให้ความยินยอม
หากต้องการปิดใช้การรวบรวมข้อมูลของ Analytics ชั่วคราว ให้ตั้งค่า firebase_analytics_collection_enabled
เป็น false
ใน AndroidManifest.xml
ของแอปในแท็กแอปพลิเคชัน เช่น
<meta-data android:name="firebase_analytics_collection_enabled" android:value="false" />
ตั้งค่าสถานะความยินยอมเริ่มต้น
โดยค่าเริ่มต้น จะไม่มีการกำหนดค่าโหมดความยินยอม วิธีตั้งค่าสถานะความยินยอมเริ่มต้นให้แอป
- เปิดไฟล์ AndroidManifest.xml ของแอป
เพิ่มคู่คีย์-ค่าของโหมดความยินยอม คีย์จะอธิบายประเภทความยินยอม และค่าบ่งบอกถึงสถานะความยินยอม ค่าอาจเป็น
true
หมายความว่าได้รับความยินยอมแล้ว หรือfalse
หมายความว่าความยินยอมถูกปฏิเสธ ตั้งค่าดังต่อไปนี้google_analytics_default_allow_analytics_storage
google_analytics_default_allow_ad_storage
google_analytics_default_allow_ad_user_data
google_analytics_default_allow_ad_personalization_signals
บันทึกการเปลี่ยนแปลง ถัดไป ให้ใช้กลไกการอัปเดตค่าความยินยอม
เช่น หากต้องการตั้งค่าความยินยอมทั้งหมดให้พารามิเตอร์ทั้งหมดโดยค่าเริ่มต้น ให้ทําดังนี้
<meta-data android:name="google_analytics_default_allow_analytics_storage" android:value="true" />
<meta-data android:name="google_analytics_default_allow_ad_storage" android:value="true" />
<meta-data android:name="google_analytics_default_allow_ad_user_data" android:value="true" />
<meta-data android:name="google_analytics_default_allow_ad_personalization_signals" android:value="true" />
เปิดใช้การรวบรวมข้อมูล Analytics อีกครั้ง
หลังจากที่ผู้ใช้ให้ความยินยอมแล้ว ให้เปิดใช้การรวบรวม Analytics อีกครั้งโดยใช้เมธอดsetAnalyticsCollectionEnabled()
ค่าที่เมธอด setAnalyticsCollectionEnabled
กำหนดจะยังคงอยู่ในการเรียกใช้แอปและลบล้างค่าของ FIREBASE_ANALYTICS_COLLECTION_ENABLED
ในไฟล์ AndroidManifest.xml
ของแอป เมื่อคุณกำหนดค่าให้กับ setAnalyticsCollectionEnabled
แล้ว การรวบรวมข้อมูลของ Analytics จะยังคงอยู่ในสถานะนั้นจนกว่าจะมีการเรียกใช้ setAnalyticsCollectionEnabled
อีกครั้ง แม้ว่าผู้ใช้จะปิดและเปิดแอปอีกครั้งก็ตาม
วิธีอัปเดตการรวบรวมข้อมูลของ Analytics
setAnalyticsCollectionEnabled(true);
อัปเดตความยินยอม
หากต้องการอัปเดตค่าความยินยอมหลังจากเปิดแอปแล้ว ให้เรียกใช้เมธอด setConsent
ค่าที่เมธอด setConsent
กำหนดจะลบล้างการตั้งค่าเริ่มต้นและมีผลตลอดการทำงานของแอป ค่าจะยังอยู่ในสถานะนี้จนกว่าจะมีการเรียกใช้ setConsent
อีกครั้ง แม้ว่าผู้ใช้จะปิดและเปิดแอปอีกครั้งก็ตาม
setConsent
จะอัปเดตเฉพาะพารามิเตอร์ที่คุณระบุเท่านั้น
หากผู้ใช้ถอนความยินยอมที่เคยให้ไว้กับ Analytics หรือพื้นที่เก็บข้อมูลโฆษณา Google Analytics จะลบพร็อพเพอร์ตี้ผู้ใช้ทั้งหมด รวมถึงความยินยอมสําหรับ
ad_personalization
ด้วย หากต้องการรักษาตัวเลือกความยินยอมของผู้ใช้สำหรับการปรับโฆษณาตามโปรไฟล์ของผู้ใช้ไว้ ให้คืนค่า ค่าก่อนหน้าสำหรับการปรับโฆษณาตามโปรไฟล์ของผู้ใช้โดยใช้setConsent
(Kotlin+KTX | Java)
ตัวอย่างต่อไปนี้แสดงเมธอด setConsent
ซึ่งอัปเดตค่าความยินยอมต่างๆ เป็น granted
Java
// Set consent types.
Map<ConsentType, ConsentStatus> consentMap = new EnumMap<>(ConsentType.class);
consentMap.put(ConsentType.ANALYTICS_STORAGE, ConsentStatus.GRANTED);
consentMap.put(ConsentType.AD_STORAGE, ConsentStatus.GRANTED);
consentMap.put(ConsentType.AD_USER_DATA, ConsentStatus.GRANTED);
consentMap.put(ConsentType.AD_PERSONALIZATION, ConsentStatus.GRANTED);
mFirebaseAnalytics.setConsent(consentMap);
Kotlin
Firebase.analytics.setConsent {
analyticsStorage(ConsentStatus.GRANTED)
adStorage(ConsentStatus.GRANTED)
adUserData(ConsentStatus.GRANTED)
adPersonalization(ConsentStatus.GRANTED)
}