Adblocker ทำงานอย่างไร ?

By Arnon Puitrakul - 12 มกราคม 2024

Adblocker ทำงานอย่างไร ?

เชื่อมั้ยว่า วัน ๆ นึง เราเจอ Ad หรือโฆษณามากกว่า 6,000 - 10,000 ตัวเลยทีเดียว แรก ๆ มันอาจจะเฉย ๆ ทุกคนต้องกินต้องใช้เนอะ แต่พอวัน ๆ นึงเราต้องเจอเยอะ ๆ เข้า มันไม่ไหวเหมือนกันนะ ทำให้มีโปรแกรมสำหรับ ซ่อน Ads เหล่านั้นออกไปจากหน้าจอของเรา นั่นคือพวก Adblocker วันนี้เราจะมาเล่าให้ฟังกันว่า มันทำงานอย่างไร ทำไมมันถึงซ่อน Ads ได้ และมันทำให้เราปลอดภัยบนโลกอินเตอร์เน็ตมากขึ้นได้อย่างไร

Ads ทำงานอย่างไร ?

จริง ๆ แล้ว Ads มันไม่ได้เป็นไอเท็มบนหน้าเว็บที่แปลกอะไรเลย มันอาจจะมาในรูปแบบของ ข้อความ, วีดีโอ, รูปภาพ และเสียงได้ทั้งหมด ถ้าเราอยากรู้ว่า Ads หน้าตาเป็นอย่างไร เชิญ มาเก๊า 888 ได้ หยอก ๆๆ แต่นั่นเป็นตัวอย่างหนึ่งของ Ads ที่ยิงกันรัว ๆ

Ads พวกนี้ก่อนที่มันจะแสดงผล มันจำเป็นจะต้องโหลด เหมือน Content อื่น ๆ บนหน้าเว็บ เมื่อโหลดเสร็จก็ค่อยเอามาแสดงผล ถ้าเป็น Ads เด็ก ๆ เขาจะมีแค่ตัว Content ของ Ads โดยตรง เช่น เป็นรูปภาพก็จะมีแค่รูปภาพ พวกนั้นมันธรรมดาไป นักการตลาดไม่ถูกใจสิ่งนี้ เพราะเขาไม่สามารถวัดผลได้ว่า Ads ที่ใช้มันมีประสิทธิภาพมากขนาดไหน มันสามารถแปลงเป็นยอดขายได้เท่าไหร่

ทำให้ส่วนใหญ่ เราจะมีการฝัง Script บางอย่างไว้ด้วย เมื่อ Ads โหลด แทนที่มันจะโหลดแค่ Content แต่มันจะโหลด Script มาก่อนแล้วให้ Script นั่นแหละ ไปเรียก Content อีกที หรือบางตัว เขาทำเป็น IFrame ไว้ แล้วพอเรียก ก็เหมือนเรียกหน้าย่อยบนหน้าเว็บอีกที นั่นคือ มาทั้งหมด ทั้ง Content และ Script เลย

ปัญหาเดียวของ Ads Content คือมันน่ารำคาญเฉย ๆ แต่อีตัวที่เป็นปัญหาของหลาย ๆ คน และ มีความพยายามในการจัดการคือ Script ที่ติดมากับตัวมันนี่แหละที่น่ากลัวสุด พวกนี้ไส้ในของมันนอกจากเรียก Ads Content เข้ามาแสดงผลได้แล้ว มันยังสามารถ เก็บข้อมูลของเรา เช่น Version ของ OS และ Web Browser ที่เราใช้งาน หรือจะเป็นพวก Cookie (เดี๋ยวเราว่ากันอีกที) พร้อมทั้งยังสามารถฝัง Cookie ไว้ใน Web Browser ของเราได้ด้วย

