ข้อผิดพลาดของ Consent String ที่ทำลายรายได้โฆษณาของคุณอย่างเงียบๆ
การรั่วไหลของรายได้แบบเงียบ
เมื่อ eCPM ของคุณลดลงไม่กี่เปอร์เซ็นต์ทุกเดือน สาเหตุไม่ค่อยใช่อินเวนทอรีหรือราคาขั้นต่ำ บ่อยครั้งกว่านั้นคือ TC string ที่เสียหาย — สัญญาณของ IAB Transparency & Consent Framework (TCF) ที่เดินทางไปกับทุกคำขอโฆษณา สตริงที่ผิดรูปแบบหรือขาดหายไปไม่ได้โยนข้อผิดพลาดที่ดังออกมา แต่เซิร์ฟเวอร์โฆษณาจะถอยกลับไปสู่ โฆษณาที่ไม่ปรับให้เป็นส่วนตัว อย่างเงียบๆ พันธมิตรฝั่งดีมานด์ถอนตัว และรายได้ก็เลือดไหลโดยไม่มีการแจ้งเตือนแม้แต่ครั้งเดียว สำหรับผู้เผยแพร่แอปและเกมที่สร้างรายได้ใน EEA & UK นี่คือสาเหตุของรายได้ที่สูญเสียซึ่งถูกมองข้ามมากที่สุด
TC string นำพาอะไรจริงๆ
TC string คือ blob ที่เข้ารหัสแบบ base64 ที่สร้างโดยแพลตฟอร์มการจัดการความยินยอม (CMP) ของคุณ มันเข้ารหัสตัวเลือกของผู้ใช้: วัตถุประสงค์ที่ยินยอม ผู้ขายที่อนุญาต CMP ID ของคุณ เวอร์ชันนโยบาย และ timestamp ผู้ซื้อถอดรหัสมันในเสี้ยววินาทีเพื่อตัดสินว่าจะเสนอราคาด้วยการกำหนดเป้าหมายแบบส่วนตัวได้หรือไม่ สองสัญญาณสำคัญพอๆ กัน:
gdprApplies— แฟล็ก (1, 0, หรือ undefined) ที่บอกผู้ซื้อว่า GDPR อยู่ในขอบเขตหรือไม่- Google Consent Mode v2 — สัญญาณ
ad_storage,ad_user_data, และad_personalizationที่ Google อ่านอย่างเป็นอิสระจากสตริง TCF
หากอันใดอันหนึ่งผิด ดีมานด์ก็ระเหยหายไป — แม้ว่าผู้ใช้จะให้ความยินยอมจริงๆ
ห้าข้อผิดพลาดที่ทำให้คุณเสียเงินอย่างเงียบๆ
1. สตริงขาดหายหรือหมดอายุ หาก CMP ไม่เคยเขียนสตริง หรือความยินยอมที่แคชไว้เก่าเกินกว่าหน้าต่างการถามซ้ำของคุณ คำขอจะออกไปโดยไม่มีสัญญาณ ผู้ซื้อถือว่า "ไม่มีสตริง" เป็น "ไม่มีความยินยอม" และเสนอราคาด้วยดีมานด์เชิงบริบทที่ eCPM ต่ำเท่านั้น หรือข้ามการประมูล
2. CMP ID ผิด CMP ที่ได้รับการรับรองทุกตัวมี ID ที่ลงทะเบียนฝังอยู่ในสตริง หากมีการเขียน ID ที่ไม่รู้จัก Google และผู้ขาย IAB จะปฏิเสธ — พบได้บ่อยหลังจากการย้ายระบบโดยที่ SDK เก่ายังคงรวมอยู่
3. ผู้ขายไม่ได้ประกาศ พันธมิตรฝั่งดีมานด์อาจมีความยินยอมเต็มที่ แต่หาก vendor ID ของมันไม่อยู่ในรายชื่อผู้ขายที่อนุญาต มันก็ไม่สามารถเสนอราคาแบบส่วนตัวได้ ผู้เผยแพร่มักลืมอัปเดตรายชื่อหลังจากเพิ่มพันธมิตร
4. gdprApplies ผิดรูปแบบ การส่งสตริง "1" แทนจำนวนเต็ม หรือปล่อยให้เป็น undefined สำหรับผู้ใช้ที่อยู่ใน EEA อย่างชัดเจน ทำให้ผู้ซื้อสับสน gdprApplies=0 ที่ไม่ถูกต้องยังอาจทำให้คุณเสี่ยงต่อการไม่ปฏิบัติตามกฎในขณะที่ ดูเหมือน ปกติดี
5. สัญญาณ Consent Mode ไม่ทำงาน สตริง TCF อาจสมบูรณ์แบบในขณะที่ Consent Mode ยังคงอยู่ในสถานะปฏิเสธค่าเริ่มต้น — เช่น เมื่อ SDK โหลดโฆษณาก่อนที่ความยินยอมจะได้รับการแก้ไข จากนั้น Google จะแสดงโฆษณาที่ไม่ปรับให้เป็นส่วนตัวโดยไม่คำนึงถึง TC string
เวิร์กโฟลว์การดีบักทีละขั้นตอน
ทำงานจากอุปกรณ์ออกไปยังเซิร์ฟเวอร์โฆษณา และทำซ้ำในสถานะที่สะอาด — ล้างข้อมูลแอปหรือใช้โปรไฟล์เบราว์เซอร์ใหม่เพื่อไม่ให้ความยินยอมเก่าทำให้คุณเข้าใจผิด
- ขั้นตอนที่ 1 — จับสตริงดิบ บนเว็บ อ่านผ่าน
__tcfapi('getTCData', 2, cb)ในแอป ดัมป์คีย์IABTCF_TCStringจากSharedPreferences(Android) หรือNSUserDefaults(iOS) - ขั้นตอนที่ 2 — ถอดรหัสและตรวจสอบ วางลงในตัวถอดรหัส IAB TCF หรือตัวตรวจสอบ CMP ยืนยันว่า CMP ID เป็นของคุณ เวอร์ชันนโยบายและ timestamp เป็นปัจจุบัน และ vendor ID หลักของคุณปรากฏในรายชื่อ
- ขั้นตอนที่ 3 — ตรวจสอบคำขอโฆษณา ใช้ Charles Proxy หรือเครื่องมือตรวจสอบเครือข่ายเพื่อดูคำขอ GAM และตรวจสอบว่าพารามิเตอร์
gdprและgdpr_consentนำพาค่าที่ถูกต้อง - ขั้นตอนที่ 4 — ตรวจสอบ Consent Mode ใช้ Google Tag Assistant เพื่อยืนยันว่า
ad_user_dataและad_personalizationพลิกเป็น granted เมื่อผู้ใช้ยอมรับ - ขั้นตอนที่ 5 — ยืนยันใน GAM เปิดมิติการรายงาน โฆษณาที่ไม่ปรับให้เป็นส่วนตัว ของ Ad Manager การพุ่งขึ้นของทราฟฟิก NPA ที่ไม่ตรงกับอัตราการเลือกไม่เข้าร่วมของคุณคือลายนิ้วมือของสตริงที่ไม่ดี
การแก้ไขที่ต้นเหตุ
การแพตช์คำขอที่ไม่ดีเพียงคำขอเดียวนั้นง่าย การป้องกันครั้งต่อไปคืองานจริง ทำให้โฆษณารอความยินยอมก่อนการเริ่มต้น รักษารายชื่อผู้ขายของคุณให้ซิงค์กับ demand stack และติดตาม อัตราส่วน ของการแสดงผลแบบส่วนตัวต่อแบบไม่ปรับให้เป็นส่วนตัว — การเปลี่ยนแปลงตรงนั้นคือคำเตือนแรกสุดของคุณ
นี่คือจุดที่ CMP ที่ได้รับการรับรองจาก Google พิสูจน์คุณค่าของมัน FlexyConsent ปล่อยสตริง IAB TCF 2.3 ที่ถูกต้องพร้อม CMP ID และการประกาศผู้ขายที่ถูกต้อง ยิงสัญญาณ Consent Mode v2 เพื่อให้ ad_user_data และ ad_personalization ติดตามตัวเลือกของผู้ใช้ และแสดงการวิเคราะห์อัตราความยินยอมข้ามเว็บ Android และ iOS — ดังนั้นสตริงที่เสียหายจะปรากฏบนแดชบอร์ด ไม่ใช่ในเงินจ่ายของคุณ
ประเด็นสำคัญ
- TC string ที่ไม่ดีไม่ได้แครช — มันลดระดับคุณอย่างเงียบๆ ไปสู่โฆษณาที่ไม่ปรับให้เป็นส่วนตัวและ eCPM ที่ต่ำลง
- ห้าตัวการ: สตริงขาดหาย/หมดอายุ, CMP ID ผิด, ผู้ขายที่ไม่ได้ประกาศ,
gdprAppliesผิดรูปแบบ, และสัญญาณ Consent Mode ที่ตายแล้ว - ดีบักจากอุปกรณ์ไปยังเซิร์ฟเวอร์โฆษณา: จับ, ถอดรหัส, ตรวจสอบคำขอ, ยืนยัน Consent Mode, ตรวจสอบ GAM
- ติดตามอัตราส่วนแบบส่วนตัว-ต่อ-NPA ของคุณอย่างต่อเนื่อง — CMP ที่ได้รับการรับรองอย่าง FlexyConsent ทำให้สตริงที่ถูกต้องและสัญญาณ Consent Mode v2 ที่ถูกต้องเป็นค่าเริ่มต้น