SDK สำหรับ User Messaging Platform (UMP) ของ Google เป็นเครื่องมือด้านความเป็นส่วนตัวและการแสดงข้อความแจ้งผู้ใช้เพื่อช่วยคุณจัดการตัวเลือกความเป็นส่วนตัว ดูข้อมูลเพิ่มเติมได้ที่เกี่ยวกับความเป็นส่วนตัวและการแสดงข้อความแจ้งผู้ใช้
สร้างประเภทข้อความ
สร้างข้อความสำหรับผู้ใช้ด้วยประเภทข้อความสำหรับผู้ใช้ที่พร้อมใช้งานประเภทใดประเภทหนึ่งในแท็บความเป็นส่วนตัวและการแสดงข้อความแจ้งผู้ใช้ของบัญชี AdMob UMP SDK จะพยายามแสดงข้อความเกี่ยวกับความเป็นส่วนตัวที่สร้างจากรหัสแอปพลิเคชัน AdMob ที่ตั้งค่าไว้ในโปรเจ็กต์
รับข้อมูลความยินยอมของผู้ใช้
คุณควรขออัปเดตข้อมูลความยินยอมของผู้ใช้ทุกครั้งที่เปิดแอปโดยใช้ requestConsentInfoUpdate() คำขอนี้จะตรวจสอบสิ่งต่อไปนี้
- ต้องได้รับความยินยอมหรือไม่ เช่น ต้องได้รับความยินยอมเป็นครั้งแรก หรือการตัดสินใจให้ความยินยอมก่อนหน้านี้หมดอายุแล้ว
- ต้องมีจุดแรกเข้าของตัวเลือกความเป็นส่วนตัวหรือไม่ ข้อความเกี่ยวกับความเป็นส่วนตัวบางข้อความกำหนดให้แอปต้องอนุญาตให้ผู้ใช้แก้ไขตัวเลือกความเป็นส่วนตัวได้ทุกเมื่อ
/**
* Requests consent information update on app launch.
*/
export function requestConsent(onComplete?: () => void) {
requestConsentInfoUpdate({}, (error) => {
if (error) {
console.warn('Consent info update error:', error.message);
} else {
console.log('Consent info update complete.');
}
// Load and show consent form if required.
loadAndPresentConsentForm(onComplete);
});
}
โหลดและแสดงแบบฟอร์มข้อความเกี่ยวกับความเป็นส่วนตัว
หลังจากได้รับสถานะความยินยอมล่าสุดแล้ว ให้เรียกใช้ loadAndShowConsentFormIfRequired() เพื่อโหลดแบบฟอร์มที่จำเป็นในการรวบรวมความยินยอมของผู้ใช้ หลังจากโหลดแล้ว แบบฟอร์มจะแสดงทันที
/**
* Loads and presents the privacy message form if required to collect user consent.
*/
export function loadAndPresentConsentForm(onComplete?: () => void) {
loadAndShowConsentFormIfRequired((formError) => {
if (formError) {
console.warn('Consent form error:', formError.message);
} else {
console.log('Consent gathering complete.');
}
// Execute logic that depends on consent state (for example, initialize the SDK).
onComplete?.();
});
}
ตัวเลือกความเป็นส่วนตัว
แบบฟอร์มข้อความเกี่ยวกับความเป็นส่วนตัวบางรายการจะแสดงจากจุดแรกเข้าของตัวเลือกความเป็นส่วนตัวที่แสดงผลโดยผู้เผยแพร่โฆษณา ซึ่งช่วยให้ผู้ใช้จัดการตัวเลือกความเป็นส่วนตัวได้ทุกเมื่อ ดูข้อมูลเพิ่มเติมเกี่ยวกับข้อความที่ผู้ใช้จะเห็นที่จุดแรกเข้าของตัวเลือกความเป็นส่วนตัวได้ที่ประเภทของข้อความสำหรับผู้ใช้ที่มีให้บริการ
ตรวจสอบว่าต้องมีจุดแรกเข้าของตัวเลือกความเป็นส่วนตัวหรือไม่
หลังจากเรียกใช้ requestConsentInfoUpdate() แล้ว ให้ตรวจสอบ getPrivacyOptionsRequirementStatus() เพื่อพิจารณาว่าแอปของคุณต้องมีจุดแรกเข้าของตัวเลือกความเป็นส่วนตัวหรือไม่ หากจำเป็นต้องมีจุดแรกเข้า ให้เพิ่มองค์ประกอบ UI ที่มองเห็นได้และโต้ตอบได้ลงในแอปซึ่งแสดงแบบฟอร์มตัวเลือกความเป็นส่วนตัว หากไม่จำเป็นต้องมีจุดแรกเข้าด้านความเป็นส่วนตัว ให้กำหนดค่าองค์ประกอบ UI ไม่ให้มองเห็นได้และโต้ตอบได้
/**
* Helper to determine if the privacy options entry point is required.
*/
export function isPrivacyOptionsRequired(): boolean {
return (
getPrivacyOptionsRequirementStatus() ===
PrivacyOptionsRequirementStatus.REQUIRED
);
}
ดูรายการสถานะข้อกำหนดของตัวเลือกความเป็นส่วนตัวทั้งหมดได้ที่
PrivacyOptionsRequirementStatus
แสดงแบบฟอร์มตัวเลือกความเป็นส่วนตัว
เมื่อผู้ใช้โต้ตอบกับองค์ประกอบ ให้แสดงแบบฟอร์มตัวเลือกความเป็นส่วนตัวดังนี้
/**
* Renders a privacy options button if required by user consent policy.
*/
export function PrivacyOptionsButton({
onDismissed,
}: {
onDismissed?: (error?: FormError) => void;
}) {
const isRequired =
getPrivacyOptionsRequirementStatus() ===
PrivacyOptionsRequirementStatus.REQUIRED;
if (!isRequired) {
return null;
}
const handleShowPrivacyOptions = () => {
showPrivacyOptionsForm((error) => {
if (error) {
console.error('Failed to show privacy options form:', error.message);
} else {
console.log('Privacy options form dismissed.');
}
// Execute custom logic after form is dismissed.
onDismissed?.(error);
});
};
return <Button title="Privacy Settings" onPress={handleShowPrivacyOptions} />;
}
ขอโฆษณาโดยได้รับความยินยอมของผู้ใช้
ก่อนขอโฆษณา ให้ใช้
เพื่อตรวจสอบว่าคุณได้รับความยินยอมจากผู้ใช้แล้วหรือไม่canRequestAds()
/**
* Checks whether user consent allows requesting ads and initializes the SDK.
*/
let isMobileAdsInitialized = false;
export function initializeMobileAdsSdkIfConsentGiven() {
if (canRequestAds()) {
if (!isMobileAdsInitialized) {
isMobileAdsInitialized = true;
initialize({}, (status) => {
console.log('Google Mobile Ads SDK initialized:', status);
});
}
}
}
ต่อไปนี้คือตำแหน่งที่ควรตรวจสอบว่าคุณสามารถขอโฆษณาขณะรวบรวมความยินยอมได้หรือไม่
- หลังจาก 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.testDeviceIdentifiersและส่งรายการรหัสอุปกรณ์ทดสอบ
บังคับใช้ภูมิศาสตร์
SDK สำหรับ UMP มีวิธีทดสอบลักษณะการทำงานของแอปเสมือนว่าอุปกรณ์อยู่ในภูมิภาคต่างๆ เช่น เขตเศรษฐกิจยุโรป (EEA), สหราชอาณาจักร และสวิตเซอร์แลนด์ โดยใช้ DebugGeography โปรดทราบว่าการตั้งค่าการแก้ไขข้อบกพร่องจะใช้ได้กับอุปกรณ์ทดสอบเท่านั้น
รีเซ็ตสถานะความยินยอม
เมื่อทดสอบแอปด้วย UMP SDK คุณอาจพบว่าการรีเซ็ตสถานะของ SDK มีประโยชน์เพื่อให้คุณจำลองประสบการณ์การติดตั้งครั้งแรกของผู้ใช้ได้
SDK มีเมธอด reset() เพื่อดำเนินการนี้
/**
* Resets consent state for testing purposes.
*/
export function resetConsentState() {
reset();
}