SDK สำหรับ User Messaging Platform (UMP) ของ Google เป็นเครื่องมือด้านความเป็นส่วนตัวและการแสดงข้อความแจ้งผู้ใช้ที่จะช่วยคุณจัดการตัวเลือกความเป็นส่วนตัว ดูข้อมูลเพิ่มเติมได้ที่ เกี่ยวกับความเป็นส่วนตัวและการแสดงข้อความแจ้งผู้ใช้
สร้างประเภทข้อความ
สร้างข้อความสำหรับผู้ใช้ด้วยประเภทข้อความสำหรับผู้ใช้ที่มีให้เลือกประเภทใดประเภทหนึ่งในแท็บความเป็นส่วนตัวและการแสดงข้อความแจ้งผู้ใช้ ของบัญชี AdMob UMP SDK จะพยายามแสดงข้อความความเป็นส่วนตัวที่สร้างจากรหัสแอปพลิเคชัน AdMob ที่ตั้งค่าไว้ในโปรเจ็กต์
ดูรายละเอียดเพิ่มเติมได้ที่ เกี่ยวกับความเป็นส่วนตัวและการแสดงข้อความแจ้งผู้ใช้
รับข้อมูลความยินยอมของผู้ใช้
คุณควรร้องขอการอัปเดตข้อมูลความยินยอมของผู้ใช้ทุกครั้งที่เปิดแอปโดยใช้ requestConsentInfoUpdate() คำขอนี้จะตรวจสอบสิ่งต่อไปนี้
- ต้องได้รับความยินยอมหรือไม่ เช่น ต้องได้รับความยินยอมเป็นครั้งแรก หรือการตัดสินใจให้ความยินยอมครั้งก่อนหมดอายุ
- ต้องมีจุดแรกเข้าของตัวเลือกความเป็นส่วนตัวหรือไม่ ข้อความความเป็นส่วนตัวบางข้อความกำหนดให้แอปต้องอนุญาตให้ผู้ใช้แก้ไขตัวเลือกความเป็นส่วนตัวได้ทุกเมื่อ
@override
void initState() {
super.initState();
// Create a ConsentRequestParameters object.
final params = ConsentRequestParameters();
// Request an update to consent information on every app launch.
ConsentInformation.instance.requestConsentInfoUpdate(
params,
() async {
// Called when consent information is successfully updated.
},
(FormError error) {
// Called when there's an error updating consent information.
},
);
}
โหลดและแสดงแบบฟอร์มข้อความความเป็นส่วนตัว
หลังจากได้รับสถานะความยินยอมที่อัปเดตล่าสุดแล้ว ให้เรียกใช้ loadAndShowConsentFormIfRequired() เพื่อโหลดแบบฟอร์มที่จำเป็นสำหรับการขอความยินยอมจากผู้ใช้ หลังจากโหลดแล้ว แบบฟอร์มจะแสดงขึ้นทันที
@override
void initState() {
super.initState();
// Create a ConsentRequestParameters object.
final params = ConsentRequestParameters();
// Request an update to consent information on every app launch.
ConsentInformation.instance.requestConsentInfoUpdate(
params,
() async {
ConsentForm.loadAndShowConsentFormIfRequired((loadAndShowError) {
if (loadAndShowError != null) {
// Consent gathering failed.
}
// Consent has been gathered.
});
},
(FormError error) {
// Handle the error.
},
);
}
ตัวเลือกความเป็นส่วนตัว
แบบฟอร์มข้อความความเป็นส่วนตัวบางแบบฟอร์มจะแสดงจากจุดแรกเข้าของตัวเลือกความเป็นส่วนตัวที่ผู้เผยแพร่โฆษณาสร้างขึ้น ซึ่งช่วยให้ผู้ใช้จัดการตัวเลือกความเป็นส่วนตัวได้ทุกเมื่อ ดูข้อมูลเพิ่มเติมเกี่ยวกับข้อความที่ผู้ใช้จะเห็นที่จุดแรกเข้าของตัวเลือกความเป็นส่วนตัว ได้ที่ ประเภทข้อความสำหรับผู้ใช้ที่มีให้เลือก
ตรวจสอบว่าต้องมีจุดแรกเข้าของตัวเลือกความเป็นส่วนตัวหรือไม่
หลังจากเรียกใช้ requestConsentInfoUpdate() แล้ว ให้ตรวจสอบ getPrivacyOptionsRequirementStatus() เพื่อดูว่าแอปของคุณต้องมีจุดแรกเข้าของตัวเลือกความเป็นส่วนตัวหรือไม่ หากต้องมี ให้เพิ่มองค์ประกอบ UI ที่มองเห็นและโต้ตอบได้ลงในแอปซึ่งแสดงแบบฟอร์มตัวเลือกความเป็นส่วนตัว หากไม่จำเป็นต้องมีจุดแรกเข้าของความเป็นส่วนตัว ให้กำหนดค่าองค์ประกอบ UI ไม่ให้มองเห็นและโต้ตอบได้
/// Helper variable to determine if the privacy options entry point is required.
Future<bool> isPrivacyOptionsRequired() async {
return await ConsentInformation.instance
.getPrivacyOptionsRequirementStatus() ==
PrivacyOptionsRequirementStatus.required;
}
ดูรายการสถานะข้อกำหนดตัวเลือกความเป็นส่วนตัวทั้งหมดได้ที่
PrivacyOptionsRequirementStatus
แสดงแบบฟอร์มตัวเลือกความเป็นส่วนตัว
เมื่อผู้ใช้โต้ตอบกับองค์ประกอบของคุณ ให้แสดงแบบฟอร์มตัวเลือกความเป็นส่วนตัวดังนี้
ConsentForm.showPrivacyOptionsForm((formError) {
if (formError != null) {
debugPrint("${formError.errorCode}: ${formError.message}");
}
});
ขอโฆษณาโดยได้รับความยินยอมของผู้ใช้
ก่อนที่จะขอโฆษณา ให้ใช้ canRequestAds() เพื่อตรวจสอบว่าคุณได้รับความยินยอมจากผู้ใช้แล้วหรือไม่
await ConsentInformation.instance.canRequestAds()
ต่อไปนี้คือตำแหน่งที่คุณสามารถตรวจสอบว่าขอโฆษณาได้หรือไม่ขณะรวบรวมความยินยอม
- หลังจาก UMP SDK รวบรวมความยินยอมในเซสชันปัจจุบัน
- ทันทีหลังจากที่คุณเรียกใช้
requestConsentInfoUpdate()UMP SDK อาจได้รับความยินยอมในเซสชันแอปก่อนหน้า
หากเกิดข้อผิดพลาดระหว่างกระบวนการรวบรวมความยินยอม ให้ตรวจสอบว่าคุณขอโฆษณาได้หรือไม่ UMP SDK จะใช้สถานะความยินยอมจากเซสชันแอปก่อนหน้า
ป้องกันไม่ให้เกิดการทำงานที่ซ้ำซ้อนในการขอโฆษณา
เมื่อตรวจสอบ canRequestAds() หลังจากรวบรวมความยินยอมและหลังจากเรียกใช้ requestConsentInfoUpdate() แล้ว ให้ตรวจสอบว่าตรรกะของคุณป้องกันไม่ให้เกิดการขอโฆษณาที่ซ้ำซ้อนซึ่งอาจทำให้การตรวจสอบทั้ง 2 รายการแสดงผลเป็น true เช่น ใช้ตัวแปรบูลีน
การทดสอบ
หากต้องการทดสอบการผสานรวมในแอปขณะพัฒนา ให้ทำตามขั้นตอนต่อไปนี้เพื่อลงทะเบียนอุปกรณ์ทดสอบโดยใช้โปรแกรม อย่าลืมนำโค้ดที่ตั้งค่ารหัสอุปกรณ์ทดสอบเหล่านี้ออกก่อนที่จะเผยแพร่แอป
- เรียกใช้
requestConsentInfoUpdate() ตรวจสอบเอาต์พุตบันทึกเพื่อหาข้อความที่คล้ายกับตัวอย่างต่อไปนี้ ซึ่งแสดงรหัสอุปกรณ์และวิธีเพิ่มรหัสเป็นอุปกรณ์ทดสอบ
Android
Use new ConsentDebugSettings.Builder().addTestDeviceHashedId("33BE2250B43518CCDA7DE426D04EE231") to set this as a debug device.iOS
<UMP SDK>To enable debug mode for this device, set: UMPDebugSettings.testDeviceIdentifiers = @[2077ef9a63d2b398840261c8221a0c9b]คัดลอกรหัสอุปกรณ์ทดสอบไปยังคลิปบอร์ด
แก้ไขโค้ดเพื่อเรียกใช้
ConsentDebugSettings.testIdentifiersและส่งรายการรหัสอุปกรณ์ทดสอบConsentDebugSettings debugSettings = ConsentDebugSettings( testIdentifiers: ["TEST-DEVICE-HASHED-ID"], ); ConsentRequestParameters params = ConsentRequestParameters(consentDebugSettings: debugSettings); ConsentInformation.instance.requestConsentInfoUpdate(params, () async { // ... };
บังคับใช้ภูมิศาสตร์
UMP SDK มีวิธีทดสอบการทำงานของแอปราวกับว่าอุปกรณ์
อยู่ในภูมิภาคต่างๆ เช่น เขตเศรษฐกิจยุโรป (EEA) สหราชอาณาจักร (UK) และสวิตเซอร์แลนด์โดยใช้
debugGeography โปรดทราบว่าการตั้งค่าการแก้ไขข้อบกพร่องจะทำงานในอุปกรณ์ทดสอบเท่านั้น
ConsentDebugSettings debugSettings = ConsentDebugSettings(
debugGeography: DebugGeography.debugGeographyEea,
testIdentifiers: ["TEST-DEVICE-HASHED-ID"],
);
ConsentRequestParameters params =
ConsentRequestParameters(consentDebugSettings: debugSettings);
ConsentInformation.instance.requestConsentInfoUpdate(params, () async {
// ...
};
รีเซ็ตสถานะความยินยอม
เมื่อทดสอบแอปด้วย UMP SDK คุณอาจพบว่าการรีเซ็ตสถานะของ SDK เป็นประโยชน์เพื่อให้คุณจำลองประสบการณ์การติดตั้งครั้งแรกของผู้ใช้ได้
SDK มีเมธอด reset() สำหรับการดำเนินการนี้
ConsentInformation.instance.reset();
ตัวอย่างใน GitHub
ดูตัวอย่างการผสานรวม UMP SDK ทั้งหมดที่กล่าวถึงในหน้านี้ได้ใน ตัวอย่าง Flutter