Câu hỏi thường gặp (FAQ)
Giải đáp ngắn gọn, trung thực cho 11 câu hỏi thường gặp nhất về Nvirya AdGuard v11.7.0. Để xem giải thích kỹ thuật chi tiết, hãy nhấp vào liên kết tới các bài hướng dẫn tương ứng.
1. Nvirya AdGuard có chặn được mọi quảng cáo không?#
Không. Nvirya AdGuard lọc các tên miền quảng cáo bên thứ ba đã biết, các mẫu biểu ngữ/hộp thoại phổ biến và các vị trí tài trợ trên những trang được hỗ trợ (bao gồm YouTube, Google Search, Bing Search, Reddit, X/Twitter, Quora và Facebook di động). Tuy nhiên, các trang web liên tục thay đổi cấu trúc mã nguồn và tên miền, đồng thời một số quảng cáo tự phục vụ (first-party) có cấu trúc HTML giống hệt nội dung thông thường. Xem thêm tại Tổng quan và Khắc phục sự cố.
2. Vì sao một số quảng cáo video vẫn xuất hiện thoáng qua?#
Trên các nền tảng như YouTube, quảng cáo video gắn chặt với trình phát media chính. Khi quảng cáo vượt qua bước cắt tỉa dữ liệu JSON ban đầu và nạp vào phần tử <video>, cơ chế dự phòng Bảo vệ video (handleAdVideo) phải đợi trình phát gắn trạng thái quảng cáo (.ad-showing hoặc .ad-interrupting) và báo cáo thời lượng hợp lệ (> 0.5 s) trước khi tắt tiếng, tăng tốc lên 16x và tua tới cuối (duration - 0.05 s). Việc chặn thô bạo các URL luồng video sẽ gây ra lỗi phát hoặc xoay vòng tải vô tận. Xem chi tiết tại Độ trễ xử lý quảng cáo YouTube trên di động.
3. Script này có thay thế hoàn toàn tiện ích mở rộng trình duyệt không?#
Không hoàn toàn. Một tiện ích mở rộng có đặc quyền (như uBlock Origin trên máy tính hoặc Firefox Android) có thể dùng API cấp trình duyệt (declarativeNetRequest hoặc webRequest) để hủy yêu cầu mạng trước khi chúng đi vào trang web. Nvirya AdGuard là một userscript chạy bên trong ngữ cảnh trang; nó đặc biệt hữu ích trên các trình duyệt di động (như iOS Safari với Stay hoặc các trình duyệt Android gọn nhẹ) nơi không hỗ trợ tiện ích mở rộng đầy đủ, hoặc dùng làm công cụ trực quan để ẩn phần tử và chặn bẫy chuyển hướng. Xem thêm tại Cơ chế hoạt động.
4. Vì sao hiệu quả hoạt động có sự khác biệt giữa Android và iOS?#
Các trình duyệt trên iOS và iPadOS bắt buộc sử dụng nhân WebKit của Apple với cơ chế cô lập sandbox nghiêm ngặt giữa userscript và ngữ cảnh JavaScript chính của trang. Khi WebKit ngăn cản việc tiêm script vào ngữ cảnh chính (window.__NVIRYA_MAIN_SHIELD__), Nvirya AdGuard sẽ hiển thị trạng thái không hỗ trợ tại mục Vượt chặn anti-adblock trong Giới thiệu → Khả năng hỗ trợ và khóa công tắc này trong Cài đặt. Trên Android và máy tính nơi cho phép tiêm vào ngữ cảnh chính, các hook mạng và biến toàn cục hoạt động đầy đủ. Xem Giới hạn của iOS Safari và WebKit.
5. Script có vượt qua được mọi hệ thống anti-adblock không?#
Không. Mặc dù Nvirya AdGuard giả lập các biến toàn cục phổ biến (googletag, adsbygoogle, OBR, Criteo, _taboola, apstag, COMSCORE, BlockAdBlock, FuckAdBlock), giả lập kích thước phần tử mồi (250×300) và ẩn các hộp thoại anti-adblock phát hiện được (AntiAdblockEngine), script không thể vượt qua các bước kiểm tra phía máy chủ, chính sách CSP nghiêm ngặt hoặc giới hạn sandbox của iOS WebKit.
6. Vì sao một trang web lại bị lỗi hiển thị sau khi cập nhật?#
Cả trang web lẫn quy tắc lọc đều thay đổi theo thời gian. Một trang web có thể đổi tên class khiến khung nội dung hợp lệ trùng với mẫu nhận diện quảng cáo, hoặc bản cập nhật mới tăng cường độ nhạy khi quét lớp phủ. Bạn có thể kiểm tra nhanh bằng nút Xem trang gốc (3 giây), hoặc khôi phục trang ngay lập tức bằng Tạm dừng phiên này hay Cho phép trang này trong Tổng quan → Thao tác nhanh, sau đó gửi báo lỗi. Xem Khắc phục sự cố.
7. Script có kiểm tra mọi yêu cầu mạng và mọi phần tử DOM không?#
Không. Userscript chỉ có thể kiểm tra các yêu cầu đi qua những API JavaScript mà nó bọc (fetch, XMLHttpRequest, sendBeacon và gán .src động trên <script> / <img>)—không phải mọi gói tin mạng của trình duyệt. Tương tự, để tiết kiệm CPU và pin, bộ quan sát DOM gom biến đổi vào hàng đợi có giới hạn (MAX_QUEUE = 800), bỏ qua các thẻ văn bản nội tuyến (<p>, <span>, <h1>–<h6>, <li>, <td>, v.v.) và vùng bài viết khi kiểm tra bẫy nhấp chuột, đồng thời cô lập hoàn toàn logic YouTube chỉ chạy trên tên miền YouTube. Xem Cơ chế hoạt động.
8. Vì sao việc bật VPN hoặc bộ lọc DNS lại làm thay đổi kết quả?#
Các bộ lọc VPN và DNS (như Shadowrocket, Surge, Loon hoặc AdGuard DNS) chặn kết nối ngay ở tầng mạng trước khi yêu cầu chạm tới bộ máy JavaScript của trình duyệt. Khi bộ lọc mạng chặn một script hoặc ảnh quảng cáo ở tầng DNS, trình duyệt sẽ phát lỗi mạng nguyên bản trước khi hook JavaScript của Nvirya AdGuard kịp trả về phản hồi 200 OK giả lập hoặc sự kiện onload giả, điều này có thể kích hoạt một số bộ phát hiện anti-adblock. Xem VPN, Bộ lọc DNS, Shadowrocket, Surge và Loon.
9. Làm thế nào để báo cáo lỗi?#
Mở bảng điều khiển (Alt+A), chuyển sang tab Giới thiệu, cuộn tới mục Cộng đồng & hỗ trợ và chạm vào nút Góp ý. Chọn một phân loại (Quảng cáo bị sót, Lỗi bố cục trang, Lỗi phát video, Đề xuất tính năng, hoặc Khác), viết mô tả ngắn gọn và nhấn Gửi. Nếu cần trao đổi hai chiều, hãy dùng liên kết Telegram hoặc Discord ngay bên cạnh. Xem Gửi phản hồi & Báo lỗi.
10. Làm sao để tạm tắt bảo vệ cho một trang web cụ thể?#
Mở bảng điều khiển (Alt+A) và nhìn vào mục Tổng quan → Thao tác nhanh:
- Chạm vào Tạm dừng phiên này để tắt lọc trên tên miền hiện tại cho đến khi đóng tab.
- Chạm vào Cho phép trang này để thêm tên miền hiện tại vào danh sách cho phép cố định (
nvirya_x_whitelist).
Xem chi tiết tại Hướng dẫn tính năng.
11. Không có báo cáo lỗi nào có đồng nghĩa với việc script hoạt động hoàn hảo không?#
Không. Việc không có báo cáo nào được gửi chỉ có nghĩa là chưa có người dùng nào gửi phản hồi—không chứng minh rằng mọi quảng cáo đều đã bị chặn hay không có trường hợp chặn nhầm nào. Tương tự, bộ đếm hiển thị 0 trong mục Thống kê bảo vệ trên một trang web sạch (như Wikipedia hay GitHub) chỉ đơn giản có nghĩa là trang đó không chứa quảng cáo hay trình theo dõi nào khớp với quy tắc lọc.