ความอร่อยของธุรกิจกับการฝัง Cookie อย่างแรกคือ เขาสามารถทำสิ่งที่เรียกว่า Cross-Marketing ได้ เราอาจจะเคยเห็นว่า เห้ย ทำไม เวลาเราค้นหาโรงแรมจากเว็บหนึ่ง แล้ว Ads ของโรงแรมมันมาอยู่ใน Facebook ละ ทั้ง ๆ ที่เราไม่ได้บอกข้อมูลให้กับเว็บค้นหาโรงแรมเลยว่า Facebook เราอันไหน มันมาแสดงผลมาถูกซะงั้น นั่นเป็นเพราะ Cookie ที่เว็บโรงแรมแรกนั่นแหละมาติดกับ Web Browser ของเรา และ เมื่อเราเปิด Facebook มันจะเข้ามาอ่าน Cookie ถ้าเจอ Cookie ที่ตรงกันมันจะทำการยิง Ads สิ่งเดียวกันนั่นแหละใส่เราทันที

เรียก Ads วันนี้แถมฟรี Tracker

เจ้า Cookie ที่เราว่ามา ที่ทำหน้าที่ในการตามการใช้งานนั่นแหละ ที่เราเรียกว่า Tracker การทำงานมันง่ายมาก ๆ คือ เขาอาจจะฝัง Cookie ตัวนึง ซึ่ง Content ในนั้นอาจจะใส่เป็น ID อะไรบางอย่าง พอเราค้นหา หรือเข้าเว็บอะไรก็ตาม มันจะเข้ามาหาอ่าน Cookie ตัวนั้นแหละ มันจะรู้ละว่า อ่อ ไอ้เครื่องนี้เอง แล้วมันจะทำการเก็บข้อมูลในฐานข้อมูลของเขาว่า อ่อ เราเข้าอันนี้นะ แล้วเขาถึงจะเอามา Cross-Reference อีกทีว่า เราน่าจะสนใจอะไร และ เสนอออกมาเป็น Personalised Ads นั่นเอง นี่คือวิธีการทำงานของมัน

นอกจากประโยชน์ของการทำ Cross-Marketing แล้ว เขายังสามารถเก็บข้อมูลของเราไปขายต่อให้กับคนอื่นได้อีกด้วย บริษัทคนกลางพวกนี้แหละ เราเรียกว่า Data Broker เขาทำหน้าที่ซื้อข้อมูลจากผู้ให้บริการต่าง ๆ มา บางเจ้าก็ขายข้อมูลตรง ๆ บางเจ้าก็มีการ Cross-Reference สร้าง Persona ของคน ๆ นั้นจากชุดข้อมูลที่ซื้อจากหลาย ๆ บริษัทด้วย

ตัวอย่างที่ดีของการให้บริการ Data as a service ลักษณะนี้คือ พวกแก๊งค์ Call Centre ทั้งหลาย ถามว่า เขาบอกได้ยังไงว่า เราชื่อ สกุลอะไร เลขบัตรประชาชนของเราคืออะไร ก็เพราะพวกนี้ส่วนใหญ่ เขาจะซื้อข้อมูลจากบริษัท Data Broker นี่แหละ กับส่วนน้อย ที่อาจจะโจรกรรมข้อมูล

เคสที่เราเคยเจอกับตัว และ รู้เลยว่า มันเอาข้อมูลมาจากไหนคือ ประกันรถยนต์เรา อยู่ ๆ มีบริษัทประกันเจ้าหนึ่งที่ขึ้นต้นด้วย T ลงท้ายด้วย E โทรเข้ามา บอกได้หมดว่าเราชื่ออะไร สกุลอะไร เราขับรถรุ่นไหน สีอะไร เบี้ยประกันเดิมเราเท่าไหร่ เพื่อมาเสนอว่า ให้ย้ายประกันมาบริษัทเขา โดยเขาเสนอเบี้ยให้ต่ำกว่า คาดหวังว่า เราเห็นว่าเบี้ยต่ำกว่า แล้วจะย้ายไปทำกับเขาแหละ หลังจากเจอเข้าไป บอกเลยว่า อย่างโกรธเลย เพราะ บริษัทที่รู้ข้อมูลทั้งหมดละเอียดขนาดนี้ ก็หนีไม่พ้น บริษัทประกันเดิม, ค่ายรถยนต์ที่เราซื้อ และ ศูนย์บริการที่เราออกและ MA รถเราเอง ซึ่ง 2 ตัวหลังเนี่ย เขาไม่ได้ส่วนได้ส่วนเสียกับเรื่องประกันอยู่ละ ทำให้เดาได้ไม่ยากเลยว่า แหม่ พวกมรึง !

ดังนั้น Tracker เขาไม่ได้มาในลักษณะแค่ว่า เราเข้าเว็บอะไร แต่เขาเก็บละเอียดมาก ๆ จนถึงขนาดเอาไปสร้างเป็น Persona ได้ ว่าเราใช้อะไรบ้าง เรากินอะไร เราชอบ ไม่ชอบอะไร เพื่อให้เขาสามารถเสนอขายสินค้าและบริการได้ดีขึ้น

ล้วงขนาดนี้ ไม่ผิดกฏหมายเหรอ ?

อ่านมาขนาดนี้ อาจจะถามว่า แล้วมันไม่ผิดกฏหมายเหรอ รัฐไม่ทำอะไรเลยเหรอ ทำไมรัฐเฮงซวยไม่ปกป้องประชาชนเลย เราต้องบอกเลยว่า รัฐเข้ามาทำไรได้อะถามก่อน เพราะคนที่เป็นคนอนุญาติให้บริษัทพวกนี้ทำได้ ก็คือ พวกแกเอง นั่นแหละ เวลาเราจะสมัครบริการอะไรสักอย่าง เขาจะมีข้อตกลงในการใช้งานมาให้เรา เซ็นต์ หรือ กดยินยอมใช่ปะ ถ้าเราอ่านลงไปเรื่อย ๆ เราอาจจะเจอกับข้อความประมาณว่า บริษัทสามารถขาย หรือส่งต่อข้อมูลส่วนตัวให้กับบริษัทอื่นได้อะไรแบบนั้นเลยนะ และ เรานี่แหละ เป็นคนกดยินยอมเองทั้งนั้น ทำให้เราจะไปว่าบริษัทพวกนั้น 100% เลยมันก็ไม่ถูกสักเท่าไหร่ ส่วนหนึ่งมันผิดที่เราเองด้วย ที่เราไม่อ่านให้ดี ๆ เวลาเจออะไรพวกนี้ อย่าสักแต่กด ๆ ไปเรื่อย ๆ ไม่งั้นข้อมูลของเราจะหลุดแบบนี้แหละ

ทำให้พวกนี้มันเลยเหมือนกับว่าเป็นช่องว่างทางกฏหมายเลยนะ คือ เราเป็นคนสมยอมเอง แต่เขาก็รู้อยู่แล้วว่า คนทั่ว ๆ ไป เขาไม่มานั่งอ่าน คงจะกด ยอมรับไปเลย เลยเขียนหน้าออกมาให้มันอ่านยาก ๆ แล้วมาโทษผู้ใช้ทีหลังว่า อ้าว ก็คุณกดยอมรับเงื่อนไขการใช้งานของเราแต่แรกแล้วไง จะมาโวยวายอะไรละ การจะทำให้เรื่องนี้มันดีขึ้น เราคิดว่า อาจจะต้องอาศัยเสียงที่ดังหน่อยจากผู้บริโภค

ปัจจุบัน โลกของเรามีความตระหนักรู้เรื่อง Privacy มากขึ้นเรื่อย ๆ ดูจาก การบีบให้เว็บ และ โปรแกรมหลาย ๆ ตัว บอกว่าเราจะมีการติดตั้ง Cookie นะ มีตัวเลือกที่จะแชร์ข้อมูลอะไร หรือไม่ให้แชร์ข้อมูลอะไร แถมบางตัวตอนนี้เราสามารถเปิดปิดการแชร์ข้อมูลได้ด้วย ถือว่าดีขึ้นกว่าเมื่อก่อนมาก ๆ

AdBlocker ทำงานอย่างไร ?

อะ ๆๆ เข้าเรื่องกันสักที เรามาดูวิธีการทำงานของโปรแกรมพวกนี้กัน หลัก ๆ เราทำกันอยู่ 2 วิธีด้วยกันคือ การบังคับไม่ให้ Ads และ Tracker โหลด และ การซ่อน ไม่ให้เห็น

