PropellerAds runs your push traffic across a huge spread of publisher zones, and the quality between those zones varies wildly. Append these macros to your destination URL and every click arrives stamped with the exact zone, subzone, and campaign it came from, so ValidVisit can attribute it down to the precise ${exclusion.unit} that delivered it and score that click 0-100 for traffic quality.
Attribution on PropellerAds hangs on a couple of tokens. The ${SUBID} macro is the per-click identifier you pass back for S2S tracking, but the token that actually names the sub-source you care about is {zoneid} (with {subzone_id} drilling one level deeper) alongside {campaign_id} for the campaign context. Note the format quirk: ${SUBID} uses the dollar-brace style while the zone and campaign tokens are plain curly braces like {zoneid} and {bannerid} — keep each one exactly as written or PropellerAds won't expand it, and you'll get a literal string back instead of the real ID.
Once every click is tied to its zone, the granularity becomes actionable. ValidVisit looks at 100+ data points per click and rolls them into a single 0-100 quality score, then ranks the worst-performing zone_ids for you. ValidVisit only reports and scores — it never blocks a click — so you take that ranked list and act on it yourself: open the campaign's zone targeting → Exceptions in your PropellerAds dashboard and add the bad zones to the block list manually. The score points the finger at the underperforming zone or subzone, not at PropellerAds itself.
| Token | PropellerAds macro | ValidVisit param | Example |
|---|---|---|---|
| Subscriber / Click ID (SUBID) *click | ${SUBID} | vv_click_id | a1b2c3d4e5f6 |
| Campaign ID *campaign | {campaign_id} | vv_campaign_id | 7654321 |
| Zone IDpublisher | {zoneid} | vv_publisher_id | 3456789 |
| Subzone IDplacement | {subzone_id} | vv_placement_id | 112233 |
| Banner / Creative IDcreative | {bannerid} | vv_creative_id | 998877 |
${SUBID}vv_click_id{campaign_id}vv_campaign_id{zoneid}vv_publisher_id{subzone_id}vv_placement_id{bannerid}vv_creative_id* required for PropellerAds attribution.
https://yoursite.com/landing?utm_source=propellerads&utm_medium=push&vv_click_id=${SUBID}&vv_campaign_id={campaign_id}&vv_publisher_id={zoneid}&vv_placement_id={subzone_id}&vv_creative_id={bannerid}ValidVisit ranks the bad zone_ids; add them to PropellerAds' zone Exceptions / block list.
{zoneid} is the one that names the publisher zone behind each click, and {subzone_id} narrows it further. {campaign_id} gives you campaign context and ${SUBID} is the per-click ID for S2S, but zone and subzone are what you rank and act on for traffic quality.
No. These are ordinary URL parameters appended to your destination link. PropellerAds fills in the values when it fires the click — there's no extra hop or extra script required, you just add the macros to the URL.
Inside PropellerAds, not in ValidVisit. ValidVisit ranks the bad zone_ids; you add them to your campaign's zone targeting → Exceptions / block list manually in the PropellerAds dashboard. ValidVisit reports and scores only — it never excludes anything for you.
See which PropellerAds publishers and placements send real, converting traffic vs. bots.
Free trial at launch · lock in early-access pricing
One script · raw IP never stored · GDPR legitimate-interest basis