Docs › Filters
Traffic

Filters: cloaking and block-lists

Cloaking scares kittens more than anything, because there's exactly one thing everyone gets backwards — and they get it backwards with real dedication. Let's settle it once and for all, and this time it'll stick.

A filter is a cloaking config. It looks at everyone who arrives on the link and decides: is this a bot (a moderator, an anti-fraud, a scraper) or a real buyer? Bots it sends to the white page — a harmless cat-blog with nothing to report. Real humans go to the black page, where the money is. That's it. That's all of cloaking. One fork in the road.

Black and white, once and for all. Memorise the polarity — this is the one the web fails most: black is yours: money, the offer. White is safe, empty, for the reviewers. Not the other way round. A web who flips the sides sends real buyers to the cat-blog and walks the moderator straight onto the gambling offer. Don't do that.

What a filter is (and where log_result comes in)

Internally each filter carries one technical result code — log_result. You see it in the stats, and it explains every decision the cloaker makes:

Don't flip it in your head. "Zero = passed = black = money" — drill it like times tables. In the stats the st0 column is the people who went to the money; everything else is filtered to white. If the opposite feels logical to you, that's not logic, that's a habit from your old tracker. Drop it.

The Filters screen — three tabs

The screen is split into three tabs plus a Мои / Команда (Mine / Team) scope switch (personal objects vs. team objects):

  1. Фильтры (Filters) — the filter list and editor. The cloaking itself is configured here.
  2. Блок-листы (Block-lists) — managing IP and header lists: create, rename, populate.
  3. Статистика фильтров (Filter stats) — visits, by-site and by-day summaries, result codes.

Tab by tab below.

The Filters tab: list and editor

The filter list shows one row per filter: name/domain, status, type, size, updated-at, an actions menu. Each row carries cumulative stats (clicks, black/white, CR, EPC, approve).

The filters list: name, type, size, per-row stats, search by name/domain/id.

List search matches name, domain or id — type kot and you get kotiki.me and kotiki.new; type 135 and it finds the filter with that id in its domain.

Clicking a row opens the filter editor (a drawer). Its single most important trait:

The filter editor saves every field itself, as you type. There is no Save button — same as the campaign editor. Change a mode, add a geo, flip a checkbox — it's already saved. Close the drawer, reopen it, everything's there.
The filter editor: geo, OS, browser, language, block-lists. Every field saves itself — there is no Save button.

What the editor configures:

Beyond editing, the list lets you rename the filter domain (edit the domain field in the drawer — it saves in place) and clone a filter: a copy is created with all settings (OS, block-lists, geo, and so on) carried over, only the domain changed.

Geo ww/zz resets the list. The values ww and zz in the geo picker aren't countries — they're a "reset the whole list" command. Add ww to geo and you wipe the allowed-countries list entirely. Not a bug, it's parity with the campaign editor; just know these two codes are a switch, not an entry.

The Block-lists tab: IP and header lists

A block-list is a managed list of entries that you later attach to a filter. There are exactly four types, and the type decides what an entry's body looks like:

TypeWhat's insideEntry fields
1 — IP addresses (IPv4)single addressesValue + Comment
2 — IP networks (network/CIDR)subnetsValue + CIDR (number 8–31) + Comment
3 — IPv6 addressesIPv6 addressesValue + CIDR (number 32–128) + Comment
4 — HeadersHTTP-header rulesValue + header type + RegExp checkbox + Comment
Block-lists: four types — IP addresses, IP networks, IPv6, Headers — with size and active/default toggles.

The list shows: name, a type badge, size (entry count), "active" and "default" toggles (a default list is auto-attached to new filters), updated-at, a row menu. Open a list and you land in its entries: a paginated grid (value · comment · expiry), search, a comment filter, an add-entry row, bulk import, clear-all, per-row edit/delete.

Block-list entries: the body depends on type — headers add a header type and a RegExp checkbox.

For the Headers type the header-type select carries all 47 options (first is User-Agent, then Referer and the rest), and the RegExp checkbox makes the value a regular expression — that's how you catch, say, Googlebot in the User-Agent.

Searching entries. Entry search does work, but it behaves by type: on header lists it's a substring (Google finds Googlebot), while on IP lists it's an exact address match, not a fragment. Looking for a specific IP? Type the whole thing. There's also a separate comment filter.
Auto lists aren't editable. If a list is a system (auto-managed) one, you can't edit its entries: the screen shows it read-only. Your ordinary lists edit freely.

The Filter stats tab

Three sub-tabs:

Date presets: today / yesterday / 7 days / 30 days. Plus manual from/to and CSV export.

Filter stats: st0 is traffic sent to black (the money), stw the traffic filtered to white.
Reading the polarity in stats. The zero-result column (st0) is traffic sent to the black (money) page; the sum of the non-zero results (stw) is the white page. Want "how many real humans reached the register"? Read st0. Want "how many bots the cloaker turned away"? Read stw.
If the stats are empty. The visit log and summaries can be empty even while the filter's click counter is ticking — the fast log (DB_FLTR_FAST) is pruned over time. Empty stats with a live click counter is a data state, not a breakage.

Workflow 1 — Create a filter and attach it to a campaign

  1. Open the Filters screen, the Фильтры tab.
  2. Hit "+ New filter", give it a name/domain and a type — the filter is created and opens in the editor.
  3. Configure the cloaking: geo, OS, browser, language, and attach block-lists if needed (see Workflow 2). Don't save anything by hand — the editor saves every field itself.
  4. Go to the target Campaign editor, the Фильтр (Filter) tab.
  5. Pick your filter from the list — the campaign starts cloaking its traffic through it.
More on the campaign's Filter tab in the campaigns page (help/campaigns.html).

Workflow 2 — Build a block-list and populate it

  1. On the Filters screen open the Блок-листы tab, hit "create list".
  2. Give it a name and pick a type: IP addresses (1), IP networks (2), IPv6 addresses (3) or Headers (4).
  3. Open the list — you land in its entries.
  4. Add an entry from the input row; the body depends on the type:
    • IPv4: value (address) + comment.
    • Network: address + CIDR (8–31) + comment.
    • IPv6: address + CIDR (32–128) + comment.
    • Header: value + header type + RegExp checkbox (if it's a pattern) + comment.
  5. For bulk population use import (line-by-line / CSV).
  6. Back in the filter editor, in the block-lists section attach the list with the picker.
Want a list auto-attached to every new filter? Turn on its "default" toggle.

Workflow 3 — Read a filter's statistics

  1. Open the Статистика фильтров tab.
  2. Start with Визиты: pick a site and, if needed, a result — -2 shows everyone sent to black (the money), -1 everyone turned away to white.
  3. Expand a row to see the visit detail (UA, IP, which header rules fired).
  4. For the big picture switch to По сайтам or По дням, and pick a date preset.
  5. Read the polarity right: st0 = reached the register, stw = filtered out.

What it's called in the real AlterCPA Lite

The cloaker doesn't sleep. While you were reading this, the cat at the door turned away another couple of hundred bots. Ears up, eyes on the door. The one thing that reliably slips past its cloaking is a scatterbrained kitten who mixed up white and black and, with their own paws, sent a real buyer off to read about cats. Don't be that kitten. Zero is the register. Got it? Good, kitten.