เริ่มจากวิธีการที่ง่ายที่สุดก่อนคือ การซ่อน Ads ไม่ให้เห็น หลักการง่ายมาก ๆ คือ ถ้าเรารู้แล้วว่า HTML Element ก้อนนี้มันเป็น Ads เราแค่ซ่อนมันไปเท่านั้น อาจจะเขียน Inline CSS บอกให้ "display:none" เข้าไปก็จบแล้ว วิธีนี้ถึงจะง่ายในการทำงาน แต่ปัญหามันคือ Script เพราะถึงจะซ่อน Ads แล้ว มันไม่ได้บอกนะว่า Script มันไม่ได้ทำงาน พวก Script ยังคงทำงานตามปกติ แค่ว่า เราจะไม่เห็น Ads ขึ้นมาเท่านั้นเอง

ถามว่า แล้วโปรแกรมพวกนี้ รู้ได้ยังไงว่า HTML Element พวกนี้มันเป็น Ads จริง ๆ ง่าย แต่ถึกหน่อยคือ เราต้องหา Ads เยอะ ๆ ให้มากที่สุดเท่าที่เป็นไปได้ แล้วเรานั่งหา Pattern เลยว่า มันหน้าตาเป็นยังไง แตกต่างจาก Element อื่น ๆ ในหน้าเว็บอย่างไร แล้วเราเอามาเขียนเป็น Rule เลย เช่น HTML Element บางอย่างที่เรียก External Resource ที่ Domain Name ไม่ตรงกับเว็บที่เขาอยู่ เป็นต้น ตัวอย่างของพวก Blacklist ไปดูได้ที่ Link นี้

แน่นอนว่า ประเด็นของหลาย ๆ คนอยู่ที่ Tracker งั้นเราไปที่อีกวิธีคือ การไม่ให้มันโหลดแต่แรก ถ้ามันไม่ได้โหลดเข้ามา มันจะทำงานได้อย่างไรละ อันนี้แหละ ซับซ้อนมากขึ้นแต่ไม่ได้ยากขนาดนั้น

พวก Ads ทั้งหลาย โดยเฉพาะ Ads Network เช่น Google AdSense พวกนี้ส่วนใหญ่ เวลาโหลดมันจะเริ่มจากการที่ผู้พัฒนาติด Script ตัวนึงเข้าไป แล้ว Script ตัวนั้นแหละมันไปเรียก Ads มาแปะในหน้าเว็บ ทำให้เราเห็น Ads แน่นอนว่า พวกคนที่ทำโปรแกรมันเข้าไปอ่านใน Resource เลยว่า หน้าเว็บนี้มีการเรียก Resource อะไรเข้ามาบ้าง ถ้ามันมีมาจาก Domain Name ที่ตรงกับที่ผู้พัฒนา AdBlocker Blacklist เอาไว้ มันจะทำการ Block ไม่ให้โหลดทันที ทำให้ทั้ง Script และ Ad Content นั้นไม่สามารถแสดงผลได้ทั้งคู่เลย นั่นแปลว่า Tracker ก็ Endgame ไปทันที

เราลองให้ดูง่าย ๆ เราเข้าเว็บ Youtube แล้วใช้ Dev Tool Inspect ออกมาดูเลย เมื่อเราติดตั้ง AdBlocker เข้าไป Resource ที่ชื่อว่า "ad_status.js" สถานะของมันถูก Block ทันที

แต่กลับกัน ถ้าเราเปิดโดยการใช้ Incognito Mode ที่หน้า Youtube เหมือนเดิม เราจะเห็นว่า "ad_status.js" มันไม่ได้ถูก Block แล้วนั่นเป็นเพราะ ใน Incognito Mode พวก Extension ต่าง ๆ มันจะถูกปิดการทำงานไป ทำให้เราเห็นว่า เมื่อ AdBlocker เข้ามาทำงานมันจะทำงานในลักษณะแบบนี้แหละ คือ การ Block ไม่ให้โหลดพวก Ads Content และ Script ไปเลย

ดูเหมือนจะเป็นเรื่องดีมาก ๆ เลยใช่ป่ะ ถ้าเราใช้งานเครื่องเดียว มันไม่น่าจะมีปัญหาอะไร แต่ถ้าบ้าน หรือองค์กรของเรามีการใช้งานเครื่องคอมพิวเตอร์จำนวนมาก การติดตั้ง AdBlocker เข้าไปในแต่ละเรื่องอาจจะเป็นเรื่องยากสักหน่อย ทำให้มีอีกโปรแกรมที่ชื่อว่า Pi-Hole เข้ามา

