SENSEL — AI sáng tạo & trải nghiệm nội dung số
HƯỚNG DẪN SENSEL

Static ruleset và dynamic rules trong Chrome extension khác nhau như thế nào?

Trong declarativeNetRequest, “static” và “dynamic” không chỉ khác ở việc một bên cố định, một bên thay đổi. Chúng khác nơi được khai báo, vòng đời qua phiên trình duyệt/nâng cấp extension, quota và cách nhà phát triển cập nhật rule cho người dùng.

Trả lời nhanhStatic rules được đóng gói trong extension và cập nhật khi extension cài/nâng cấp; dynamic rules được extension thêm/xóa lúc chạy và tồn tại qua browser sessions lẫn extension upgrades. Session rules là loại thứ ba, chỉ sống trong phiên. Adblock có thể phối hợp cả ba thay vì chọn một loại duy nhất.
Minh họa so sánh static ruleset và dynamic rules trong Chrome extension Manifest V3
Minh họa so sánh static ruleset và dynamic rules trong Chrome extension Manifest V3.

1. Static ruleset: rule đi cùng package extension

Chrome định nghĩa static rules là rule được đóng gói, cài và cập nhật khi extension được cài mới hoặc nâng cấp. Chúng nằm trong file JSON và được liệt kê bằng rule_resources trong manifest.

Nhà phát triển có thể chia rule thành nhiều ruleset và đánh dấu enabled/disabled. Chrome đặt giới hạn số static rulesets có thể khai báo và số rulesets có thể bật đồng thời.

Static phù hợp cho nền tảng filter lớn, ổn định và có thể được kiểm tra cùng package extension. Khi publisher phát hành bản extension mới, bộ static rule đóng gói có thể thay đổi.

2. Dynamic rules: được thay đổi bằng JavaScript và tồn tại qua update

Dynamic rules không cần được đóng gói hết trong manifest. Extension dùng updateDynamicRules() để thêm hoặc xóa rule trong lúc chạy.

Điểm dễ nhầm: dynamic rules persist across browser sessions and extension upgrades theo tài liệu Chrome. Vì vậy chúng không tự mất mỗi khi bạn đóng Chrome hoặc extension được nâng cấp.

Dynamic phù hợp cho cấu hình do người dùng tạo, allow/block tùy chỉnh hoặc rule mà extension cần cập nhật mà không biến mọi thứ thành static package.

3. Session rules là loại thứ ba để hiểu đúng bức tranh

Session rules cũng được quản lý bằng JavaScript nhưng có vòng đời ngắn hơn. Chrome xóa chúng khi browser tắt và khi phiên bản extension mới được cài.

Đây là lựa chọn phù hợp cho trạng thái tạm thời: ví dụ một ngoại lệ chỉ cần trong phiên hiện tại. Nếu bạn thấy một rule “mất sau khi restart”, hãy kiểm tra nó là session hay dynamic trước khi gọi đó là bug.

Ba loại rule tạo ra ba lớp: package ổn định, state bền, state tạm thời.

4. Static và dynamic có quota khác nhau

Chrome tài liệu hóa giới hạn riêng cho static rulesets, dynamic rules, session rules và regex rules. Một số giới hạn đã thay đổi theo phiên bản Chrome, nên không nên ghi nhớ một con số cũ rồi áp dụng mãi.

Chrome hiện phân biệt safe dynamic rules với unsafe dynamic rules và có quota khác nhau. Nhà phát triển adblock phải thiết kế cách phân bổ filter dựa trên loại rule và API version.

Với người dùng, việc một blocker quảng cáo “có N rule” không tự nói lên chất lượng. Rule relevance, precedence, filter quality và cập nhật còn quan trọng hơn.

5. Adblock MV3 thường dùng static và dynamic như thế nào?

Một kiến trúc phổ biến là dùng static rulesets cho danh sách lọc chính và dynamic rules cho tùy chỉnh người dùng/ngoại lệ. Tuy nhiên mỗi sản phẩm có thiết kế riêng; không nên suy ra tất cả blocker đều tổ chức giống nhau.

Khi bạn bật/tắt một filter list, ứng dụng có thể enable/disable static ruleset hoặc chuyển logic vào dynamic rules tùy thiết kế. Vì vậy UI “cập nhật filter” không ánh xạ một-một với một loại rule.

Kết luận: static = đóng gói với extension; dynamic = thay đổi runtime và bền qua session/update; session = runtime tạm thời. Đây là khác biệt vòng đời quan trọng nhất.

Cài SENSEL Adblock và kiểm tra trên chính máy của bạn

SENSEL là tiện ích chặn quảng cáo cho Google Chrome Desktop, tập trung giảm quảng cáo gây gián đoạn khi xem YouTube. Cài miễn phí từ Chrome Web Store chính thức, sau đó kết nối tài khoản để dùng thử 7 ngày nếu đủ điều kiện. Không cần thanh toán trước và không tự động gia hạn.

Xem tính năng, phạm vi hỗ trợ và gói sử dụng

Nguồn chính thức và tài liệu tham khảo

Bài được đối chiếu với tài liệu chính thức tại thời điểm cập nhật 07/09/2026. Chrome, YouTube, Windows, macOS và chính sách quảng cáo có thể thay đổi; khi áp dụng hãy ưu tiên tài liệu hiện hành.

  1. Chrome for Developers — declarativeNetRequest API
  2. Chrome for Developers — Content filtering
  3. Chrome for Developers — What is Manifest V3?

Câu hỏi thường gặp

Dynamic rules có mất khi đóng Chrome không?

Không. Theo Chrome, dynamic rules tồn tại qua browser sessions. Session rules mới là loại bị xóa khi browser shutdown.

Static rules có thể bật/tắt được không?

Có. Static rulesets có thể được khai báo enabled/disabled và extension có thể quản lý việc bật/tắt ruleset trong giới hạn API.

Loại rule nào chặn quảng cáo tốt hơn?

Không có câu trả lời chung. Static, dynamic và session phục vụ vòng đời/use case khác nhau; chất lượng phụ thuộc cả rule set và thiết kế extension.