ภายใต้นโยบายความยินยอมของผู้ใช้ EU ของ Google คุณต้องเปิดเผยข้อมูลบางอย่างต่อผู้ใช้ในเขตเศรษฐกิจยุโรป (EEA) สหราชอาณาจักร (UK) และสวิตเซอร์แลนด์ และได้รับความยินยอมจากผู้ใช้ในการใช้คุกกี้หรือพื้นที่เก็บข้อมูลอื่นในเครื่องในกรณีที่กฎหมายกำหนด รวมถึงการใช้ข้อมูลส่วนตัว (เช่น AdID) เพื่อแสดงโฆษณา
นโยบายนี้เป็นผลมาจากข้อกำหนดด้าน ePrivacy และกฎระเบียบให้ความคุ้มครองข้อมูลส่วนบุคคลของผู้บริโภค (GDPR) ของสหภาพยุโรป
คู่มือนี้จะระบุขั้นตอนที่จำเป็นในการรองรับข้อความ GDPR IAB TCF เวอร์ชัน 2 ซึ่งเป็นส่วนหนึ่งของ UMP SDK โดยมีจุดประสงค์เพื่อใช้ร่วมกับเริ่มต้นใช้งาน ซึ่งจะแสดงภาพรวมของวิธีทำให้แอปทำงานร่วมกับ UMP SDK และข้อมูลเบื้องต้นเกี่ยวกับการตั้งค่าข้อความ คำแนะนำต่อไปนี้มีไว้สำหรับข้อความ GDPR TCF เวอร์ชัน 2 ของ IAB โดยเฉพาะ ดูข้อมูลเพิ่มเติมได้ที่ข้อกำหนดของ IAB มีผลต่อข้อความขอความยินยอมในสหภาพยุโรปอย่างไร
ข้อกำหนดเบื้องต้น
การเพิกถอนความยินยอม
GDPR กำหนดให้มีการเพิกถอนความยินยอมเพื่ออนุญาตให้ผู้ใช้ถอนตัวเลือกความยินยอมได้ทุกเมื่อ ดูตัวเลือกความเป็นส่วนตัวเพื่อใช้วิธีให้ผู้ใช้ถอนตัวเลือกความยินยอม
แท็กสำหรับผู้มีอายุต่ำกว่าอายุที่ให้ความยินยอมได้
หากต้องการระบุว่าผู้ใช้มีอายุต่ำกว่าอายุที่ให้ความยินยอมได้หรือไม่ ให้ตั้งค่า
setTagForUnderAgeOfConsent (TFUA) เมื่อคุณตั้งค่า TFUA เป็น true, UMP SDK จะไม่ขอความยินยอมจากผู้ใช้ หากแอปมีกลุ่มเป้าหมายทั้งเด็กและผู้ใหญ่ ให้ตั้งค่าพารามิเตอร์นี้สำหรับผู้ใช้ที่เป็นเด็กเพื่อให้แน่ใจว่าจะไม่มีการขอความยินยอม
ตัวอย่างต่อไปนี้ตั้งค่า TFUA เป็น "จริง" ในคำขอความยินยอมของ UMP
Java
ConsentRequestParameters params =
new ConsentRequestParameters.Builder()
// Indicate the user is under age of consent.
.setTagForUnderAgeOfConsent(true)
.build();
Kotlin
val params =
ConsentRequestParameters.Builder()
// Indicate the user is under age of consent.
.setTagForUnderAgeOfConsent(true)
.build()
ตั้งค่าความยินยอมในสื่อกลาง AdMob
หากต้องการตั้งค่าความยินยอมในสื่อกลาง AdMob ให้ทำตามขั้นตอนในส่วนต่อไปนี้
เพิ่มพาร์ทเนอร์โฆษณาลงในข้อความ GDPR
ทำตามขั้นตอนในหัวข้อเพิ่มพาร์ทเนอร์โฆษณาลงในข้อความ GDPR ที่เผยแพร่เพื่อเพิ่มพาร์ทเนอร์สื่อกลางลงในรายชื่อพาร์ทเนอร์โฆษณา มิเช่นนั้นอาจทำให้พาร์ทเนอร์แสดงโฆษณาในแอปของคุณไม่ได้
ตารางต่อไปนี้แสดงชื่อพาร์ทเนอร์เทคโนโลยีโฆษณาสำหรับแหล่งที่มาของโฆษณาแต่ละแหล่ง
| แหล่งที่มาของโฆษณา | ชื่อพาร์ทเนอร์เทคโนโลยีโฆษณา |
|---|---|
| AppLovin | AppLovin Corp. |
| BidMachine | BidMachine |
| SDK โฆษณา BIGO | Empathy Technology Pte.Ltd. (BIGO Ads) |
| Chartboost | Chartboost |
| DT Exchange | DT Exchange (การสร้างรายได้ของ Fyber) |
| i-mobile | i-mobile |
| InMobi | InMobi |
| ironSource Ads | ironSource Mobile |
| Liftoff Monetize | Liftoff |
| LY Ads Network | LY Ads Network |
| maio | maio |
| Meta Audience Network | Meta |
| Mintegral | Mobvista/Mintegral |
| SDK โฆษณา Moloco | Moloco Ads |
| myTarget | Mail.ru |
| Pangle | Pangle DSP |
| PubMatic OpenWrap SDK | PubMatic |
| Unity Ads | Unity Ads |
| Verve HyBid SDK | Verve Group |
ส่งต่อความยินยอมไปยังแหล่งที่มาของโฆษณา
ตารางต่อไปนี้แสดงแหล่งที่มาของโฆษณาที่รองรับการส่งสัญญาณความยินยอมตาม GDPR จากแพลตฟอร์มการจัดการความยินยอมที่ผสานรวมกับกรอบความโปร่งใสและความยินยอม (TCF) ของ IAB และข้อกำหนดความยินยอมเพิ่มเติมของ Google ไปยัง SDK ของแหล่งที่มาของโฆษณา
| แหล่งที่มาของโฆษณา | เวอร์ชันต่ำสุดที่รองรับ |
|---|---|
| AppLovin | 12.0.0.0 |
| BidMachine | 3.3.0.0 |
| SDK โฆษณา BIGO | 5.5.2.0 |
| Chartboost | 9.13.0.0 |
| DT Exchange | 8.3.0.0 |
| i-mobile | ไม่มี1 |
| InMobi | 10.7.5.0 |
| ironSource Ads | 7.7.0.0 |
| Liftoff Monetize | 7.4.1.0 |
| LY Ads Network | ไม่มี1 |
| maio | ไม่มี1 |
| Meta Audience Network | ไม่มี2 |
| Mintegral | 17.1.61.1 |
| SDK โฆษณา Moloco | 3.5.0.0 |
| myTarget | 5.51.2.0 |
| Pangle | 7.9.0.9.0 |
| PubMatic OpenWrap SDK | 4.7.0.0 |
| Unity Ads | 4.19.0.1 |
| Verve HyBid SDK | 3.7.1.0 |
1 แหล่งที่มาของโฆษณาไม่แสดงการเข้าชมใน EEA
2 โปรดติดต่อผู้จัดการพาร์ทเนอร์ของ Meta เพื่อขอรายละเอียด
วิธีอ่านตัวเลือกความยินยอม
หลังจากรวบรวมความยินยอมตาม GDPR แล้ว คุณสามารถอ่านตัวเลือกความยินยอมจากพื้นที่เก็บข้อมูลในเครื่องตามข้อกำหนด TCF เวอร์ชัน 2 คีย์ IABTCF_PurposeConsents จะระบุความยินยอมสำหรับวัตถุประสงค์ TCF แต่ละรายการ
ข้อมูลโค้ดต่อไปนี้แสดงวิธีตรวจสอบความยินยอมสำหรับวัตถุประสงค์ข้อที่ 1
Java
SharedPreferences sharedPref = PreferenceManager.getDefaultSharedPreferences(context);
// Example value: "1111111111"
String purposeConsents = sharedPref.getString("IABTCF_PurposeConsents", "");
// Purposes are zero-indexed. Index 0 contains information about Purpose 1.
if (!purposeConsents.isEmpty()) {
String purposeOneString = String.valueOf(purposeConsents.charAt(0));
boolean hasConsentForPurposeOne = purposeOneString.equals("1");
}
Kotlin
val sharedPref = PreferenceManager.getDefaultSharedPreferences(context)
// Example value: "1111111111"
val purposeConsents = sharedPref.getString("IABTCF_PurposeConsents", "")
// Purposes are zero-indexed. Index 0 contains information about Purpose 1.
if (!purposeConsents.isNullOrEmpty()) {
val purposeOneString = purposeConsents.first().toString()
val hasConsentForPurposeOne = purposeOneString == "1"
}
คำถามที่พบบ่อย
- จะเกิดอะไรขึ้นหากฉันไม่ดำเนินการใดๆ เพื่อให้เป็นไปตามข้อกำหนดของแพลตฟอร์มการจัดการความยินยอมสำหรับการแสดงโฆษณาใน EEA, สหราชอาณาจักร และสวิตเซอร์แลนด์
ตั้งแต่วันที่ 16 มกราคม 2024 เป็นต้นไป หากพาร์ทเนอร์ไม่ได้ใช้ CMP ที่ผ่านการรับรองจาก Google จะมีเพียงโฆษณาแบบจำกัดเท่านั้นที่มีสิทธิ์แสดงในการเข้าชมจาก EEA และสหราชอาณาจักร
เราจะเริ่มบังคับใช้ในวันที่ 16 มกราคม 2024 กับการเข้าชมจำนวนเล็กน้อยใน EEA และสหราชอาณาจักร แล้วจะเพิ่มสัดส่วนการบังคับใช้ขึ้นเรื่อยๆ ไปจนครบทุกการเข้าชมใน EEA และสหราชอาณาจักรภายในสิ้นเดือนกุมภาพันธ์ 2024 โปรดใช้ CMP ที่ได้รับการรับรองภายในวันที่ 16 มกราคม 2024 เพื่อให้รายได้ของคุณไม่ได้รับผลกระทบจากข้อกำหนดนี้
- ฉันจะตรวจสอบได้อย่างไรว่าผู้ใช้ให้ความยินยอมหรือไม่
ความยินยอมไม่ได้แสดงด้วยบิตเดียว แต่เป็นชุดวัตถุประสงค์และผู้ให้บริการตามที่ระบุไว้ในข้อกำหนด TCF ของ IAB ดูเกณฑ์การปรับโฆษณาตามโปรไฟล์ของผู้ใช้ของ Google Ads ได้ที่ นโยบายความยินยอม: โฆษณาที่ปรับและไม่ได้ปรับตามโปรไฟล์ของผู้ใช้
นอกจากนี้ เทคโนโลยีโฆษณาในรายชื่อผู้ให้บริการเทคโนโลยีโฆษณา (ATP) ของ Google ที่ไม่ได้จดทะเบียนในรายชื่อผู้ให้บริการ TCF จะใช้รายละเอียดทางเทคนิคเกี่ยวกับความยินยอมเพิ่มเติมของ Google เพื่อรวบรวมความยินยอม Google เผยแพร่รายชื่อและรหัสของผู้ให้บริการเทคโนโลยีโฆษณาที่ไม่ได้จดทะเบียนกับ IAB ไว้ที่ https://storage.googleapis.com/tcfac/additional-consent-providers.csv
หากต้องการแก้ไขข้อบกพร่องของคำขอโฆษณาแต่ละรายการ ให้ใช้ฟีเจอร์แก้ปัญหาการตั้งค่าความเป็นส่วนตัวในเครื่องมือตรวจสอบโฆษณาเพื่อดูสัญญาณความเป็นส่วนตัวต่อไปนี้ที่ส่งในคำขอโฆษณาซึ่งเป็นส่วนหนึ่งของการผสานรวมผู้เผยแพร่โฆษณากับ TCF ของ IAB Europe
ป้ายกำกับเครื่องมือตรวจสอบโฆษณา พารามิเตอร์การค้นหาคำขอโฆษณา ความหมาย GDPR มีผล (IABTCF_gdprApplies) gdprGDPR มีผลกับคำขอโฆษณานี้หรือไม่ สตริง TC (IABTCF_TCString) gdpr_consentสตริง TC IAB มีเครื่องมือบนเว็บที่คุณสามารถถอดรหัสค่าได้ด้วยตนเอง สตริง AC (IABTCF_AddtlConsent) addtl_consentสตริง AC จากข้อกำหนดทางเทคนิคเกี่ยวกับความยินยอมเพิ่มเติมของ Google หากต้องการอ่านตัวเลือกความยินยอมแบบเป็นโปรแกรม โปรดดูข้อมูลเพิ่มเติมที่หัวข้อวิธีอ่านตัวเลือกความยินยอม
- ฉันจำเป็นต้องใช้ UMP SDK ของ Google เพื่อให้เป็นไปตามข้อกำหนด CMP ไหม
ไม่ คุณสามารถใช้ CMP ใดก็ได้จากรายการ CMP ที่ได้รับการรับรองจาก Google เพื่อแสดงโฆษณา
- ฉันจะแสดงแบบฟอร์มความยินยอมอีกครั้งโดยใช้ UMP SDK ได้อย่างไร แม้ว่าผู้ใช้จะให้ความยินยอมแล้วก็ตาม
หากผู้ใช้ได้ตัดสินใจเกี่ยวกับความยินยอมแล้ว โซลูชันการจัดการความยินยอมของ Google จะไม่ขอรวบรวมความยินยอมใหม่จนกว่าสตริง TC จะหมดอายุหรือใช้ไม่ได้
GDPR กำหนดให้มีการแก้ไขความยินยอมเพื่อให้ผู้ใช้ถอนตัวเลือกความยินยอมได้ทุกเมื่อ ดูตัวเลือกความเป็นส่วนตัวเพื่อใช้วิธีให้ผู้ใช้ถอนตัวเลือกความยินยอม หากต้องการแสดงแบบฟอร์มความยินยอมอีกครั้ง ให้เรียกใช้
showPrivacyOptionsForm()- ฉันผสานรวม CMP ที่ได้รับการรับรองจาก Google แล้ว แต่ไม่เห็นคำขอโฆษณาที่ส่งไปยังพาร์ทเนอร์สื่อกลาง แม้แต่จากผู้ใช้ที่ให้ความยินยอม เหตุใดจึงเป็นเช่นนี้
ภายใต้ TCF นั้น Google จะตรวจสอบว่าผู้ให้บริการเทคโนโลยีโฆษณาและแหล่งที่มาของดีมานด์โฆษณาแบบเป็นโปรแกรมอื่นๆ ไม่ได้ละเมิดนโยบายของ Google และมีพื้นฐานทางกฎหมายอย่างน้อย 1 อย่างในการประมวลผลข้อมูล ก่อนที่จะเพิ่มผู้ให้บริการและแหล่งที่มาดังกล่าวในการแสดงโฆษณาสื่อกลางตามลำดับขั้น ไปที่ส่วนสื่อกลางเพื่อดูข้อมูลเพิ่มเติม
พาร์ทเนอร์สื่อกลางบางรายในรายชื่อผู้ให้บริการเทคโนโลยีโฆษณา (ATP) ของ Google ไม่ได้ลงทะเบียนในรายชื่อผู้ให้บริการ TCF พาร์ทเนอร์เหล่านี้ใช้ข้อกำหนดทางเทคนิคเกี่ยวกับความยินยอมเพิ่มเติมของ Google แทนในการรวบรวมความยินยอม Google เผยแพร่รายชื่อและรหัสของผู้ให้บริการเทคโนโลยีโฆษณาที่ไม่ได้ลงทะเบียนกับ IAB ไว้ที่ https://storage.googleapis.com/tcfac/additional-consent-providers.csv
UMP SDK รองรับการจัดเก็บ ACString ซึ่งช่วยให้คุณเพิ่มพาร์ทเนอร์โฆษณาลงในข้อความ GDPR ที่เผยแพร่ได้โดยไม่ต้องทำความเข้าใจว่าพาร์ทเนอร์ลงทะเบียน TCF หรือไม่ เมื่อใช้ CMP ของบุคคลที่สาม คุณควรทำดังนี้
- ตรวจสอบว่า CMP ของบุคคลที่สามรองรับการจัดเก็บ ACString
- รวมพาร์ทเนอร์สื่อกลางแต่ละรายไว้ในรายชื่อผู้ให้บริการเทคโนโลยีโฆษณาที่ CMP ของบุคคลที่สามใช้เพื่อรวบรวมความยินยอม
- ฉันจะเปลี่ยนวิธีการทำงานของแอปได้ไหมหากผู้ใช้ไม่ยินยอม นโยบายอนุญาตให้ทำเช่นนี้หรือไม่
ผู้เผยแพร่โฆษณาสามารถอ่านสตริง TCF ของ IAB ในแอปของตนได้ ดูข้อมูลเกี่ยวกับการอ่านตัวเลือกความยินยอมแบบเป็นโปรแกรมได้ที่วิธีอ่านตัวเลือกความยินยอม ผู้เผยแพร่โฆษณาควรตรวจสอบภาระหน้าที่ของตนภายใต้กฎระเบียบที่เกี่ยวข้องกับที่ปรึกษาด้านกฎหมาย
- เมื่อเลือกจัดการตัวเลือกและให้ความยินยอมสำหรับวัตถุประสงค์ทั้งหมดแล้ว ฉันไม่เห็นโฆษณาใดๆ เลย เหตุใดจึงเป็นเช่นนี้
นอกจากการรวบรวมความยินยอมตามวัตถุประสงค์แล้ว คุณยังต้องรวบรวมความยินยอมของผู้ให้บริการด้วย ผู้ให้บริการ เช่น Google ต้องได้รับทั้งความยินยอมตามวัตถุประสงค์และความยินยอมของผู้ให้บริการเพื่อแสดงโฆษณาที่เหมาะสม
- ฉันจะใช้สตริง AC เวอร์ชัน 2 สําหรับผู้ใช้ที่ให้ความยินยอมในเวอร์ชัน 1 แล้วได้อย่างไร
ตรวจสอบคีย์
IABTCF_AddtlConsentในพื้นที่เก็บข้อมูลในเครื่องตามข้อกำหนดทางเทคนิคเกี่ยวกับความยินยอมเพิ่มเติมของ Google เพื่อพิจารณาว่าผู้ใช้ได้ให้ความยินยอมแก่สตริง AC เวอร์ชัน 2 หรือไม่ และคุณต้องแสดงแบบฟอร์มความยินยอมอีกครั้งหรือไม่Java
SharedPreferences sharedPref = PreferenceManager.getDefaultSharedPreferences(context); // Example value: "2~1.35.41.101~dv.9.21.81" String additionalConsent = sharedPref.getString("IABTCF_AddtlConsent", ""); // Index 0 contains information about the specification version number. if (!additionalConsent.isEmpty()) { String specACVersion = additionalConsent.charAt(0); boolean isACVersion2 = purposeOneString.equals("2"); }Kotlin
val sharedPref = PreferenceManager.getDefaultSharedPreferences(context) // Example value: "2~1.35.41.101~dv.9.21.81" val additionalConsent = sharedPref.getString("IABTCF_AddtlConsent", "") // Index 0 contains information about the specification version number. if (!additionalConsent.isEmpty()) { val specACVersion = additionalConsent.first() val isACVersion2 = specACVersion == "2" }