Pi-Hole มันเป็น AdBlocker Version ระดับ Network เลยคือเป็น DNS Sinkhole หรือมันทำหน้าที่เป็นเหมือนคนกลาง ถ้ามันเห็นว่า มีใครเชื่อมต่อไปที่ Ads Server ทั้งหลาย มันจะทำการ Drop Connection หรือก็คือทำให้เชื่อมต่อไม่ได้ไปเลย นั่นแปลว่า Ads ทั้งหลายมันจะไม่สามารถโหลดขึ้นมาใช้งานได้เลย สิ่งที่เราต้องทำคือ เราจำเป็นต้องไปตั้งค่าพวก DNS Server ให้ชี้ไปที่ Pi-Hole Server เท่านั้นก็จบแล้ว

วิธีการป้องกันไม่ให้โหลดเหมือนจะเป็นวิธีที่ดีพอสมควรเลยนะ มีเครื่องมือให้เราใช้งานตั้งแต่ระดับ Web Browser Extension จนไปถึง DNS Sinkhole กันไปเลย

Countermeasure against AdBlocker

แต่ ๆๆๆ แน่นอนว่า การทำแบบนี้ เจ้าของเว็บไหนจะไปยอมอะ เขียน Content จะให้เขียนฟรีเหรอ มันก็ไม่ใช่ป่ะ เลยมี Countermeasure ขึ้นมา เราทำยังไงกันบ้าง

อันที่เราจะได้เจอกันเยอะมาก ๆ คือ การที่เจ้าของเว็บติดตั้ง Adblock Detector มีของหลายเจ้ามาก ๆ ตั้งแต่ฟรี จนไปถึงเสียเงินกันเลยทีเดียว หลักการของพวกนี้จริง ๆ ก็คือ การเช็คย้อนกลับจากสิ่งที่เราเล่ามาแต่แรกเลย คือ การเช็คพวก Ads Container ว่ามันไม่ได้ถูกซ่อน หรือ ทำให้หายไปด้วยวิธีการบางอย่างหรือไม่ ตามวิธีการที่เราพูดถึงกันตอนแรกเลย ซึ่งอาจจะเช็คเมื่อมีบางอย่างหายไป แต่ถ้าทำแบบนั้น ตัว Script มันต้องทำงานตลอดเวลาทำให้ส่งผลกระทบต่อ Performance ได้ทำให้ส่วนใหญ่ เขาจะเช็คเมื่อหน้าเว็บโหลดเสร็จไปสักระยะเวลาหนึ่งแล้ว อาจจะสัก ครึ่งวินาทีอะไรแบบนั้น

เมื่อ Script เจอความผิดปกติแล้วว่า Ads ไม่ได้ถูกแสดงผลอย่างที่ควรจะเป็น มันอาจจะขึ้นหน้ามาบอกเราว่า เรารู้นะว่านายน้ะใช้ AdBlocker ให้ปิดการใช้งานก่อนถึงจะเข้าหน้าเว็บนี้ได้ หรือบางเว็บอาจจะกวนประสาทหน่อยคือ ไม่ยอมแสดงผล Content ทั้งหมด

YouTube confirms ad blocking crackdown is going global (Updated)
Over the past couple of weeks, YouTube’s crackdown on ad blocker seems to be growing to more number of users. Here’s what’s happening.

ตัวอย่างล่าสุดที่เจ็บแสบมากคือ Youtube เริ่มทำการแบนผู้ใช้ที่ใช้งาน AdBlocker แล้ว โดยถ้าเจอมันจะให้เราดูวีดีโอได้ถึงระดับนึง หลังจากนั้นมันจะไม่ให้เราดูต่อละ จนกว่าเราจะปิดไป เรื่องนี้เกิดเมื่อต้นเดือน Nov 2023 ที่ผ่านมานี่เอง และมีการบอกออกมาว่า จะทยอยเปิด Feature ลักษณะนี้ไปทั่วโลกใช้งานจริงเต็ม ๆ ละ ทำให้มีผู้ใช้จำนวนมากทยอยนำส่วนเสริม AdBlocker ออกจาก Google Chrome กันไปจำนวนมากเลยทีเดียว

