Adsterra sends traffic through its own click URLs, and the network exposes a set of double-hash macros you drop straight into your landing-page link. Append the macros below and every click arrives at ValidVisit already stamped with the exact placement it came from, so we can attribute it to the right Adsterra placement and score it 0-100 for traffic quality.
On Adsterra the macro that ties a click back to the source you actually care about is ##PLACEMENT_ID##, which identifies the specific placement serving your ad; ##ZONE_ID## and ##BANNER_ID## narrow it further down to the zone and the creative, while ##CAMPAIGN_ID## keeps everything grouped by campaign. The required ##SUB_ID_SHORT(action)## macro carries Adsterra's own click identifier, so each visit lands with a unique click id plus its placement attached. Note the format quirk: every Adsterra macro is wrapped in double hashes (##...##) in all-caps, and these are plain URL parameters, so nothing here needs a funnel hop or an extra hop.
Once each click is tied to its ##PLACEMENT_ID##, the data stops being a vague campaign-level average and becomes per-placement. ValidVisit reports and scores only, after the click arrives, so when a placement keeps sending invalid traffic or bots, you see exactly which placement / domain is responsible and can act on it yourself: open the campaign, go to block placements, and add the offending placement IDs to your block list in Adsterra's campaign settings. ValidVisit flags them, but the exclusion is always a manual step you take in Adsterra's own dashboard.
| Token | Adsterra macro | ValidVisit param | Example |
|---|---|---|---|
| Click ID (Sub ID) *click | ##SUB_ID_SHORT(action)## | vv_click_id | a1b2c3d4e5f6 |
| Campaign ID *campaign | ##CAMPAIGN_ID## | vv_campaign_id | 1843217 |
| Placement IDplacement | ##PLACEMENT_ID## | vv_placement_id | 5582910 |
| Zone IDpublisher | ##ZONE_ID## | vv_publisher_id | 4471203 |
| Banner ID (Creative)creative | ##BANNER_ID## | vv_creative_id | 990321 |
##SUB_ID_SHORT(action)##vv_click_id##CAMPAIGN_ID##vv_campaign_id##PLACEMENT_ID##vv_placement_id##ZONE_ID##vv_publisher_id##BANNER_ID##vv_creative_id* required for Adsterra attribution.
https://yoursite.com/landing?utm_source=adsterra&utm_medium=push&vv_click_id=##SUB_ID_SHORT(action)##&vv_campaign_id=##CAMPAIGN_ID##&vv_placement_id=##PLACEMENT_ID##&vv_publisher_id=##ZONE_ID##&vv_creative_id=##BANNER_ID##ValidVisit flags the bad placement / domain; block those placement IDs in Adsterra's campaign settings.
##PLACEMENT_ID## is the one that names the specific placement serving your ad. Pair it with ##ZONE_ID## and ##BANNER_ID## if you want to drill down to the zone or creative level, and keep ##CAMPAIGN_ID## so everything stays grouped by campaign.
No. The Adsterra macros (##SUB_ID_SHORT(action)##, ##CAMPAIGN_ID##, ##PLACEMENT_ID## and the rest) are plain URL parameters appended to your destination link. There is no funnel hop, no extra hop, and no script to install.
Add the macros to your campaign's target URL when you set up or edit the campaign in Adsterra. When ValidVisit flags a placement / domain sending invalid traffic, go to your campaign, open block placements, and add those placement IDs to the block list in Adsterra's campaign settings.
See which Adsterra 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