6 điểm bởi GN⁺ 2025-09-10 | 3 bình luận | Chia sẻ qua WhatsApp
  • Blog này khuyến nghị khách truy cập cài đặt trình chặn quảng cáo đáng tin cậy như uBlock Origin khi không phát hiện thấy tính năng chặn quảng cáo
  • Thông báo khuyến nghị này được thiết kế không làm gián đoạn trải nghiệm người dùng, và sau khi đóng một lần thì sẽ không xuất hiện lại
  • Cách triển khai sử dụng script nativeads.js và một thẻ <div> gắn đầy các tên lớp liên quan đến quảng cáo, được thiết kế để thông báo không hiển thị nếu trình chặn quảng cáo chặn phần tử hoặc chặn yêu cầu mạng
  • Sau khi đóng một lần, thông báo sẽ được ghi nhớ bằng cookie, hiển thị nhỏ ở một góc màn hình bằng CSS, không che nội dung, và không hiển thị trên trình duyệt đã tắt JavaScript
  • Không có cách nào để phát hiện chặn bằng DNS, nên tác giả cho biết đã triển khai nó dưới dạng cửa sổ hướng dẫn không xâm lấn và có thể đóng dễ dàng

Sự cần thiết của thông báo khuyến nghị chặn quảng cáo

  • Quảng cáo trên internet làm lãng phí thời gian của người dùng, và ngành quảng cáo gây tác động tiêu cực lên toàn bộ môi trường internet
  • Do doanh thu từ website trở nên rất thấp, nhiều trang web đã biến thành những trang chất lượng thấp bị nhồi đầy quảng cáo
  • Nếu muốn hỗ trợ người sáng tạo, thì ủng hộ trực tiếp (dù chỉ 1 đô la cũng hiệu quả) hiệu quả hơn nhiều so với việc xem quảng cáo

Mục tiêu thiết kế của thông báo khuyến nghị chặn quảng cáo

  • Vì đa số người dùng coi quảng cáo là một phần của trải nghiệm internet, tác giả hiển thị trực tiếp một thông báo trên trang web
  • Thông báo "No adblocker detected. Consider using an extension like uBlock Origin to save time and bandwidth. Click here to close." được hiển thị nhỏ ở góc dưới bên phải của trang
    • Không che nội dung, và sau khi đóng thông báo thì sẽ không hiển thị nữa
    • Nếu cửa sổ nhỏ, thông báo sẽ không hiển thị
  • Lý do chỉ nhắc đến một tiện ích mở rộng cụ thể (uBlock Origin) là vì người dùng thường biết đến trình chặn quảng cáo qua quảng cáo, và do rủi ro cũng như tính lừa đảo của các trình chặn quảng cáo thương mại
    • Các trình chặn quảng cáo được quảng bá bằng quảng cáo cuối cùng cũng kiếm lợi nhuận từ chính người dùng

Cách triển khai và các điểm kỹ thuật

  • Trong HTML có một vùng div dành cho thông báo khuyến nghị chặn quảng cáo, kèm nhiều tên lớp liên quan đến quảng cáo
  • Việc thêm thông báo do tệp JavaScript /nativeads.js đảm nhiệm
    • Bảo đảm thông báo chỉ hiển thị một lần nhờ cookie
    • Khi nhấp vào "Click here to close.", div sẽ bị ẩn và cookie được cập nhật
  • CSS được dùng để xác định vị trí hiển thị và tạo kiểu cho thông báo
    • Chỉ cố định hiển thị ở góc dưới bên phải khi có đủ không gian màn hình
  • Nếu trình chặn quảng cáo chặn (xóa hoặc chặn yêu cầu) phần tử div đó hoặc tệp nativeads.js, thì chính thông báo sẽ không được hiển thị
    • Dùng nhiều tên lớp liên quan đến quảng cáo để khiến đa số trình chặn quảng cáo loại bỏ div
  • Đặc biệt, ngay cả các tiện ích mở rộng chủ yếu chặn ở tầng mạng (như adblock lite) cũng sẽ làm thông báo biến mất nếu chặn yêu cầu mạng của script
  • Có giới hạn là không thể phát hiện được chặn quảng cáo dựa trên DNS
  • Trên các trình duyệt không hỗ trợ JavaScript thì không cần trình chặn quảng cáo, nên cũng không hiển thị thông báo
  • Ngay cả khi không áp dụng CSS, thông báo vẫn hoạt động về mặt chức năng (hiển thị không có kiểu dáng)

