การดีบักสตริง IAB GPP ในคอนโซลเบราว์เซอร์: บทเรียนทีละขั้นตอน

เหตุใดปัญหา GPP จึงสังเกตได้ยาก

เมื่อผู้เข้าชมชาวสหรัฐฯ เลือกไม่เข้าร่วมการขายหรือแชร์ข้อมูลของตน ตัวเลือกนั้นต้องไปถึงพาร์ตเนอร์โฆษณาทุกรายในหน้า ด้วย IAB Global Privacy Platform (GPP) ตัวเลือกนี้เดินทางเป็นสตริงขนาดกะทัดรัดและรายการ section ID หากอย่างใดอย่างหนึ่งผิด — หายไป ล้าสมัย หรือมี section ผิด — จะไม่มีอะไรพังให้เห็นชัดเจน โฆษณายังโหลด แบนเนอร์ยังดูปกติ และปัญหาจะปรากฏทีหลังเมื่อพาร์ตเนอร์เพิกเฉยต่อ opt-out หรือเสนอราคาสำหรับอินเวนทอรีของคุณต่ำลง

ข่าวดีคือคุณตรวจสอบได้เกือบทุกอย่างจากคอนโซลเบราว์เซอร์ บทเรียนนี้พาไปตามการตรวจสอบตามลำดับที่เราจะทำบนหน้าเว็บจริง

ขั้นตอนที่ 1: ยืนยันว่า API มีอยู่และพร้อมใช้งาน

CMP ที่รองรับ GPP จะเปิดเผยฟังก์ชันส่วนกลางชื่อ __gpp เปิด DevTools บนหน้าเว็บของคุณและรันคำสั่ง ping:

__gpp('ping', function (data) { console.log(data); });

ออบเจกต์ที่ส่งกลับบอกอะไรได้มากเพียงแค่มองครั้งเดียว:

หาก __gpp เป็น undefined แสดงว่า CMP stub หายไปหรือโหลดช้าเกินไป stub ต้องอยู่ก่อนสคริปต์โฆษณาใดๆ ที่คาดหวังมัน มิฉะนั้นสคริปต์เหล่านั้นจะไม่เห็น CMP และจะรอหรือดำเนินต่อโดยไม่มีสัญญาณ

ขั้นตอนที่ 2: ตรวจสอบ section ที่ใช้ได้

กรอบความเป็นส่วนตัวแต่ละกรอบใน GPP มี section ID เป็นตัวเลข ที่ผู้เผยแพร่พบบ่อยที่สุดคือ 2 (EU TCF v2), 5 (TCF ของแคนาดา), 7 (US National, “usnat”) และตั้งแต่ 8 เป็นต้นไปสำหรับ section ของแต่ละรัฐ เช่น แคลิฟอร์เนีย เวอร์จิเนีย โคโลราโด ยูทาห์ และคอนเนตทิคัต ผู้เข้าชมจากรัฐในสหรัฐฯ ควรเห็นใน applicableSections ทั้ง section ระดับประเทศหรือ section ของรัฐที่เกี่ยวข้อง ไม่ใช่ section ของ EU

ทดสอบจากหลายตำแหน่ง บั๊กที่พบบ่อยคือ CMP ตรวจจับภูมิศาสตร์ถูกต้องสำหรับแบนเนอร์ แต่เขียน section ค่าเริ่มต้นลงในสตริงไม่ว่าจะอย่างไร หรือในทางกลับกัน ใช้ VPN หรือเครื่องมือพรีวิวของ CMP เปรียบเทียบสิ่งที่แบนเนอร์แสดงกับที่ applicableSections รายงาน

ขั้นตอนที่ 3: อ่านข้อมูลของ section

แทนที่จะถอดรหัสสตริงด้วยมือ ให้ขอ section ที่แยกวิเคราะห์แล้วจาก CMP:

__gpp('getSection', function (data, success) { console.log(data, success); }, 'usnat');