สรุป

เรื่องราวเทคนิคของ AdBlocker มันเหมือนแมวจับหนูไปเรื่อย ๆ คนที่เขาต้องการจะ Block Ads ต่าง ๆ พยายามหาเทคนิคใหม่ ๆ กลับกันฝั่งผู้ให้บริการเว็บก็ต่างหาวิธีการเพื่อมาแก้เกมกันไปมาเรื่อย ๆ ต้องยอมรับว่า เรื่องของ Ads มันไม่ได้มีแค่เรื่อง การมองเห็น Ads เท่านั้น แต่มันมาด้วยเรื่อง Privacy ทำให้โลกของเรามีความเห็นแบ่งกันไป ทั้งฝั่งที่มี Ads ก็ดีแล้วไม่งั้นคนให้บริการเว็บจะเอาเงินที่ไหนมาทำ แต่อีกฝั่งมองว่ามันเป็นเรื่องของ Privacy ไง เก็บข้อมูลเราไปขนาดนี้มันไม่โอเคแล้วนะ ส่วนตัวเราจริง ๆ มันแล้วแต่ Business Model ของแต่ละเจ้าแล้วละ เว็บเราเองก็เลือกที่จะติด Ads เพื่อหาเงินมาจ่ายค่า Server สำหรับให้ทุกคนได้อ่านบทความกันต่อไป ดังนั้น อย่า AdBlock ใส่เว็บเราเลยนะครับ TT

Read Next...

การสร้าง SSD Storage Pool บน Synology DSM

การสร้าง SSD Storage Pool บน Synology DSM

สำหรับคนที่ใช้ Synology NAS บางรุ่นจะมีช่อง M.2 สำหรับเสียบ NVMe SSD โดยพื้นฐาน Synology บอกว่ามันสำหรับการทำ Cache แต่ถ้าเราต้องการเอามันมาทำเป็น Storage ละ มันจะทำได้มั้ย วันนี้เราจะมาเล่าวิธีการทำกัน...

รีวิว Foreo Luna 3 Plus เครื่องล้างหน้าสามัญประจำบ้าน จำเป็นต้องซื้อมั้ย

รีวิว Foreo Luna 3 Plus เครื่องล้างหน้าสามัญประจำบ้าน จำเป็นต้องซื้อมั้ย

หลังจากรีวิวอุปกรณ์หลาย ๆ ตัวของ Foreo ไปแล้ว แต่ทำไมเราลืมของเด็ดอันเลื่องชื่อของ Foreo ไปซะได้ เห็นได้จากชื่อหัวเรื่องกันแล้วเนอะ วันนี้เราจะมา รีวิวเครื่องล้างหน้าจาก Foreo กัน เป็นรุ่น Luna 3 Plus จะเป็นยังไงไปอ่านได้ในรีวิวนี้เลย...

Multiprogramming, Multiprocessing และ Multithreading

Multiprogramming, Multiprocessing และ Multithreading

หลังจากที่เรามาเล่าเรื่อง malloc() มีคนอยากให้มาเล่าเรื่อง pthread เพื่อให้สามารถยัด Content ที่ละเอียด และเข้าใจง่ายในเวลาที่ไม่นานเกินไป เลยจะมาเล่าพื้นฐานที่สำคัญของคำ 3 คำคือ Multiprogramming, Multitasking, Multiprocessing และ Multithreading...

Microinverter ต่างจาก String Inverter อย่างไร เลือกแบบไหนดีกว่ากัน

Microinverter ต่างจาก String Inverter อย่างไร เลือกแบบไหนดีกว่ากัน

หลังจากเราเขียนเรื่อง Solar Cell ไปมีคนถามเข้ามาอยู่ว่า ถ้าจะเลือกติดตั้ง Solar ระหว่างการใช้ระบบ String Inverter กับ Microinverter เราจะเลือกตัวไหนดี วันนี้เราจะมาเล่าเปรียบเทียบให้อ่านกันว่าแบบไหน น่าจะเหมาะกับใคร...