DAO.AD sells push, in-page push, popunder and video traffic, and its macro page lists a separate set for each format. The core is shared: {click_id}, {campaign_id}, {source_id} and {sub_id} work on every format, and {creative_id} on push, in-page push and video. Append them to your destination URL and ValidVisit attributes every DAO.AD visit to the source and sub-source that sent it, then judges it Valid or Invalid, with its evidence.
Cross-check any macro against the network’s official documentation. DAO.AD official docs →
{click_id} is the token to always include: it gives each visit a unique identifier, and DAO.AD's postback has to send it back for conversions to match and for its automatic blacklist rules to work. {source_id} names the publisher source, and DAO.AD describes it as the source that contains the sub_id. {sub_id} goes finer, to the specific sub-source inside that source, which is the level that tends to vary most. {campaign_id} groups everything for reporting, and {creative_id} identifies the ad when a campaign runs more than one; DAO.AD's popunder and VAST lists don't include it, which is expected, since a popunder opens your page rather than showing a creative.
One source can run several sub-sources of very different quality, and {sub_id} is what lets that difference surface instead of getting averaged away inside {source_id}. Judging at that finer level tells you whether a source is worth keeping in full or only in part. ValidVisit's part is limited to producing and reporting that verdict; it has no way to reach into DAO.AD and turn a sub-source off. That decision, and the action of making it, happens in your DAO.AD dashboard once the verdicts make the case for it.
| Token | DAO.AD macro | ValidVisit param | Example |
|---|---|---|---|
| Click ID *click | {click_id} | vv_click_id | abc123xyz |
| Campaign IDcampaign | {campaign_id} | vv_campaign_id | 123456 |
| Source IDpublisher | {source_id} | vv_publisher_id | pub_42 |
| Sub IDplacement | {sub_id} | vv_placement_id | plc_7 |
| Creative IDcreative | {creative_id} | vv_creative_id | 987 |
{click_id}vv_click_id{campaign_id}vv_campaign_id{source_id}vv_publisher_id{sub_id}vv_placement_id{creative_id}vv_creative_id* required for DAO.AD attribution.
https://yoursite.com/landing?utm_source=dao-ad&utm_medium=push&vv_click_id={click_id}&vv_campaign_id={campaign_id}&vv_publisher_id={source_id}&vv_placement_id={sub_id}&vv_creative_id={creative_id}Append these params to your landing-page URL — DAO.AD 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 DAO.AD’s docs on 2026-10-02.
The buyer pastes the bad source IDs (or SubIds) into the campaign’s Blacklist field — or sets whitelist-only — can set per-source or per-SubId bids under Micro-bidding Rules, and can add automatic rules for BL that blacklist a Source ID when a postback-fed condition is met.
blacklist/whitelist (source IDs) and subIdBlack/subIdWhite (hex-encoded SubIds), blackDomain/whiteDomain (domains){source_id} identifies the publisher source, while {sub_id} identifies a specific sub-source within it. Since one source can carry sub-sources of very different quality, {sub_id} is usually the more useful level for ValidVisit to judge.
{click_id}. It's the unique per-visit identifier ValidVisit needs to tie a click back to DAO.AD, and the one DAO.AD's postback returns; {campaign_id}, {source_id}, {sub_id} and {creative_id} all add optional detail.
Mostly. {click_id}, {campaign_id}, {source_id} and {sub_id} are on every format's list, so one URL template covers them all. {creative_id} is on the push, in-page push and video lists but not on popunder or VAST, where it simply stays empty.
See which DAO.AD 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