RichAds buys are spread across subscriber lists, publishers and sites, so spend that looks fine at the campaign level can hide wildly different traffic underneath. Appending these macros to your landing-page URL lets ValidVisit attribute every visit back to its exact source id, then judge it Valid or Invalid, with the evidence in your dashboard, so you can see which sources are actually sending real users.
Cross-check any macro against the network’s official documentation. RichAds official docs →
On RichAds, attribution rides on the bracketed macros the network fills in at click time. The required [CLICK_ID] stamps each click with RichAds' own unique click identifier so ValidVisit can match it one-to-one, and [CAMPAIGN_ID] keys it to the buy. The tokens that matter for cleanup, though, are [PUBLISHER_ID] and [SITE_ID], which carry the publisher source the traffic came from, alongside optional context like [CREATIVE_ID] and, on RichPush, [SUB_LIST_ID] for the subscriber list. Note the format quirk: RichAds macros are all-caps inside square brackets, so they must be pasted exactly as written or the network won't replace them.
This matters because campaign-level numbers average good and bad sources together. Once each click is tied to its source id, ValidVisit ranks the worst-performing sources by IVT — and the call to action is yours to make: take the bad source ids and add them to the campaign's Black list inside RichAds, one ID per line. ValidVisit judges the traffic after it arrives and never edits your RichAds campaigns. The actual exclusion happens manually in your own RichAds dashboard, and the blame sits with the offending source, not with RichAds.
| Token | RichAds macro | ValidVisit param | Example |
|---|---|---|---|
| Click ID *click | [CLICK_ID] | vv_click_id | [CLICK_ID] |
| Campaign ID *campaign | [CAMPAIGN_ID] | vv_campaign_id | 1234567 |
| Campaign Namecampaign | [CAMPAIGN_NAME] | vv_campaign_name | My_Push_Campaign |
| Creative IDcreative | [CREATIVE_ID] | vv_creative_id | 987654 |
| Publisher IDpublisher | [PUBLISHER_ID] | vv_publisher_id | 55012 |
| Site IDplacement | [SITE_ID] | vv_placement_id | 778899 |
| Subscriber List ID (RichPush)adset | [SUB_LIST_ID] | vv_adset_id | 44021 |
[CLICK_ID]vv_click_id[CAMPAIGN_ID]vv_campaign_id[CAMPAIGN_NAME]vv_campaign_name[CREATIVE_ID]vv_creative_id[PUBLISHER_ID]vv_publisher_id[SITE_ID]vv_placement_id[SUB_LIST_ID]vv_adset_id* required for RichAds attribution.
https://yoursite.com/landing?utm_source=richads&utm_medium=push&vv_click_id=[CLICK_ID]&vv_campaign_id=[CAMPAIGN_ID]&vv_campaign_name=[CAMPAIGN_NAME]&vv_creative_id=[CREATIVE_ID]&vv_publisher_id=[PUBLISHER_ID]&vv_placement_id=[SITE_ID]&vv_adset_id=[SUB_LIST_ID]Append these params to your landing-page URL — RichAds fills the macros at click time, so every visit arrives attributed and ready to judge. No funnel hop.
Carries a per-click id, stored with each visit so a verdict traces back to the click.
Tokens last verified against RichAds’s docs on 2026-10-02.
Paste the bad 32-character publisher/site source IDs into the campaign’s Black list field, one ID per line with no extra characters, and untick bad sublists in the Sources selector.
The publisher source is carried by [PUBLISHER_ID] and [SITE_ID]. ValidVisit ties each visit to that source id and ranks the ones sending invalid traffic, so you know exactly which entries to put on your campaign Black list. [CLICK_ID] and [CAMPAIGN_ID] are the required macros that let us match every visit back to its campaign.
No. These are plain URL parameters appended to your destination URL. RichAds substitutes the bracketed macros at click time and the values land directly in ValidVisit — there is no funnel hop, no extra hop, and no separate tracker required.
Add the macros to your campaign's Destination URL in RichAds, keeping each one in its exact all-caps bracketed form. ValidVisit then judges the incoming traffic and reports an invalid share per source. To act on a bad source you add its ID manually to the campaign's Black list in your RichAds dashboard — ValidVisit does not exclude sources for you.
See which RichAds publishers and placements send real buyers vs. bots.
Join the waitlist with just your email · 7-day trial at launch
One script · no cookies · no device IDs · raw IP never stored