3 bình luận

 
mango 2025-09-10

Tôi khuyên dùng trình duyệt Brave

 
GN⁺ 2025-09-10
Ý kiến trên Hacker News
  • Tôi đã sống gần như hoàn toàn tách biệt khỏi quảng cáo trực tuyến suốt gần 10 năm nhờ trình chặn quảng cáo. Mỗi khi phải dùng web trên một thiết bị không thể chặn quảng cáo hoặc thậm chí không cài được trình chặn, cảm giác nhìn các trang đầy quảng cáo và tối ưu cho SEO giống như bước vào một ổ nghiện ma túy. Thật đáng buồn khi đó lại là cuộc sống thường ngày của đa số mọi người
    • Mỗi lần mở Google Play Store trên Android tôi đều có cảm giác như bước vào một trung tâm mua sắm phản địa đàng. Tôi gần như dùng F-Droid cho mọi ứng dụng mình cần và chỉ dùng Play Store cho các app chính thức. Vì thế Play Store có thiết kế rất thiếu thân thiện với người dùng và đầy nhiễu thị giác. Tôi càng cảm nhận rõ rằng phần lớn mọi người thực sự đang bị quảng cáo bủa vây. Tôi cũng lo một ngày nào đó ngay cả uBlock Origin cũng bị chặn, rồi chẳng còn chút bảo vệ nào nữa
    • Tôi cũng ở vị trí tương tự. Không chỉ trên web, tôi còn không có TV, không nghe radio có quảng cáo, nên hầu như chẳng thấy quảng cáo. Vì vậy tôi hoàn toàn không hiểu nổi làm sao người ta chịu đựng được chúng
    • Ở nhà tôi dùng cả chặn quảng cáo DNS ở cấp router lẫn tiện ích chặn quảng cáo trong trình duyệt. Mỗi lần lướt web bằng 5G hay Wi‑Fi công cộng đều là một trải nghiệm khó chịu, và tôi lập tức bật VPN chặn quảng cáo lên
    • Ngay cả các nền tảng quảng cáo lớn cũng kiểm soát chất lượng rất tệ. Trên YouTube trước đây tôi từng gặp quảng cáo deepfake thủ tướng Canada để lừa đảo tiền mã hóa. Nhấp vào thì dẫn tới một trang phishing giả mạo cơ quan thuế Canada
    • Tôi dùng Brave trên mọi thiết bị. Khi cho ai đó xem YouTube trên thiết bị khác mà quảng cáo hiện tới ba lần, hoặc khi tải một trang tin địa phương mà ngập trong quảng cáo, tôi chỉ nghĩ: “À, hóa ra họ đang dội quảng cáo thật lực vì những kẻ đi xe chùa như chúng ta!”
  • “Không phát hiện trình chặn quảng cáo. Hãy dùng các tiện ích như uBlock Origin để tiết kiệm thời gian và lưu lượng.”<br> Đồng thời cũng có thể bảo vệ sự chú ý và quyền riêng tư của bạn. Kiểu thông báo này là một ý tưởng hay. Cá nhân tôi muốn bỏ chữ “like” trong thông báo. uBlock Origin rất tuyệt, nhưng một số trình chặn khác là malware hoặc có vấn đề. Tiện thể, ublockorigin.com được liên kết trong thông báo không thuộc sở hữu của Raymond Hill, nhà phát triển thực sự của uBlock Origin. Bề ngoài thì có vẻ thiện chí và UI cũng ổn, nhưng nó dường như không nằm dưới sự kiểm soát của Hill và có thể trở thành một điểm rủi ro tiềm tàng kiểu malware. Kênh chính thức của Hill là https://github.com/gorhill/uBlock. Các liên kết đáng tham khảo là README.mdWiki
    • Sau vụ chiếm dụng tên miền PuTTY gần đây, tôi càng nghi ngờ các trang kiểu này hơn. Thực tế là chủ sở hữu ublockorigin.com đang quảng bá những sản phẩm hoàn toàn không liên quan trong mục “my other tools”
    • Phần lớn người dùng Internet phổ thông nhận được link GitHub thì hoàn toàn không biết phải làm gì. Thật tiếc là trang chính thức không cung cấp hướng dẫn cài đặt dễ hiểu hơn. Tuy vậy, tôi đồng ý rằng phải cẩn thận khi liên kết tới một trang không do chính nhà phát triển quản lý
    • Có vẻ bình luận này chưa được đánh giá đúng mức. Ngay cả README cũng hơi bất tiện vì có quá nhiều phần đầu trang kiểu GitHub. UBO thực sự cần một landing page chính thức
  • Cả FBI cũng nói rằng trình chặn quảng cáo giúp ngăn người dùng bị dẫn tới các trang độc hại<br> Xem bài viết TechCrunchbản lưu trữ chính thức
    • Từ lâu tôi đã nghĩ trình chặn quảng cáo chính là phần mềm diệt virus tốt nhất thời nay
  • Tôi không phải kiểu cực kỳ yêu thích quảng cáo, cũng không quá tôn trọng các mạng quảng cáo, nhưng tôi cũng thấy hơi khó chịu với văn hóa vừa chặn quảng cáo và theo dõi, vừa dùng dữ liệu của website miễn phí. Tôi nghĩ ở đây có một khế ước xã hội ngầm. Các trang web cung cấp và sắp xếp một lượng nội dung khổng lồ miễn phí vì họ có thể kiếm tiền từ quảng cáo. Nếu quá nhiều người từ chối và chặn quảng cáo, cuối cùng các dịch vụ như vậy sẽ ngừng phân phối nội dung, và theo nghĩa đó việc chặn quảng cáo là một dạng đi xe chùa trên hệ thống này (nếu mục tiêu là phá hủy dịch vụ thì ít nhất cũng nhất quán, đáng khen). Nếu bạn không lịch sự và không muốn giữ khế ước đó thì cũng đành vậy, nhưng nếu vốn đã không thích chiến lược này thì bạn không nên dùng dịch vụ đó ngay từ đầu, mà nên tự tìm phương án thay thế hoặc nghĩ tới nền tảng mới
    • Trước đây tôi từng thấy mô hình này ổn, nhưng đã có quá nhiều trường hợp phía quảng cáo là bên phá vỡ hợp đồng trước. Ví dụ:
      • Video tự động phát tự ý ngốn lưu lượng của tôi
      • Âm thanh bất ngờ bật lên chiếm loa và gây phiền nhiễu
      • Popup cản trở việc điều khiển cửa sổ hoặc tab
      • Sự giám sát theo dõi và tổng hợp toàn bộ thói quen duyệt web của tôi
      • Nói chung là nguồn phát tán malware/phishing mà không có ai thực sự chịu trách nhiệm
      • Trải nghiệm một nội dung nhưng bị nhét lượng quảng cáo gấp ba làm hỏng toàn bộ trang Người ta thường tô vẽ việc xem quảng cáo như một thứ đơn giản, vô hại hay thuần khiết, nhưng tôi không nghĩ thực tế là như vậy
    • Tôi không còn đồng ý với lập luận đó nữa. Quảng cáo từng tệ đến mức có ngày tôi gặp những banner động khổng lồ chiếm 20% mỗi bên màn hình, lại còn có âm thanh rất lớn. Vừa tải trang xong thì 3–4 popup bật ra cùng lúc, hú còi cảnh báo virus hoặc quảng cáo nội dung kỳ quặc với âm lượng cực to. Việc này xảy ra dù tôi đã bật chặn popup. Hôm đó tôi lần đầu biết tới cái gọi là “quảng cáo tự bấm”, và cài trình chặn quảng cáo ngay lập tức. Rốt cuộc chính họ mới là bên phá vỡ khế ước xã hội. Tôi không còn tin quảng cáo và cả hệ thống đó nữa. Tôi vẫn còn nhớ thời dialup có những trang lừa đảo làm hóa đơn điện thoại tăng vọt
    • Cần nhìn rộng hơn một chút. Gần đây tòa án đã phán quyết rằng Google có hai hành vi độc quyền bất hợp pháp trong thị trường quảng cáo trực tuyến bài liên quan, nhưng vẫn chưa có biện pháp khắc phục hiệu quả. DoJ cũng đã kiện Meta trong một vụ tương tự, và vụ việc vẫn đang diễn ra wiki liên quan. Với tôi, khi bên kia phá vỡ hợp đồng thì hợp đồng đó vô hiệu. Khế ước xã hội cũng vậy. Nếu các công ty đã phạm những hành vi phi pháp lớn, thì không có lý do gì chúng ta còn bị ràng buộc bởi khế ước đó. Việc hoàn toàn từ chối quảng cáo trực tuyến cho đến khi các hành vi lạm dụng bất hợp pháp được giải quyết là chính đáng. Nếu các tập đoàn khổng lồ như Google hay Meta đã vi phạm pháp luật, thì ad tech đáng lẽ phải bị cấm ngay. Các website (nhà xuất bản) thực tế cũng đang chịu thiệt trong tình huống này, nên có lẽ họ cũng mong một giải pháp thực sự
    • Tôi hoàn toàn không đồng ý với nhận định rằng “chặn quảng cáo là một văn hóa vô đạo đức, vừa chặn quảng cáo/theo dõi vừa đi xe chùa trên dữ liệu”. Ngày nay có rất nhiều website miễn phí dùng Wordpress, Blogger, Wix, Weebly..., và chúng vận hành mà không cần script quảng cáo nặng nề ngoài banner riêng của nền tảng. Bạn cũng có thể dùng Neocities hoặc Digital Ocean để chạy một website với tên miền và giao diện tùy ý chỉ với 5 USD/tháng. Các media như Buzzfeed, The Verge, Gizmodo phần lớn chỉ nhúng nội dung bên thứ ba như YouTube, Vimeo... chứ còn không tự host, nhưng lại có xu hướng phủ đầy quảng cáo và bài review liên kết tiếp thị lên những tin tức được biên tập lại khá đơn giản. Chính kiểu web “dropship” này đã phá hỏng văn hóa website miễn phí trước đây
    • Mô hình blogger nhỏ hoặc nhà sáng tạo độc lập chia sẻ suy nghĩ của mình và dùng quảng cáo để trang trải dù chỉ một phần chi phí máy chủ thì không sao. Nhưng với các tập đoàn khổng lồ kiếm lợi bằng cách thu thập và bán dữ liệu cá nhân, thì không hề tồn tại khế ước xã hội như thế. Họ chỉ đơn giản là bán dữ liệu của tôi. Nếu bạn biết họ đang làm gì và biết cách ngăn chặn mà vẫn thụ động cho phép quảng cáo và theo dõi, thì tức là bạn đang tiếp tay tạo ra một thế giới tồi tệ hơn. Không có lý do gì phải tôn trọng các tập đoàn khổng lồ như tôn trọng một cá nhân
  • Các công ty big tech dần khiến chúng ta cảm thấy việc bị xâm phạm là điều bình thường. Họ giả vờ cho chúng ta rất nhiều dịch vụ miễn phí, nhưng lại lấy đi của chúng ta rất nhiều thứ mà không cần đồng ý. Họ thao túng chúng ta, dựng rào cản với thông tin, và còn làm xấu đi điều kiện sống của con người. Không cần cảm thấy tội lỗi khi hành động chống lại các công ty như vậy. Nhân tiện, hôm qua Chromium hiện thông báo rằng uBlock Origin không còn được hỗ trợ nữa. Vì thế ngoài MS365 ra tôi vốn đã không dùng Chromium, và giờ lại càng thấy đó là lựa chọn đúng. Trên Firefox nó vẫn hoạt động tốt
  • Về vấn đề “chặn quảng cáo dựa trên DNS thì không có cách phát hiện nếu không thực sự tải quảng cáo”, theo tôi có thể đăng ký một tên miền đủ khả năng bị đưa vào danh sách chặn rồi kiểm thử bằng tài nguyên từ đó để xác nhận cả hai kiểu chặn (dựa trên tiện ích mở rộng / dựa trên tên miền). Tất nhiên nếu chính tên miền đó bị down hoặc có sự cố mạng thì sẽ có false positive, nhưng đòi mọi bài kiểm tra đều hoàn hảo là điều không thực tế. Nếu ai biết cách để tên miền của tôi dễ được thêm vào danh sách chặn thì rất mong cùng hỗ trợ. Tôi sẵn sàng bỏ vài bảng một năm, và tải request cũng không thành vấn đề. Ngoài ra, thay vì chỉ đổi qua lại giữa “display:none” và “display:block”, tôi định chừa sẵn một khoảng trống cùng kích thước để hiển thị đúng thông điệp, hoặc ban đầu để trống nhằm tránh hiển thị sai khi có lỗi
    • Tôi nghĩ việc tạo một tên miền mới hoàn toàn đáng thử. Chỉ cần dựng tên miền và viết một bài blog ngắn thôi là tôi tin cộng đồng HN sẽ giúp đưa nó vào blocklist. Và nếu đã làm thì nên thêm luôn nút donate
  • Ngay cả CERN cũng khuyến nghị dùng trình chặn quảng cáo để mọi người có trải nghiệm Internet an toàn hơn<br> Xem bài liên quan<br> Khi web mới ra đời, chắc hẳn không ai nghĩ mọi thứ sẽ bị quảng cáo tràn ngập đến mức này
    • Giờ có lẽ người ta sẽ khuyến nghị Firefox hoặc những trình duyệt ít bị hạn chế hơn cho tất cả mọi người. Gần đây tôi giúp vợ xử lý máy tính và thấy quảng cáo ngập tràn; trước đó tôi đã cài uBlock cho cô ấy. Khi mở trang quản lý tiện ích của Chrome, tôi thấy Google tự động vô hiệu hóa uBlock và gắn nhãn là tiện ích không còn được hỗ trợ. Mỗi lần khởi động lại trình duyệt lại phải bật uBlock lên. Có vẻ Chrome hiện đang cố tình đẩy các trình chặn quảng cáo ra ngoài
  • Có lẽ để hợp với bầu không khí Internet ngày nay, loại thông báo này cũng phải được làm thành popup gây khó chịu với người dùng. Nút X thì nên làm nhỏ tí, màu gần giống màu nền, và đặt ở vị trí khó bấm nhất trên màn hình. Trên thiết bị cảm ứng thì vùng chạm cũng nên nhỏ và lệch. Trên iPad thì popup nên che kín toàn bộ và thậm chí không có cách đóng lại
  • Tôi ước trình duyệt cho phép dễ dàng tắt thực thi JavaScript sau khi trang onload, hoặc chỉ bật JS khi người dùng nhấp chuột
    • Nếu dùng Brave thì có thể tắt JS theo mặc định và chỉ bật thủ công cho từng trang cần thiết
    • Tôi cũng đồng ý 100% với ý này. Ngày xưa tôi từng tưởng nút Stop của IE làm được đúng việc đó
    • Tính năng nút “tắt JavaScript bằng một cú nhấp” của uBO rất hữu ích
    • Opera cũ (trước khi chuyển sang nền Chromium) từng cho bật/tắt JS rất tiện trong menu, dù tôi không còn nhớ nó áp dụng theo phạm vi nào
    • Ngày xưa nhiều script quảng cáo dùng document.write() nên chạy ngay lập tức và làm chậm đi khá nhiều. Tôi không rõ bây giờ còn như thế không
  • Tôi không đồng ý với quan điểm “nếu muốn ủng hộ tác giả mình thích thì hãy gửi tiền trực tiếp thay vì xem quảng cáo; 1 USD hữu ích hơn nhiều so với doanh thu quảng cáo”. Trước đây tôi từng đặt một banner nhỏ ở phần đầu trang trên website cá nhân, và doanh thu quảng cáo giúp tôi trang trải được phần đáng kể tiền thuê nhà mỗi tháng. Số người từng gửi tiền trực tiếp cho tôi còn không tới 0,01%. Tôi ghét xem quảng cáo, nhưng quảng cáo đúng là vẫn giúp nhà sáng tạo kiếm tiền
    • Dù vậy, nghĩ kỹ thì cũng nên tự hỏi liệu một người xem quảng cáo thật sự có mang lại cho bạn nhiều hơn 1 USD hay không
 
tribela 2025-09-10

Blog của tôi trước đây cũng hiển thị một thông báo khuyên cài trình chặn quảng cáo nếu phát hiện không có ad blocker, nên thật vui khi biết không chỉ mình tôi làm vậy.