Blocks and exclusion pushes
The Blocks tab is the list of addresses and devices AdPix keeps out of your paid campaigns, each with its own expiry. From here you block by hand, release a block, and send the list to a webhook or to Google Ads.
Blocking is on the Pro and AdPix 360 plans. On Starter this tab shows the upgrade screen, and detection carries on without blocks.
What a block is in AdPix#
Every block is one value — an address, a range, an IPv6 range or a device — together with a severity, reasons and an expiry date. On Fraud Protection (/integrity), the Blocks tab shows them all.
A block never touches your site and never stops a visit. It is a row on the exclusion list AdPix keeps for your ad platforms; it takes effect once that list reaches the platform through a push destination or an exported file.
Above the table is one line: "… active blocks · Google allows 500 per campaign". That count covers address-type blocks only; device blocks never go to Google, because Google excludes IP addresses only.
Lifecycle#
The filter above the table has four states:
| State | Means |
|---|---|
| Active | in force and included in every push. Each new Confirmed verdict on the same value moves its expiry later |
| Expired | its lifetime ran out. If the website is in Block mode and the same value earns a Confirmed verdict again, it becomes active again |
| Released | someone lifted it. Automatic verdicts never bring it back; only a manual block reactivates it |
| Allowlisted | like Released, a human decision that automatic verdicts never reactivate |
Every hour AdPix moves blocks whose date has passed to Expired. The lifetime of each new block comes from Block expiry (days) in Protection settings.
The table's columns#
| Column | What it shows |
|---|---|
| Value | the address, range or device ID itself |
| Type | one of the four types in the next section |
| Severity | the tier of the verdict that created the block |
| Reasons | up to two reason labels; a manual block carries no detection reason |
| Hits | how many times automatic verdicts hit this value. Approximate: each value is counted at most once a minute |
| Last seen | the last day a verdict hit this value |
| Expires | "… days left" for an active block, a date for the rest |
| Created by | Real-time, Nightly or Manual |
The Release button appears on Active rows only.
Who creates a block#
| Created by | When |
|---|---|
| Real-time | a Confirmed verdict at landing, or an update from browser signals — in Block mode only |
| Nightly | a Confirmed verdict in the nightly analysis — in Block mode only |
| Manual | you, from the form on this tab or the Block this address button in a click's evidence drawer |
And four types of value:
| Type | What it excludes |
|---|---|
| IP address | one address |
| IP range (a.b.c.*) | one /24 range, which is 256 addresses. Only you create this type |
| IPv6 /64 | one subscriber's IPv6 range; IPv6 privacy addresses rotate inside it |
| Device | one device fingerprint. It never goes to Google; only to webhooks |
Automatic blocks record an IPv4 address as IP address and an IPv6 address as IPv6 /64, and block the device only when the verdict is about the device itself. Shared mobile and carrier addresses are never blocked automatically.
Manual blocks#
The Block an address or device card has three fields:
203.0.113.9, a range such as 203.0.113.*, an IPv6 prefix such as 2001:db8:1:2::, or a device ID.A manual block always gets Confirmed severity, and its lifetime comes from your settings. It works in every protection mode, Monitor included, and it reactivates a value that was released before. Creating and releasing blocks needs the Editor role or higher on the website.
The Block this address button in a click's evidence drawer is not shown at all for mobile-carrier and shared addresses. The manual form has no such protection and accepts any valid address. Before blocking an address or a /24 range by hand, open one of its clicks in the evidence drawer and check the network type; behind a carrier address sit many real customers.
Releasing a block#
Release moves a block to Released. From that moment:
- it is left out of every later push, and the next push puts it on the
removelist so a Google Ads destination deletes the matching exclusion; - automatic verdicts never bring it back, even if the same address earns a Confirmed verdict again;
- the only way back is a manual block.
If you release a block because the verdict was wrong, add the same address or device to the allowlist as well, so its future clicks are recorded as Clean too.
Google's 500 cap and the ranking#
Google Ads accepts at most 500 IP exclusions per campaign. AdPix ranks the list like this: most severe first, then most recent Last seen, then most Hits. When the addresses go past 500, a line such as "… over Google's limit: the exports keep the most severe and most recent." appears. The overflow is never dropped silently; its size is reported.
The pushed list is built from three sources:
- the Active blocks in this table;
- the addresses of Confirmed paid clicks from the last 30 days — never a carrier address;
- the
/24ranges that traffic from Confirmed networks came from, only when the network is a datacenter, VPN, proxy or Tor network or on the known-fraud list — never a residential or mobile network.
Left out of it: any Released or Allowlisted value, and anything on the allowlist. That is why the pushed list carries Confirmed addresses even in Monitor mode; the mode only decides whether AdPix creates blocks and pushes on its own.
A webhook has no cap and receives every address. In Google Ads, the exclusions you added by hand also take a share of each campaign's 500 slots; when a campaign is full, lower-ranked addresses wait until a slot frees up.
Push destinations#
The Push destinations card is where Push now and auto-push send the list. At the top of the card is the table of current destinations, with Name and Type columns and a Remove button; below it, the form to add one.
Webhook#
For n8n, a firewall or any other HTTP endpoint:
Each push is a POST request with a JSON body, and the secret travels with it in the X-Sovereign-Secret header. Your receiver should compare that header with the secret and reject every other request. The secret is never shown again; if you lose it, remove the destination and create it again to get a new one.
The request body looks like this:
| Field | Means |
|---|---|
add |
every address on the list, in priority order and without the 500 cap. A /24 range as a.b.c.*, an IPv6 range with a /64 suffix |
remove |
values sent to this same destination last time that are no longer on the list — expired, released or allowlisted |
blocks |
the full rows, including device blocks and reason codes; source is ledger or network for rows that came from clicks or networks |
The reason_codes are the same stable codes the Reasons labels are built from.
Google Ads IP exclusions#
Set Type to Google Ads IP exclusions and fill in these fields:
| Field | What goes in |
|---|---|
| Google Ads customer ID | the ad account ID, such as 123-456-7890 |
| Manager account ID (optional) | when access goes through a manager (MCC) account |
| OAuth refresh token | the token the account owner granted for access |
| Campaign IDs (comma-separated) | the campaigns whose IP exclusions AdPix maintains |
For every campaign you named, AdPix adds the list's new addresses and removes only the exclusions it added earlier that are no longer on the list. Exclusions you added by hand are never touched. Only addresses go to Google; devices do not.
Search, Display, Shopping and Demand Gen campaigns accept IP exclusions. Performance Max, Video and App campaigns, and any other type that cannot hold IP exclusions, are skipped without an error, and the destination's other campaigns are updated as usual.
Pushing to Google Ads needs Google Ads API access, which has to be enabled on the AdPix platform. Until it is, pushes to this destination do not go through and the reason shows in the Last error column. In the meantime, take the Google Ads IP exclusions file from the Evidence tab and import it by hand — Blocking networks and refund evidence.
This destination is not available for Iranian websites: if the website's currency is rial or toman, or its time zone is Tehran, AdPix refuses it, because Google does not serve Iranian advertisers. Those websites use the webhook and the files on the Evidence tab.
Push now and the Pushes table#
The Push now button on the Pushes card queues the current list for every enabled destination of the website and shows "Push queued.". If the website has no push destination, you get an error saying so instead. Auto-push, its conditions and the fact that it works only in Block mode are covered in Protection settings.
The table under the button shows the last 50 pushes, with Time, Platform, Addresses sent, Status and Last error columns. The status is read live from the delivery queue:
| Status | Means |
|---|---|
| Queued / Pending | recorded and waiting for its turn |
| Sending | being delivered right now |
| Delivered | the destination accepted it |
| Failed | the last attempt failed and will be retried; the reason is in Last error |
| Gave up | the retries ran out and this push will not be sent again. Fix the error and press Push now again |
Frequently asked questions#
Why does Addresses sent differ from the number of blocks in the table?
Because the pushed list is more than the table's rows. It also carries the addresses of Confirmed paid clicks from the last 30 days and the /24 ranges of Confirmed networks that are datacenter, VPN, proxy, Tor or known-fraud networks. In the other direction, device blocks never go to Google and Google takes at most 500 addresses.
If I release a block, is it removed from Google Ads too?
Yes, on the next push. The value goes into the remove list and the Google Ads destination deletes the exclusion AdPix had added. Automatic verdicts will not bring it back either.
Does AdPix remove the exclusions I added in Google Ads myself?
No. It only removes what it added itself. Your own exclusions do take a share of each campaign's 500 slots, though; when a campaign is full, lower-ranked addresses wait for a free slot.
Why can't I add a Google Ads destination?
If the website's currency is rial or toman, or its time zone is Tehran, AdPix refuses this destination, because Google does not serve Iranian advertisers. Those websites use the webhook and the files on the Evidence tab.
Thanks — your feedback helps us improve the docs.