Judge every ROIads visit by {publisher_id} and {site_id}. Find the placements behind weak push and pop volume before you set the Sources Blacklist.
source in ROIadsThe buyer pastes the bad source IDs into the campaign’s Sources Blacklist field in Advanced Settings (or restricts delivery to a whitelist of good ones), optionally using per-source micro bidding to down-bid instead of fully cutting a source.
ROIads sells push and pop inventory and reports it at two levels: a {publisher_id} naming the supply partner behind a click and a {site_id} naming the individual placement inside it, alongside {click_id}, {campaign_id}, {campaign_name} and {creative_id}. The second level is what makes the network tractable, because push quality is rarely uniform across a partner — subscriber lists are assembled placement by placement, and each one’s quality follows how it was collected. Push clicks also give little to judge them by on the surface: the visitor arrived from a notification, didn’t go looking for your offer, and a short session is the norm. A verdict attributed down to the {site_id} is what separates a low-intent but real subscriber from an automated click that arrived the same way.
On push inventory the root variable is how a subscriber list was built. Lists assembled from genuine opt-ins on real sites produce people who are often uninterested but unambiguously people. Lists seeded through incentivised prompts, deceptive permission dialogs or automated subscription produce volume that looks identical in the platform’s reporting and behaves nothing alike on arrival. Because a placement’s collection method tends to stay the same, a {site_id} judged invalid usually keeps being judged invalid, which makes cutting it unusually safe.
The second pattern is partner averages concealing placement problems. A {publisher_id} bundles many placements, and a partner whose aggregate invalid share sits near your baseline often holds one or two {site_id} values carrying nearly all of its invalid volume. Acting at the partner level then means choosing between losing good inventory and keeping bad — so on ROIads the useful decisions live at the placement tier.
{site_id} within one {publisher_id}Group your report by {publisher_id}, then break each partner down by {site_id}. A partner whose overall invalid share looks acceptable while its volume concentrates in a few very weak placements is the standard shape, and it argues for placement-level entries in the Sources Blacklist rather than cutting the partner.
A {site_id} that has been judged invalid across several weeks has a structural collection problem and is safe to cut. One that degrades suddenly is worth a closer look first — the list may have been topped up from a different source.
A placement whose visits are mostly judged Valid but convert poorly is sending real subscribers with weak intent, and per-source micro bidding keeps the reach at a price that reflects it. A high invalid share means automation, where a lower bid buys the same thing cheaper and the blacklist is the right lever.
Invalid share broken down by:
{publisher_id}Invalid share broken down by:
{site_id}Per-click id: ROIads passes a unique click id, and ValidVisit stores it with each visit, so a verdict traces back to the click in ROIads’s own reports.
Compare bot & invalid-traffic breakdown across every ad network →See your own ROIads sub-sources judged this way.
Each ROIads macro maps to a normalized parameter, so every judged visit is pinned to the right campaign, creative and publisher.
https://yoursite.com/landing?utm_source=roiads&utm_medium=push&vv_click_id={click_id}&vv_campaign_id={campaign_id}&vv_campaign_name={campaign_name}&vv_publisher_id={publisher_id}&vv_placement_id={site_id}&vv_creative_id={creative_id}| Token | ROIads macro | Maps to | Identifies |
|---|---|---|---|
| Click ID | {click_id} | click_id | click |
| Campaign ID | {campaign_id} | campaign_id | campaign |
| Campaign Name | {campaign_name} | campaign_name | campaign |
| Publisher ID | {publisher_id} | publisher_id | publisher |
| Site ID | {site_id} | placement_id | placement |
| Creative ID | {creative_id} | creative_id | creative |
{click_id}{campaign_id}{campaign_name}{publisher_id}{site_id}{creative_id}Macros not yet checked against ROIads’s documentation. ROIads docs
The verdict works the same way on every network. ValidVisit never changes your ROIads account: you make the exclusion there yourself. How the verdict works →
In the campaign’s Advanced Settings, which only unlock in campaign edit mode after the campaign has been created — the field isn’t there while you set a campaign up for the first time, so create it, then edit it. Paste the bad source IDs into the Sources Blacklist, or restrict delivery to a whitelist of good ones. The Campaigns section of the advertiser dashboard shows per-source stats for building the list, and per-source micro bidding lets you down-bid instead of cutting a source.
Yes, and keeping those ideas apart is the point. A visit is valid if a real person on a real device arrived through a legitimate path — not if they wanted your offer. A genuine subscriber who taps a notification out of mild curiosity and leaves after ten seconds is a valid visit that didn’t convert; that is a targeting and offer question. An automated click from a seeded list is invalid, and no creative change will fix it. The remedies are opposite.
The pairing of {publisher_id} and {site_id}: the first names the supply partner, the second the placement, and it is almost always the placement that isolates something worth acting on. Both are dimensions the Sources Blacklist and micro bidding work on. {click_id} gives per-click identity, ties a judged visit back to the ROIads click record, and is what a server-to-server conversion postback rides on. {creative_id} lets you rule out the creative before blocking a placement, and {campaign_name} makes reports readable without a lookup.
IP, operating system and OS version, browser and browser version, language, device and carrier/connection targeting are all documented.
Weighing a blocker for push traffic? How ValidVisit compares to PureGuard, Adscore and Tracker bot filtering.
See which publishers and placements send real buyers vs bots — every visit judged Valid or Invalid, worst first.
Join the waitlist with just your email · 7-day trial at launch
One script · no cookies · no device IDs · raw IP never stored