วิธีบล็อกสคริปต์จนกว่าจะได้รับความยินยอม: เปรียบเทียบสามวิธี
ปัญหา: แท็กที่ทำงานเร็วเกินไป
แบนเนอร์ขอความยินยอมจะได้ผลก็ต่อเมื่อแท็กที่อยู่เบื้องหลังเคารพตัวเลือกของผู้เข้าชม ความล้มเหลวที่พบบ่อยที่สุดนั้นเรียบง่าย: แบนเนอร์ปรากฏขึ้น แต่สคริปต์วิเคราะห์และโฆษณาโหลดไปแล้วและตั้งค่าตัวระบุก่อนที่ใครจะคลิกอะไร การแก้ไขหมายถึงการบล็อกสคริปต์จนกว่าจะได้รับความยินยอม มีสามวิธีที่ใช้งานได้จริง
วิธีที่ 1: เขียนทับ type ของสคริปต์
เบราว์เซอร์จะรันองค์ประกอบ script ก็ต่อเมื่อ type เป็นประเภท JavaScript หากคุณเปลี่ยน type เป็น text/plain เบราว์เซอร์จะเพิกเฉยต่อสคริปต์นั้น จากนั้นคุณเพิ่มแอตทริบิวต์ข้อมูลที่บันทึกว่าสคริปต์อยู่ในหมวดความยินยอมใด:
- เปลี่ยน
type="text/javascript"เป็นtype="text/plain" - เพิ่มแอตทริบิวต์ เช่น
data-category="analytics" - เมื่อผู้เข้าชมยินยอมในหมวดนั้น ตัวโหลดขนาดเล็กจะสลับ type กลับและแทรกสคริปต์เพื่อให้ทำงาน
เหมาะสำหรับ: สคริปต์แบบอินไลน์หรือภายนอกที่รู้จักอยู่ไม่กี่ตัวในเทมเพลตของคุณ ข้อควรระวัง: สคริปต์ที่ถูกแทรกโดยสคริปต์อื่นจะไม่ผ่านเทมเพลตของคุณ จึงไม่ถูกเขียนทับ
วิธีที่ 2: ควบคุมแท็กในตัวจัดการแท็ก
หากแท็กของคุณอยู่ใน Google Tag Manager หรือเครื่องมือที่คล้ายกัน คุณสามารถปล่อยคอนเทนเนอร์ไว้บนหน้าและควบคุมการทำงานด้วยทริกเกอร์ที่รับรู้ความยินยอม แต่ละแท็กจะมีข้อกำหนดด้านความยินยอม และตัวจัดการแท็กจะเรียกแท็กนั้นเมื่อสถานะความยินยอมที่ตรงกันได้รับอนุญาตเท่านั้น ข้อได้เปรียบสำคัญคือการควบคุมแบบรวมศูนย์: ทีมการตลาดเพิ่มแท็กได้โดยไม่ต้องแตะเทมเพลต และกฎจะติดไปกับแท็ก
เหมาะสำหรับ: เว็บไซต์ที่มีแท็กการตลาดจำนวนมาก ข้อควรระวัง: สคริปต์ที่เขียนตายตัวไว้นอกคอนเทนเนอร์ และแท็ก HTML แบบกำหนดเองที่โหลดสคริปต์อื่นต่อไปอีก
วิธีที่ 3: โหลดสคริปต์แบบไดนามิกเมื่อได้รับความยินยอม
ในวิธีนี้ คุณลบแท็ก script ออกจากหน้าทั้งหมด และเขียนฟังก์ชันที่แทรกสคริปต์หลังเหตุการณ์ความยินยอมเท่านั้น นี่เป็นตัวเลือกที่สะอาดที่สุดสำหรับแอปพลิเคชันหน้าเดียวและนักพัฒนาที่ต้องการควบคุมเต็มที่:
- รับฟังคอลแบ็กความยินยอมจาก CMP ของคุณ
- ตรวจสอบว่าหมวดใดได้รับอนุญาต
- สร้างองค์ประกอบ script ตั้งค่าแหล่งที่มา และต่อท้ายเข้าไปในเอกสาร
- รันโค้ดเริ่มต้นใดก็ตามในตัวจัดการ load ของสคริปต์
เหมาะสำหรับ: แอปพลิเคชันสมัยใหม่ที่มีขั้นตอนบิลด์ ข้อควรระวัง: การลืมจัดการผู้เข้าชมที่กลับมา ซึ่งตัวเลือกที่จัดเก็บไว้ต้องกระตุ้นการโหลดเมื่อโหลดหน้าโดยไม่ต้องคลิกใหม่
การจัดการการถอนความยินยอม
การบล็อกก่อนได้รับความยินยอมเป็นเพียงครึ่งหนึ่งของงาน หากผู้เข้าชมถอนความยินยอมในภายหลัง ให้หยุดเรียกใช้เครื่องมือ และตรวจสอบให้แน่ใจว่าเครื่องมือเหล่านั้นไม่อ่านหรือเขียนตัวระบุต่อไป การลบสคริปต์ออกจากหน้าไม่ได้ลบโค้ดที่อยู่ในหน่วยความจำแล้ว ดังนั้นการโหลดหน้าใหม่หลังถอนความยินยอมมักเป็นแนวทางที่ง่ายและเชื่อถือได้ที่สุด
ควรเลือกวิธีใด
- สคริปต์ไม่กี่ตัว เทมเพลตที่เรนเดอร์ฝั่งเซิร์ฟเวอร์: วิธีที่ 1
- แท็กการตลาดจำนวนมาก และผู้ที่ไม่ใช่นักพัฒนาเป็นผู้แก้ไข: วิธีที่ 2
- แอปหน้าเดียวหรือฟรอนต์เอนด์ที่สร้างเอง: วิธีที่ 3
- สภาพแวดล้อมแบบผสมมักรวมสองวิธีเข้าด้วยกัน เพียงตรวจสอบให้แน่ใจว่าไม่มีแท็กใดที่ไม่ถูกครอบคลุมโดยวิธีใดเลย
วิธีทดสอบ
- เปิดหน้าต่างส่วนตัวที่ล้างแคชแล้ว
- เปิดเครื่องมือสำหรับนักพัฒนาของเบราว์เซอร์ที่แท็บ Network และ Application ก่อนโหลดหน้า
- โหลดหน้าและอย่าแตะแบนเนอร์ ยืนยันว่าไม่มีคำขอวิเคราะห์หรือโฆษณาถูกส่ง และไม่มีคุกกี้หรือรายการจัดเก็บที่เกี่ยวข้องปรากฏขึ้น
- ยอมรับเพียงหนึ่งหมวด และยืนยันว่ามีเพียงสคริปต์ที่ตรงกันเท่านั้นที่โหลด
- ปฏิเสธทั้งหมด โหลดใหม่ และทำการตรวจสอบแรกซ้ำ
- ถอนความยินยอมและตรวจสอบพฤติกรรมตามที่อธิบายไว้ข้างต้น
FlexyConsent อยู่ตรงไหน
FlexyConsent รองรับ IAB TCF 2.4 และ Google Consent Mode v2 และเป็น CMP ที่ได้รับการรับรองจาก Google (CMP ID 317) ไม่ว่าคุณจะเลือกวิธีบล็อกแบบใด หน้าที่ของแบนเนอร์คือให้สัญญาณที่ชัดเจนแก่โค้ดของคุณว่าผู้เข้าชมเลือกอะไร หน้าที่ของคุณคือทำให้แน่ใจว่าทุกสคริปต์ปฏิบัติตามสัญญาณนั้น
สรุปประเด็นสำคัญ
- สคริปต์ที่โหลดก่อนที่ผู้เข้าชมจะเลือกทำให้จุดประสงค์ของแบนเนอร์สูญเปล่า
- การเขียนทับ type ทริกเกอร์ของตัวจัดการแท็ก และการโหลดแบบไดนามิก แต่ละวิธีเหมาะกับเว็บไซต์คนละประเภท
- สคริปต์ที่ถูกแทรกโดยสคริปต์อื่นคือช่องโหว่ที่พบบ่อยที่สุด
- จัดการผู้เข้าชมที่กลับมาและการถอนความยินยอม ไม่ใช่แค่การเข้าชมครั้งแรก
- ทดสอบในหน้าต่างส่วนตัวที่สะอาดโดยเปิดเครื่องมือสำหรับนักพัฒนาไว้ก่อนแตะแบนเนอร์