A tagged AdMaven destination URL looks like yoursite.com/landing?clickid={:click_id}&sub={:sub_source_id}&src={:source_id}&camp={:campaign_id}&cr={:creative_id}. Five tokens cover the click, the sub-source, the source, the campaign and the creative. AdMaven fills them at click time, and ValidVisit reads them on arrival, so every pop and push visit is attributed to the sub-source that sent it, then judged Valid or Invalid, with its evidence.
Cross-check any macro against the network’s official documentation. AdMaven official docs →
Note the colon. AdMaven's full macro list writes every macro as {:name}, and a plain {campaign_id} appears nowhere in its documentation, though two of its setup guides show the other names without the colon. Use the colon form throughout so every value fills. {:click_id} identifies the click and is what conversions match on; AdMaven's conversion test needs it. {:sub_source_id} is the sub-source, written as the source ID and the sub-ID joined by an underscore (85712_59193), and it's the unit you put on a campaign blacklist or the account-wide Global Blocked List. {:source_id} is its parent source. {:campaign_id} and {:creative_id} add campaign and creative detail.
On AdMaven's direct traffic a source has no sub-sources, so the sub-source reads as the source ID plus _-1, and the source is the finest unit there. On third-party traffic the sub-source is the partner's own subid or zone. Either way, ValidVisit's invalid share per {:sub_source_id} is the list you block from. AdMaven's macro list also carries descriptive fields such as {:browser}, {:os_type}, {:country_code} and {:isp}; ValidVisit reads those properties from the visit itself, so they add nothing to the verdict. ValidVisit never edits your AdMaven campaign: the blacklist is yours.
| Token | AdMaven macro | ValidVisit param | Example |
|---|---|---|---|
| Campaign IDcampaign | {:campaign_id} | vv_campaign_id | 4821 |
| Source IDsource | {:source_id} | vv_source | feed_12 |
| Sub-source / Site IDpublisher | {:sub_source_id} | vv_publisher_id | 85712_59193 |
| Click ID *click | {:click_id} | vv_click_id | a1b2c3d4 |
| Creative IDcreative | {:creative_id} | vv_creative_id | creative_001 |
{:campaign_id}vv_campaign_id{:source_id}vv_source{:sub_source_id}vv_publisher_id{:click_id}vv_click_id{:creative_id}vv_creative_id* required for AdMaven attribution.
https://yoursite.com/landing?utm_source=admaven&utm_medium=pop&vv_campaign_id={:campaign_id}&vv_source={:source_id}&vv_publisher_id={:sub_source_id}&vv_click_id={:click_id}&vv_creative_id={:creative_id}Append these params to your landing-page URL — AdMaven 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 AdMaven’s docs on 2026-10-02.
Paste comma-separated Source IDs or Sub Source IDs (or import a CSV) into the campaign’s blacklist or the account-wide Global Blocked List, which applies to all current and future campaigns on Save Changes.
Use it. AdMaven's full macro list writes every macro with a colon, such as {:sub_source_id}. Some of its setup guides show the names without it, but the colon form is the one documented for every macro, campaign ID included.
{:sub_source_id}. It's the unit AdMaven lets you block per campaign or account-wide. On direct traffic, where it ends in _-1, the source ID is the unit instead.
AdMaven's conversion test needs it, and it's the value that ties a conversion to the click. The sub-source and source tokens are what make the verdicts actionable.
Yes. Besides each campaign's own blacklist, AdMaven has a Global Blocked List under the profile icon that applies to all current and future campaigns. It takes Source IDs, full Sub Source IDs and IP addresses or ranges, typed in or imported as a CSV, and applies when you click Save Changes.
See which AdMaven 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