ทดสอบแบนเนอร์ความยินยอมอัตโนมัติด้วย Playwright: คู่มือลงมือทำ
ทำไมต้องทดสอบความยินยอมอัตโนมัติ
การตรวจความยินยอมด้วยมือข้ามได้ง่ายและพลาดได้ง่าย แท็กใหม่ที่ทีมการตลาดเพิ่ม การอัปเดตธีม หรือตัวโหลดสคริปต์ที่รีแฟกเตอร์ อาจเริ่มยิงตัวติดตามก่อนมีความยินยอมอย่างเงียบๆ และไม่มีใครสังเกตจนกว่าลูกค้าหรือหน่วยงานกำกับดูแลจะเห็น เบราว์เซอร์เทสต์อัตโนมัติเปลี่ยนคำถามที่ว่า “แบนเนอร์ของเรายังทำงานถูกต้องไหม” ให้รันในทุกการปล่อย Playwright เหมาะเพราะควบคุมเบราว์เซอร์จริง ดักคำขอเครือข่ายได้ และให้ browser context ใหม่ที่แยกอิสระ
บริบทการทดสอบ
แต่ละเทสต์ควรเริ่มจาก browser context ที่สะอาด ไม่มีคุกกี้และไม่มี local storage เพื่อจำลองผู้เยี่ยมชมครั้งแรก สร้าง context ใหม่ต่อเทสต์แทนการใช้เพจซ้ำ มิฉะนั้นตัวเลือกที่เทสต์หนึ่งจัดเก็บจะรั่วไปยังเทสต์ถัดไป
เทสต์ 1: ไม่มีอะไรทำงานก่อนมีความยินยอม
ฟังทุกคำขอเครือข่ายตั้งแต่เพจเริ่มโหลด โหลดเพจ รอจนว่าง และไม่แตะแบนเนอร์ จากนั้นเปรียบเทียบคำขอกับรายชื่อโดเมนตัวติดตามที่คุณดูแล เช่น การวิเคราะห์ โฆษณา และพิกเซลโซเชียล เทสต์ล้มเหลวหากมีคำขอไปยังโดเมนในรายการ และอ่านรายการคุกกี้จาก context แล้วล้มเหลวหากมีคุกกี้ที่ไม่จำเป็น
เทสต์ 2: ปฏิเสธแล้วทุกอย่างยังปิดอยู่
- โหลดเพจใน context ใหม่
- คลิกตัวควบคุมปฏิเสธในแบนเนอร์
- ไปยังอีกสองสามเพจ รวมถึงเพจที่มีสื่อฝัง
- ยืนยันว่าไม่มีคำขอตัวติดตามและไม่มีคุกกี้ที่ไม่จำเป็นถูกตั้ง
- โหลดใหม่ และยืนยันว่าแบนเนอร์ยังซ่อนอยู่และตัวเลือกคงอยู่
เทสต์ 3: ยอมรับแล้วเปิดสิ่งที่ควรเปิด
คลิกยอมรับ และยืนยันว่าแท็กที่คาดไว้ทำงานแล้ว เช่น คำขอวิเคราะห์ของคุณ เทสต์นี้ป้องกันความล้มเหลวด้านตรงข้าม: แบนเนอร์ที่บันทึกความยินยอมแต่ไม่ปล่อยสคริปต์ ซึ่งทำให้เสียข้อมูลและรายได้อย่างเงียบๆ
เทสต์ 4: ตัวเลือกละเอียด
เปิดชั้นการตั้งค่า เปิดเพียงหนึ่งวัตถุประสงค์ แล้วบันทึก ยืนยันว่าแท็กที่ผูกกับวัตถุประสงค์นั้นทำงาน และแท็กที่ผูกกับวัตถุประสงค์อื่นไม่ทำงาน เก็บไฟล์แมปปิงเล็กๆ จากวัตถุประสงค์ไปยังโดเมนที่คาดไว้ เพื่อให้เทสต์อ่านง่ายและอัปเดตได้ง่าย
เทสต์ 5: การถอน
ยอมรับ จากนั้นเปิดการตั้งค่าใหม่ผ่านลิงก์ถาวรของคุณและถอน ยืนยันว่าคำขอไปยังตัวติดตามหลังจากนั้นหยุด และสถานะความยินยอมที่จัดเก็บสะท้อนการเปลี่ยนแปลง โปรดทราบว่าคุกกี้ที่ตั้งไปแล้วอาจต้องลบอย่างชัดเจน จึงควรตัดสินใจว่านโยบายของคุณคืออะไรและทดสอบตามนั้น
เทสต์ 6: สัญญาณ
หากคุณใช้ Google Consent Mode ให้อ่าน data layer ในบริบทของเพจก่อนและหลังแต่ละตัวเลือก และยืนยันว่าค่าสถานะความยินยอมตรงกัน: denied โดยค่าเริ่มต้น และ granted สำหรับหมวดที่ผู้เยี่ยมชมยอมรับ หากคุณใช้สตริง TCF ให้อ่านผ่าน TCF API และยืนยันว่ามีอยู่หลังเลือกและสะท้อนตัวเลือกนั้น
ทำให้เทสต์เชื่อถือได้
- ใช้ selector ที่เสถียร เช่น test attribute หรือ accessible role แทนคลาส CSS ที่เปลี่ยนตามการอัปเดตดีไซน์
- รอเงื่อนไขที่ชัดเจน ไม่ใช่การหน่วงเวลาคงที่
- รันเทสต์กับสำเนา staging ที่มีการตั้งค่าแท็กเหมือน production
- รันชุดเทสต์ขนาดเล็กตามกำหนดเวลา ไม่ใช่แค่ตอน deploy เพราะสคริปต์บุคคลที่สามเปลี่ยนโดยไม่ผ่านการปล่อยของคุณ
- ทดสอบภูมิภาคหลักที่คุณให้บริการโดยตั้ง geolocation หรือใช้การ override ภูมิภาคที่ CMP ของคุณมี
FlexyConsent อยู่ตรงไหน
FlexyConsent รองรับ IAB TCF 2.4, IAB GPP v1.1 และ Google Consent Mode v2 สัญญาณที่คุณ assert ในเทสต์จึงเป็นสัญญาณมาตรฐานที่อ่านได้จากเพจ แบนเนอร์มีใน 58 ภาษา หากคุณให้บริการหลายภาษา ให้เพิ่มเทสต์ที่โหลดอย่างน้อยหนึ่งเวอร์ชันที่ไม่ใช่ภาษาอังกฤษ
ประเด็นสำคัญ
- ใช้ browser context ใหม่ต่อเทสต์เพื่อจำลองผู้เยี่ยมชมครั้งแรก
- assert จากคำขอเครือข่ายและคุกกี้ ไม่ใช่แค่หน้าตาของแบนเนอร์
- ครอบคลุมสี่เส้นทาง: ไม่โต้ตอบ ปฏิเสธ ยอมรับ และถอน
- ตรวจสัญญาณความยินยอมใน data layer หรือ TCF API ด้วย
- รันชุดเทสต์ตอนปล่อยและตามกำหนดเวลา เพื่อจับการเปลี่ยนแปลงจากสคริปต์บุคคลที่สาม