ภายใต้นโยบายการยินยอมของผู้ใช้ EU ของ Google คุณต้องเปิดเผยข้อมูลบางอย่างต่อผู้ใช้ในเขตเศรษฐกิจยุโรป (EEA) และสหราชอาณาจักร รวมถึงขอความยินยอมจากผู้ใช้ให้ใช้คุกกี้หรือพื้นที่เก็บข้อมูลอื่นในเครื่องในกรณีที่กฎหมายกําหนด รวมถึงเพื่อใช้ข้อมูลส่วนตัว (เช่น AdID) ในการแสดงโฆษณา นโยบายนี้เป็นผลมาจากข้อกําหนดด้าน ePrivacy และกฎระเบียบให้ความคุ้มครองข้อมูลส่วนบุคคลของผู้บริโภค (GDPR) ของสหภาพยุโรป
เพื่อสนับสนุนผู้เผยแพร่โฆษณาในการปฏิบัติตามหน้าที่ของตนภายใต้นโยบายนี้ Google จึงเสนอ SDK สําหรับ User Messaging Platform (UMP) UMP SDK ได้รับการอัปเดตให้รองรับมาตรฐาน IAB ล่าสุดแล้ว และตอนนี้คุณยังกําหนดค่าต่างๆ ใน AdMob ความเป็นส่วนตัวและการแสดงข้อความแจ้งผู้ใช้ได้อย่างสะดวก
สิ่งที่ต้องดำเนินการก่อน
- ทําตามคู่มือเริ่มต้นใช้งานให้เสร็จสมบูรณ์
- กําหนดค่าข้อความใต้แท็บความเป็นส่วนตัวและการแสดงข้อความแจ้งผู้ใช้ของบัญชีAdMob ดูรายละเอียดเพิ่มเติมได้ที่ เกี่ยวกับความเป็นส่วนตัวและการแสดงข้อความแจ้งผู้ใช้
- หากคุณกําลังปฏิบัติตามข้อกําหนดที่เกี่ยวข้องกับ GDPR โปรดอ่าน ข้อกําหนดของ IAB ส่งผลต่อข้อความขอความยินยอมในสหภาพยุโรปอย่างไร
ประเภทข้อความสําหรับผู้ใช้
ดู ประเภทข้อความสําหรับผู้ใช้ เพื่อดูรายการข้อความที่รองรับทั้งหมด ดูคําแนะนําเฉพาะเกี่ยวกับการใช้งานข้อความแต่ละประเภทได้ที่แถบนําทางด้านซ้าย
พิจารณาว่าจําเป็นต้องแสดงข้อความหรือไม่
คุณควรขออัปเดตข้อมูลความยินยอมของผู้ใช้ในทุกการเปิดตัวแอป โดยใช้ RequestConsentInfoUpdate()
ก่อนโหลดแบบฟอร์ม
กรณีนี้จะกําหนดว่าผู้ใช้ต้องให้ความยินยอมหรือไม่
หากยังไม่ได้ดําเนินการ ความยินยอมของผู้ใช้หมดอายุหรือไม่
ConsentInformation
เมื่อคุณนําเสนอแบบฟอร์มเมื่อจําเป็น
ตัวอย่างวิธีตรวจสอบสถานะการเริ่มต้นใช้งานแอปมีดังนี้
using System.Collections.Generic;
using UnityEngine;
using GoogleMobileAds.Ump;
using GoogleMobileAds.Ump.Api;
public class UmpManager : MonoBehaviour
{
void Start()
{
// Set tag for under age of consent.
// Here false means users are not under age.
ConsentRequestParameters request = new ConsentRequestParameters
{
TagForUnderAgeOfConsent = false,
};
// Check the current consent information status.
ConsentInformation.RequestConsentInfoUpdate(request,
OnConsentInfoUpdated);
}
void OnConsentInfoUpdated(FormError error)
{
if (error != null)
{
// Handle the error.
UnityEngine.Debug.LogError(error);
return;
}
// If the error is null, the consent information state was updated.
}
}
โหลดแบบฟอร์ม (หากมี)
ก่อนแสดงแบบฟอร์ม คุณต้องพิจารณาว่ามีแบบฟอร์มที่ใช้ได้หรือไม่ แบบฟอร์มที่ไม่พร้อมใช้งานอาจเป็นเพราะผู้ใช้เปิดใช้การติดตามโฆษณาแบบจํากัด หรือคุณได้ติดแท็กแบบฟอร์มว่ามีอายุต่ํากว่าอายุที่ให้ความยินยอมได้
หากต้องการตรวจสอบความพร้อมใช้งานของแบบฟอร์ม ให้ใช้the IsConsentFormAvailable()
method on the ConsentInformation
instance ที่คุณสร้างไว้ก่อนหน้านี้
จากนั้นเพิ่มเมธอด Wrapper เพื่อโหลดแบบฟอร์ม ดังนี้
void OnConsentInfoUpdated(FormError error)
{
if (error != null)
{
// Handle the error.
UnityEngine.Debug.LogError(error);
return;
}
// If the error is null, the consent information state was updated.
// The consent information state was updated.
// You are now ready to check if a form is available.
if (ConsentInformation.IsConsentFormAvailable())
{
LoadConsentForm();
}
}
void LoadConsentForm()
{
// Loads a consent form.
}
หากต้องการโหลดแบบฟอร์ม ให้ใช้ the static LoadConsentForm()
method on the ConsentForm
class
void LoadConsentForm()
{
// Loads a consent form.
ConsentForm.LoadConsentForm(OnLoadConsentForm);
}
void OnLoadConsentForm(FormError error)
{
if (error != null)
{
// Handle the error.
UnityEngine.Debug.LogError(error);
return;
}
// The consent form was loaded.
// You are now ready to show the form.
}
นําเสนอแบบฟอร์มหากจําเป็น
หลังจากที่กําหนดความพร้อมใช้งานของแบบฟอร์มและโหลดแล้ว ให้ใช้เมธอดShow()
บนอินสแตนซ์ConsentForm
เพื่อนําเสนอแบบฟอร์ม
ใช้ออบเจ็กต์ConsentInformation
จากค่าเริ่มต้นเพื่อตรวจสอบเมธอดconsent status และอัปเดตเมธอดLoadConsentForm()
ดังนี้
void LoadForm()
{
// Loads a consent form.
ConsentForm.LoadConsentForm(OnLoadConsentForm);
}
void OnLoadConsentForm()
{
if (error != null)
{
// Handle the error.
UnityEngine.Debug.LogError(error);
return;
}
// The consent form was loaded.
// You are now ready to show the form.
if(ConsentInformation.ConsentStatus == ConsentStatus.Required)
{
ConsentForm.Show(OnShowForm);
}
}
void OnShowForm(FormError error)
{
if (error != null)
{
// Handle the error.
UnityEngine.Debug.LogError(error);
return;
}
// Handle dismissal by reloading form.
LoadForm();
}
หากคุณจําเป็นต้องดําเนินการใดๆ หลังจากผู้ใช้เลือกตัวเลือกหรือปิดแบบฟอร์มแล้ว ให้วางตรรกะนั้นในเครื่องจัดการหรือเรียกกลับสําหรับแบบฟอร์ม
การทดสอบ
บังคับภูมิศาสตร์
UMP SDK เป็นวิธีทดสอบพฤติกรรมของแอปเสมือนว่าอุปกรณ์อยู่ใน EEA หรือสหราชอาณาจักรโดยใช้ the DebugGeography
field on ConsentDebugSettings
คุณต้องระบุรหัสที่แฮชของอุปกรณ์ทดสอบในการตั้งค่าการแก้ไขข้อบกพร่องของแอปเพื่อให้ใช้ฟังก์ชันแก้ไขข้อบกพร่องได้ หากคุณเรียกใช้
RequestConsentInfoUpdate()
โดยไม่ตั้งค่านี้ แอปจะบันทึกแฮชรหัสที่จําเป็นเมื่อเรียกใช้
void Start()
{
var debugSettings = new ConsentDebugSettings
{
// Geography appears as in EEA for debug devices.
DebugGeography = DebugGeography.DEBUG_GEOGRAPHY_EEA,
TestDeviceHashedIds = new List<string>
{
"TEST-DEVICE-HASHED-ID"
}
};
// Set tag for under age of consent.
// Here false means users are not under age.
ConsentRequestParameters request = new ConsentRequestParameters
{
TagForUnderAgeOfConsent = false,
ConsentDebugSettings = debugSettings,
};
// Check the current consent information status.
ConsentInformation.RequestConsentInfoUpdate(request,
OnConsentInfoUpdated);
}
DebugGeography
enumช่วยให้คุณมีตัวเลือกในการ
ขยายภูมิศาสตร์เป็นอย่างใดอย่างหนึ่งต่อไปนี้
การแก้ไขข้อบกพร่องด้านภูมิศาสตร์ | คำอธิบาย |
---|---|
DISABLED |
ปิดใช้งานการแก้ไขข้อบกพร่องทางภูมิศาสตร์แล้ว |
EEA |
ภูมิศาสตร์จะปรากฏใน EEA สําหรับอุปกรณ์แก้ไขข้อบกพร่อง |
Not_EEA |
ภูมิศาสตร์ไม่แสดงใน EEA สําหรับอุปกรณ์แก้ไขข้อบกพร่อง |
โปรดทราบว่าการตั้งค่าแก้ไขข้อบกพร่องใช้ได้เฉพาะในอุปกรณ์ทดสอบเท่านั้น ไม่จําเป็นต้องเพิ่มโปรแกรมจําลองลงในรายการรหัสอุปกรณ์เนื่องจากเปิดใช้การทดสอบโดยค่าเริ่มต้นอยู่แล้ว
รีเซ็ตสถานะความยินยอม
ในการทดสอบแอปด้วย UMP SDK การรีเซ็ตสถานะ SDK อาจเป็นประโยชน์สําหรับคุณในการจําลองประสบการณ์การติดตั้งครั้งแรกของผู้ใช้
โดย SDK นี้มี Reset()
วิธีการให้ทําเช่นนี้
ConsentInformation.Reset();
คุณควรเรียก Reset()
ด้วยหากคุณตัดสินใจนํา UMP SDK ออกจากโปรเจ็กต์โดยสมบูรณ์