
AppLovin's 'publisher' isn't a website — {APP_ID} resolves to a mobile app, because AppLovin is an in-app advertising and app-install network, and every click it sends you originated inside someone's app, not a browser tab on a page. That distinction matters for fraud patterns too: in-app inventory deals with SDK-level spoofing and device farms more than the browser-bot traffic a web publisher sees. Appending AppLovin's six macros gives ValidVisit the app, placement, and creative context to attribute and score each visit 0-100 with that difference in mind.
Cross-check any macro against the network’s official documentation. AppLovin official docs →
{EVENT_ID} is the required macro — AppLovin's ad-request identifier, and it's the value that functions as the click id here, the one ValidVisit needs present to attribute a visit at all. {APP_ID} is the publisher-equivalent token, but instead of naming a domain it names the specific mobile app the ad ran inside, which is the unit you'll actually be reviewing quality against on this network. {PLACEMENT_ID} narrows that further to where inside the app the ad appeared, and {CREATIVE_SET_ID} records which creative set served. {CAMPAIGN_ID} and {CAMPAIGN_NAME} tie everything back to your buy. All six are curly-brace placeholders on your tracking link; AppLovin's server fills in real values before the click reaches your landing page, no SDK integration required just to carry them through.
Because {APP_ID} names an app rather than a website, the traffic behavior behind it looks different too — app-based clicks can involve emulator farms or SDK-level manipulation that a normal web publisher never has to contend with, which is exactly why treating an AppLovin visit the same way you'd treat a display click can miss what's actually happening. Scoring each visit against its {APP_ID} and {PLACEMENT_ID} is what lets a pattern specific to one app surface instead of getting absorbed into an overall AppLovin number. As with every network here, ValidVisit's role ends at the score and the report — pausing or excluding a specific app or placement from your AppLovin campaign is a change you make yourself, inside AppLovin's own dashboard.
| Token | AppLovin macro | ValidVisit param | Example |
|---|---|---|---|
| Event ID (ad request ID) *click | {EVENT_ID} | vv_click_id | abc123xyz |
| Campaign IDcampaign | {CAMPAIGN_ID} | vv_campaign_id | 123456 |
| Campaign Namecampaign | {CAMPAIGN_NAME} | vv_campaign_name | 123456 |
| App IDpublisher | {APP_ID} | vv_publisher_id | pub_42 |
| Placement IDplacement | {PLACEMENT_ID} | vv_placement_id | plc_7 |
| Creative Set IDcreative | {CREATIVE_SET_ID} | vv_creative_id | 987 |
{EVENT_ID}vv_click_id{CAMPAIGN_ID}vv_campaign_id{CAMPAIGN_NAME}vv_campaign_name{APP_ID}vv_publisher_id{PLACEMENT_ID}vv_placement_id{CREATIVE_SET_ID}vv_creative_id* required for AppLovin attribution.
https://yoursite.com/landing?utm_source=applovin&utm_medium=banner&vv_click_id={EVENT_ID}&vv_campaign_id={CAMPAIGN_ID}&vv_campaign_name={CAMPAIGN_NAME}&vv_publisher_id={APP_ID}&vv_placement_id={PLACEMENT_ID}&vv_creative_id={CREATIVE_SET_ID}Append these params to your landing-page URL — AppLovin fills the macros at click time, so every visit arrives attributed and ready to score. No funnel hop.
There is nothing the buyer can literally do with a bad-source list in the dashboard/API; the only recourse is emailing the list of publisher package/bundle IDs to their AppLovin account manager or filing a support request and asking for a manual block.
The specific mobile app the ad was shown inside, not a website. AppLovin runs in-app advertising, so {APP_ID} is the publisher-equivalent unit ValidVisit scores traffic quality against.
{EVENT_ID}, the ad-request identifier that functions as AppLovin's click id. ValidVisit needs it present to attribute a visit; {APP_ID}, {PLACEMENT_ID}, and {CREATIVE_SET_ID} add app-level and creative context on top.
ValidVisit scores every visit 0-100 using the same pipeline, but in-app clicks carry different fraud patterns than browser traffic, so having {APP_ID} and {PLACEMENT_ID} on the URL matters more here to isolate where a problem lives.
See which AppLovin publishers and placements send real buyers vs. bots.
Free trial at launch · just your email
One script · no cookies · no fingerprinting · raw IP never stored