Prebid.js การจัดการความยินยอม: คู่มือการตั้งค่า Header Bidding สำหรับผู้เผยแพร่
Header bidding ช่วยเพิ่ม CPM ของผู้เผยแพร่โดยให้พาร์ทเนอร์ฝั่งอุปสงค์แข่งขันกันแบบขนาน แต่พาร์ทเนอร์แต่ละรายต้องได้รับสัญญาณความยินยอมที่ถูกต้องก่อนที่จะวางคุกกี้ ถ่ายลายนิ้วมือดิจิทัล หรือยิงพิกเซลได้ Prebid.js ซึ่งเป็น wrapper header bidding โอเพนซอร์สมาตรฐานที่ใช้งานโดยเว็บไซต์นับหมื่นแห่ง มาพร้อมกับโมดูลการจัดการความยินยอมที่เชื่อมต่อ CMP ของคุณกับทุกการประมูล หากตั้งค่าผิดพลาด คุณจะรั่วข้อมูลโดยไม่มีความยินยอม (ความเสี่ยงด้านกฎระเบียบ) หรือทำให้ผู้ประมูลขาดแคลนสัญญาณที่ต้องการ (ความเสี่ยงด้านรายได้) คู่มือนี้แนะนำผู้เผยแพร่ผ่านการตั้งค่าระดับ production
เหตุใด Prebid.js จึงต้องการโมดูลการจัดการความยินยอม
เมื่อการประมูล Prebid.js ทำงาน wrapper จะส่งคำขอแบบขนานไปยัง adapter ของผู้ประมูลที่กำหนดค่าไว้ทุกราย adapter แต่ละตัวต้องรวมสตริงความยินยอมของผู้ใช้ในคำขอประมูล ได้แก่ tcfeu (TCF v2.2 สำหรับ EU/UK), usp (CCPA/CPRA) และมากขึ้นเรื่อยๆ gpp (สตริง IAB Global Privacy Platform ที่ครอบคลุมหลายรัฐของสหรัฐฯ) หากไม่มีสัญญาณเหล่านี้ SSP และ DSP ปลายทางจะถูกบังคับให้ถือว่าผู้ใช้ออกจากระบบแล้ว ทิ้งการประมูลทั้งหมด หรือในกรณีเลวร้ายที่สุด ประมวลผลข้อมูลโดยผิดกฎหมาย
โมดูลการจัดการความยินยอมของ Prebid ทำหน้าที่เป็นตัวกลางระหว่าง CMP และ pipeline คำขอประมูล โดยเรียก CMP API มาตรฐาน (__tcfapi, __uspapi, __gppapi) รอสตริงความยินยอม จากนั้นแทรกลงใน payload คำขอประมูลของ adapter แต่ละตัวโดยอัตโนมัติ นอกจากนี้ยังบังคับใช้การควบคุมตามวัตถุประสงค์เมื่อเปิดใช้การบังคับใช้ GDPR โดยบล็อกการเข้าถึงพื้นที่จัดเก็บและการทำงานของผู้ประมูลสำหรับผู้ใช้ที่ยังไม่ได้ให้ความยินยอมตามวัตถุประสงค์ TCF ที่เกี่ยวข้อง
การติดตั้งและกำหนดค่าโมดูลหลัก
Prebid.js สร้างขึ้นต่อผู้เผยแพร่จาก docs.prebid.org/download.html เมื่อสร้าง build แบบกำหนดเอง โมดูลสามตัวภายใต้ "การจัดการความยินยอม" มีความสำคัญ:
- consentManagementTcf — จัดการสตริง TCF v2.2 สำหรับการรับส่งข้อมูลของ EU, UK และสวิตเซอร์แลนด์
- consentManagementUsp — จัดการ US Privacy String เก่าของ CCPA/CPRA (ยังคงต้องการโดย DSP หลายราย)
- consentManagementGpp — จัดการสตริง IAB GPP มาตรฐานที่มองไปข้างหน้าซึ่งขณะนี้ถูกกำหนดโดย Google, TTD และ SSP รายใหญ่
รวมทั้งสามตัวหากให้บริการการรับส่งข้อมูลทั่วโลก เมื่อ build มาถึง CDN ของคุณ ให้กำหนดค่าโมดูลในสคริปต์การตั้งค่า Prebid ของคุณ:
การกำหนดค่า TCF v2.2
บล็อก TCF บอก Prebid ว่าต้องเรียก CMP API ใด รอสตริงนานแค่ไหน และทำอะไรเมื่อ timeout การกำหนดค่า production ทั่วไปตั้งค่า cmpApi: 'iab', timeout: 8000 (8 วินาที นานพอสำหรับการโหลด CMP banner ที่ช้า) และ defaultGdprScope: true เพื่อให้ผู้ใช้ในเขตอำนาจที่ไม่ทราบถูกถือว่าอยู่ในขอบเขตจนกว่าจะพิสูจน์ได้เป็นอย่างอื่น การตั้งค่า actionTimeout แยกต่างหากควบคุมว่า Prebid รอนานแค่ไหนเมื่อผู้ใช้ยังไม่ได้โต้ตอบกับ banner ซึ่งการตั้งค่าให้พอเหมาะช่วยหลีกเลี่ยงช่องโฆษณาที่ว่างเปล่าหากผู้เยี่ยมชมเพิกเฉยต่อ banner
US Privacy และ GPP
USP นั้นง่าย: เปิดใช้โมดูลและ Prebid อ่านสตริงสี่ตัวอักษรจาก __uspapi GPP มีความซับซ้อนมากกว่าเพราะสตริง GPP สามารถรองรับ section ID หลายรายการ (TCF EU, US National, US California, US Colorado, US Virginia เป็นต้น) Prebid ส่งต่อสตริงเต็มอัตโนมัติ แต่ผู้ประมูลตรวจสอบ section เฉพาะ ตรวจสอบให้แน่ใจว่า CMP ของคุณส่ง GPP section ที่ถูกต้องสำหรับเขตอำนาจของผู้ใช้แต่ละราย เนื่องจาก CMP ที่กำหนดค่าผิดพลาดซึ่งส่งเฉพาะ US National section ให้กับผู้ใช้แคลิฟอร์เนียจะทำให้ DSP ที่สอดคล้องกับ CPRA ปฏิเสธการประมูล
การเปิดใช้การบังคับใช้ GDPR (การควบคุมตามวัตถุประสงค์)
ตามค่าเริ่มต้น โมดูลความยินยอมส่งผ่านสตริง TCF แต่ไม่บล็อกอะไร เพื่อให้ Prebid บังคับใช้วัตถุประสงค์ TCF จริงๆ ให้เปิดใช้ชุดกฎ gdprEnforcement นี่คือที่ที่ข้อผิดพลาดการตั้งค่าส่วนใหญ่เกิดขึ้น และที่ที่ความแตกต่างระหว่าง header bidding stack ที่สอดคล้องและไม่สอดคล้องอยู่
ชุดกฎมาตรฐานบล็อกสี่กิจกรรมเมื่อวัตถุประสงค์ที่เกี่ยวข้องขาดความยินยอม:
- storage — ควบคุมโดย Purpose 1 (การจัดเก็บและการเข้าถึง) เมื่อถูกปฏิเสธ Prebid จะป้องกันไม่ให้ผู้ประมูลอ่านหรือเขียนคุกกี้และ localStorage
- basicAds — ควบคุมโดย Purpose 2 (โฆษณาพื้นฐาน) เมื่อถูกปฏิเสธ ผู้ประมูลจะถูกแยกออกจากการประมูลทั้งหมด
- measurement — ควบคุมโดย Purpose 7 ส่งผลต่อ analytics adapters
- transmitPreciseGeo — ควบคุมโดย Special Feature 1 เมื่อถูกปฏิเสธ Prebid จะลบข้อมูลตำแหน่งที่แม่นยำออกจากคำขอประมูล
สำหรับกฎแต่ละข้อ ตั้งค่า enforcePurpose: true, enforceVendor: true และรายการ vendorExceptions รายการข้อยกเว้นผู้ขายมีความสำคัญ: ผู้ประมูลที่คุณระบุไว้ในนั้นได้รับอนุญาตให้เข้าร่วมแม้ไม่มีความยินยอมจากผู้ขาย TCF อย่างชัดเจน โดยมีเหตุผลว่าคุณมีฐานทางกฎหมายแยกต่างหาก (เช่น ผลประโยชน์ที่ชอบธรรมรวมกับขั้นตอนตามสัญญา) ใช้สิ่งนี้อย่างประหยัด เพราะข้อยกเว้นที่กว้างเกินไปคือรูปแบบที่หน่วยงานกำกับดูแลเริ่มปรับผู้เผยแพร่พอดี
ข้อผิดพลาดทั่วไปที่ทำให้ผู้เผยแพร่สูญเสียรายได้หรือการปฏิบัติตามกฎระเบียบ
Timeout ตั้งค่าต่ำเกินไป
หาก timeout สั้นกว่าเวลาเรนเดอร์ banner ของ CMP Prebid จะดำเนินการต่อโดยไม่มีสตริงความยินยอม ผู้ประมูลถือว่าเป็น ไม่มีความยินยอม และทิ้งการประมูล วัด latency การเรียกครั้งแรก tcfapi('addEventListener') ของ CMP ที่เปอร์เซ็นไทล์ที่ 95 และตั้งค่า timeout ของ Prebid ให้สูงกว่านั้น 8000 ms เป็นค่าเริ่มต้นที่ปลอดภัย 3000 ms มีความเสี่ยงหากให้บริการในตลาดที่ banner ต้องใช้เวลาในการแปลภาษา
ขาดการผสานรวม GPP สำหรับการรับส่งข้อมูลของสหรัฐฯ
SSP และ DSP รายใหญ่ (Google AdX, TTD, Magnite, PubMatic) ขณะนี้ต้องการสตริง GPP สำหรับการบังคับใช้การยกเลิกสมัครของสหรัฐฯ หากคุณส่งเฉพาะสตริง USP แบบเดิม DSP เหล่านี้จะลดคุณค่าหรือข้ามสินค้าคงคลังของคุณมากขึ้น ตรวจสอบการตอบกลับการประมูลของคุณ: การลดลงของ CPM อย่างรวดเร็วสำหรับการรับส่งข้อมูลของสหรัฐฯ ในปี 2569 มักเป็นสัญญาณที่ขาด GPP
สตริงความยินยอมที่ล้าสมัยบนการนำทาง SPA
แอปหน้าเดียวที่เรียกใช้การประมูล Prebid ซ้ำเมื่อเปลี่ยนเส้นทางต้องเรียก pbjs.refreshUserIds() และตรวจสอบให้แน่ใจว่าได้รับสตริง TCF ล่าสุด สตริงที่แคชไว้เก่า 30 นาทีอาจมีการตั้งค่าของผู้ใช้คนก่อนหากเว็บไซต์ของคุณใช้ session ที่ใช้ร่วมกัน
ขาด vendorExceptions สำหรับ analytics
ผู้เผยแพร่มักลืมว่า Prebid Analytics adapters (Google Analytics, การรายงานฝั่งเซิร์ฟเวอร์) ก็อยู่ภายใต้การควบคุม measurement ภายใต้ TCF Purpose 7 เช่นกัน หากคุณพึ่งพาสิ่งเหล่านี้สำหรับการรายงานรายได้ ให้ระบุอย่างชัดเจนภายใต้ข้อยกเว้นผู้ขายของกฎการวัด หรือยอมรับช่องว่างข้อมูลสำหรับการรับส่งข้อมูลที่ไม่มีความยินยอม
การทดสอบการตั้งค่าของคุณก่อน Production
Prebid.js เปิดเผย pbjs.getConfig('consentManagement') ในคอนโซลของเบราว์เซอร์ ตรวจสอบว่าการกำหนดค่าที่ใช้งานอยู่ตรงกับความตั้งใจของคุณ จากนั้นใช้ส่วนขยาย Chrome Prebid.js Professor หรือ pbjs.getEvents() เพื่อตรวจสอบสตริงความยินยอมที่แนบมากับคำขอประมูลแต่ละรายการ ตรวจสอบสามสถานการณ์: ผู้ใช้ที่ยินยอมอย่างสมบูรณ์ ผู้ใช้ที่คลิก "ปฏิเสธทั้งหมด" และผู้ใช้ที่ปิด banner โดยไม่โต้ตอบ แต่ละรายการควรสร้างพฤติกรรมที่แตกต่างกันที่สังเกตได้ใน payload คำขอประมูล
ทำการตรวจสอบเดียวกันในหลายพื้นที่ทางภูมิศาสตร์โดยใช้ VPN หรือแฟล็กการแทนที่ตำแหน่งทางภูมิศาสตร์ของ CMP ของคุณ การรับส่งข้อมูล EU ควรสร้างสตริง TCF และเรียกใช้ gdprEnforcement การรับส่งข้อมูลแคลิฟอร์เนียควรสร้าง USP และสตริง GPP การรับส่งข้อมูลที่ไม่ทราบเขตอำนาจควรเคารพการตั้งค่า defaultGdprScope ของคุณ
นำทุกอย่างมารวมกัน
Prebid Consent Management stack ที่กำหนดค่าอย่างถูกต้องทำสามสิ่งพร้อมกัน: รักษาให้ผู้ประมูลของคุณได้รับสัญญาณความยินยอมที่ถูกต้อง (รักษา CPM), บังคับใช้กฎ TCF และการยกเลิกสมัครของสหรัฐฯ ในระดับ wrapper (ลดความเสี่ยงด้านกฎระเบียบ) และให้จุดตรวจสอบเดียวเมื่อหน่วยงานกำกับดูแลถามว่าการตั้งค่า header bidding ของคุณเคารพการเลือกของผู้ใช้อย่างไร ใช้เวลาตั้งค่า timeout อย่างตั้งใจ เปิดใช้ GPP ควบคู่กับ USP สำหรับการรับส่งข้อมูลของสหรัฐฯ และตรวจสอบรายการ vendorExceptions ทุกไตรมาส ค่าใช้จ่ายจากการทำผิดพลาดวัดได้ทั้งในแง่ค่าปรับและรายได้แบบ programmatic ที่สูญเสียไป