ใน section US National ฟิลด์ opt-out ใช้ข้อตกลงง่าย ๆ: 0 หมายถึงไม่เกี่ยวข้อง 1 หมายถึงผู้ใช้เลือกไม่เข้าร่วม และ 2 หมายถึงผู้ใช้ไม่ได้เลือกไม่เข้าร่วม ให้ความสำคัญกับฟิลด์เหล่านี้ก่อน:

ตอนนี้ลองเลือกไม่เข้าร่วมบนหน้าเว็บ — คลิกลิงก์ “Do Not Sell or Share” หรือสลับการตั้งค่าในศูนย์การตั้งค่า — แล้วรัน getSection อีกครั้ง ฟิลด์ opt-out ควรเปลี่ยนจาก 2 เป็น 1 หากไม่เปลี่ยน แสดงว่า UI และสัญญาณไม่ตรงกัน

ขั้นตอนที่ 4: ทดสอบเส้นทาง Global Privacy Control

กฎหมายระดับรัฐหลายฉบับกำหนดให้ธุรกิจถือสัญญาณ Global Privacy Control เป็นการ opt-out เปิดใช้ GPC ในเบราว์เซอร์หรือส่วนขยายที่รองรับ ยืนยันในคอนโซลว่า navigator.globalPrivacyControl คืนค่า true จากนั้นโหลดหน้าในเซสชันใหม่ ฟิลด์ opt-out ที่เกี่ยวข้องควรอ่านได้ 1 อยู่แล้วโดยที่ผู้เข้าชมไม่ต้องแตะแบนเนอร์ บาง section ยังมีฟิลด์ที่ระบุว่าตัวเลือกนั้นมาจากสัญญาณ GPC

ขั้นตอนที่ 5: ดูเหตุการณ์ ไม่ใช่แค่สแนปช็อต

สคริปต์โฆษณาไม่ควรอ่านสตริงครั้งเดียวตอนโหลดหน้าแล้วลืม ลงทะเบียน listener เพื่อดูว่าพาร์ตเนอร์เห็นอะไร:

__gpp('addEventListener', function (evt) { console.log(evt.eventName, evt.pingData); });

คุณควรเห็นเหตุการณ์ เช่น listenerRegistered, signalStatus และ sectionChange เมื่อผู้เข้าชมเปลี่ยนตัวเลือก ควรมีเหตุการณ์ sectionChange พร้อมสตริงที่อัปเดตตามมา หาก wrapper ของ header bidding หรือการเชื่อมต่อเซิร์ฟเวอร์โฆษณาของคุณอ่านสตริงก่อนที่ signalStatus จะเป็น “ready” เท่านั้น อาจส่งค่าที่ว่างเปล่าหรือล้าสมัย

ขั้นตอนที่ 6: ตามสตริงไปจนถึงคำขอโฆษณา

สุดท้าย เปิดแท็บ Network และกรองคำขอโฆษณาของคุณ endpoint โฆษณาจำนวนมากรับพารามิเตอร์ gpp และ gpp_sid (สตริงและ section ID ที่ใช้ได้) ตรวจสอบว่า:

  1. มีพารามิเตอร์ทั้งสองในคำขอจากผู้เข้าชมชาวสหรัฐฯ
  2. สตริงตรงกับที่ ping ส่งกลับ ณ เวลาของคำขอ
  3. หลัง opt-out คำขอถัดไปมีสตริงใหม่แทนที่จะเป็นสตริงที่แคชไว้

หากคุณใช้ Prebid.js ให้ยืนยันว่าโมดูลจัดการความยินยอมถูกกำหนดค่าสำหรับ GPP และตรวจสอบคำขอเสนอราคาที่ออกจาก wrapper รวมถึงการเรียกเซิร์ฟเวอร์โฆษณาสุดท้ายด้วย

รูปแบบความล้มเหลวที่พบบ่อย

ประเด็นสำคัญ

← บล็อก อ่านทั้งหมด →