Skip to content

Increase the maximum number of dynamic rules to 30,000 #319

@105th

Description

@105th

In the case of ad blockers, dynamic rules can serve several purposes:

  1. Differential updates for the static rulesets.
  2. Allowing users to add custom filter lists which are not included into the extension packages.
  3. Applying custom rules made by the users themselves.

Differential updates

The limit of 5,000 is simply not enough for this purpose. The problem is pretty much the same as with the current “disableRules” limit. Here are some graphs that show how many rules are being added to popular filter lists that are used by AdGuard users.

Number of added network rules to AdGuard popular global lists

Raw data

On average about 2600+ new rules are added every week to the most popular filter lists. Note, that this does not include changes to regional lists (many users have 1-3 regional lists). Considering the release cycle of 3-6 weeks, we need to increase the dynamic rules limit to at least 20,000 just to make it possible to use it for differential updates.

Custom filter lists

Ad blockers provide users with the possibility to add custom filter lists, the ones that are not included into the list of static rulesets. This is crucial for the ecosystem, that’s how new filter lists appear and become popular and eventually get included into the static rulesets. Is 5,000 enough for this purpose?

We analyzed public issues from AdGuard users from the AdguardFilters repo to see what sorts of custom lists are used and how many rules are there on average. It appears that about 5% of the reports come from the users that have custom lists. And every one in four of those users uses more than the maximum limit of 5,000 rules.

Custom user-made rules

Unfortunately, there’s no open stats that we can share on that. Although, from our experience, users rarely have over several hundreds of user-made rules.

Summary

Considering all the cases that are listed above we suppose that the adequate limit of dynamic rules is 30,000.

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions