A tagged RollerAds destination URL looks like yoursite.com/landing?clickid={clickId}&zone={zoneId}&feed={feedId}&camp={campaignId}&cr={creativeId}. Five tokens cover the click, the zone, the feed, the campaign and the creative. RollerAds fills them at click time, and ValidVisit reads them on arrival, so every Push, In-Page Push, OnClick and Direct Click visit is attributed to the zone that sent it, then judged Valid or Invalid, with its evidence.
Cross-check any macro against the network’s official documentation. RollerAds official docs →
RollerAds writes its macros in camelCase. They appear in the tracker templates of its own help articles rather than in a separate macro list, so copy them exactly as written here. {clickId} identifies the click and is what the postback returns. {zoneId} is a specific placement inside a traffic source, the unit you exclude. {feedId} is the traffic source itself, which RollerAds recommends adding for optimization. {campaignId} and {creativeId} add campaign and creative detail.
The two supply levels are why you want both. A feed carries many zones, and invalid visits often gather in one or two of them while the rest of the feed stays clean. ValidVisit's invalid share per {zoneId}, read beside its {feedId}, shows whether to exclude a few zones under Feed and Zone targeting or the whole feed. CPA Goal campaigns also exclude zones automatically once they spend their test limit without converting, and the verdicts show which of those zones were sending invalid visits rather than real people who didn't buy. ValidVisit never changes your RollerAds campaign: the exclusions are yours to make.
| Token | RollerAds macro | ValidVisit param | Example |
|---|---|---|---|
| Campaign IDcampaign | {campaignId} | vv_campaign_id | 33010 |
| Feed IDpublisher | {feedId} | vv_publisher_id | feed_12 |
| Zone IDplacement | {zoneId} | vv_placement_id | zone_551 |
| Creative IDcreative | {creativeId} | vv_creative_id | 987 |
| Click ID *click | {clickId} | vv_click_id | ck_ra |
{campaignId}vv_campaign_id{feedId}vv_publisher_id{zoneId}vv_placement_id{creativeId}vv_creative_id{clickId}vv_click_id* required for RollerAds attribution.
https://yoursite.com/landing?utm_source=rollerads&utm_medium=push&vv_campaign_id={campaignId}&vv_publisher_id={feedId}&vv_placement_id={zoneId}&vv_creative_id={creativeId}&vv_click_id={clickId}Append these params to your landing-page URL — RollerAds 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 RollerAds’s docs on 2026-10-02.
The buyer excludes the bad zone IDs (or a whole feed for a coarser cut) under Feed and Zone targeting, or runs CPA Goal so zones that spend their test limit without converting are excluded automatically.
{feedId} is the traffic source; {zoneId} is a placement inside it. Excluding a feed is the coarser cut and excluding a zone the finer one. Both are done under Feed and Zone targeting in the campaign's Traffic block.
Some examples, including one RollerAds blog post, write the macros in lower case. RollerAds' help-centre templates use camelCase, such as {campaignId} and {zoneId}, and that's the spelling to use.
{clickId}, for conversions: it's the value RollerAds' postback returns, and CPA Goal needs a working postback. {zoneId} and {feedId} are what make the verdicts actionable.
No. CPA Goal acts on conversions, after each zone has spent its test limit. It can't tell a zone of automated visits from a zone of real people on a slow-converting offer; the verdict on each visit can, from the first visits.
See which RollerAds 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