Banner / DisplayJudge every AppLovin visit Valid or Invalid and read the invalid share by campaign, creative set and ad type across interstitial and rewarded placements.
There is no documented field for a bad-source list. The buyer can change the campaign’s geography and creative sets, and take the invalid share per campaign, creative set and ad type to AppLovin, which says it acts against publishers flagged for fraudulent or invalid activity.
AppLovin runs ads inside mobile games. A website campaign’s ad is a full-screen video followed by an Interactive Page and a Dynamic Catalog, shown across thousands of mobile apps and games in two primary placements, interstitial and rewarded, and a tap carries the player to your site. AppLovin’s macro table for website campaigns lists {EVENT_ID}, {CAMPAIGN_ID}, {CAMPAIGN_NAME}, {CREATIVE_SET_ID}, {AD_TYPE} and {AD_SIZE}. {APP_ID}, the hashed ID of the app where the ad was served, and {PLACEMENT_ID} appear only in its table for app campaigns, so on a web landing page the verdict is read by campaign, creative set and ad type first.
AppLovin says its AI engine decides when your ad shows in each placement, and that spend is split nearly evenly between the two.
Rewarded placements. A player chooses to watch a video in exchange for an in-game reward, and the video plays through, up to 60 seconds, before the Interactive Page appears. The view was earned with a reward; the visit to your site is a separate decision, and the verdict on each arriving visit shows how often a real one followed.
Interstitial placements. These appear in natural gameplay breaks, such as between levels, and a player must watch at least five seconds before skipping to the Interactive Page.
AppLovin’s publisher policies require impressions and clicks to come from legitimate human activity, and they prohibit hidden, stacked or stuffed ads and artificially inflated clicks. AppLovin says it monitors for fraudulent clicks and terminates the accounts of publishers flagged for invalid activity. ValidVisit judges the visits that still reach your page and reports the invalid share for each campaign, creative set and ad type.
{AD_TYPE}Segment your report by {AD_TYPE}. On website campaigns AppLovin fills it with APPOPEN, GRAPHIC, PLAY, REWARD or VIDEO, so it separates rewarded impressions from the rest. {AD_SIZE} adds the creative size: BANNER, INTER, LEADER, MREC, NATIVE or PRELOAD. If one type runs an invalid share well above your campaign baseline, that is the pattern to put in front of AppLovin.
{CREATIVE_SET_ID} within a campaignA creative set groups your videos and interactives, and AppLovin’s model picks among them for each impression. Compare invalid shares across {CREATIVE_SET_ID} values inside one {CAMPAIGN_ID}. AppLovin advises against pausing sets just because they look weak, since a set can still do top-of-funnel work; a set whose visits are judged Invalid is different evidence from one that converts slowly.
{APP_ID} belongs to app campaignsAppLovin’s app-campaign table defines {APP_ID} as the hashed ID of the application where the ad was served — the value its reporting calls the site ID — and {PLACEMENT_ID} as an encrypted ID of the same application, not a slot inside it. The website-campaign table lists neither. If you add {APP_ID} to a web landing URL, check that it fills on your first visits before you report on it.
AppLovin exposes campaign-level tokens; we break invalid traffic down by campaign and per-click id, and surface the offending networks and devices behind the bot clicks.
Per-click id: AppLovin passes a unique click id, and ValidVisit stores it with each visit, so a verdict traces back to the click in AppLovin’s own reports.
Compare bot & invalid-traffic breakdown across every ad network →See your own AppLovin sub-sources judged this way.
Each AppLovin macro maps to a normalized parameter, so every judged visit is pinned to the right campaign, creative and publisher.
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_creative_id={CREATIVE_SET_ID}| Token | AppLovin macro | Maps to | Identifies |
|---|---|---|---|
| Event ID (ad request ID) | {EVENT_ID} | click_id | click |
| Campaign ID | {CAMPAIGN_ID} | campaign_id | campaign |
| Campaign Name | {CAMPAIGN_NAME} | campaign_name | campaign |
| Creative Set ID | {CREATIVE_SET_ID} | creative_id | creative |
{EVENT_ID}{CAMPAIGN_ID}{CAMPAIGN_NAME}{CREATIVE_SET_ID}Macros checked against AppLovin’s own documentation on 2026-10-02. AppLovin docs
The verdict works the same way on every network. ValidVisit never changes your AppLovin account: you make the exclusion there yourself. How the verdict works →
AppLovin documents no control for it. Its advertiser FAQ says targeting is primarily handled by AppLovin’s model, the geographic options are metros and states you can deselect at campaign level, and the Campaign Management API’s targeting object holds only country, US region and metro. What AppLovin does say is that it acts against publishers flagged for fraudulent or invalid activity, so a consistently high invalid share is evidence to take to your AppLovin contact.
AppLovin’s model optimizes toward the events it receives from your pixel or Conversion API: purchases, leads, revenue. For lead-gen, AppLovin itself recommends the Conversion API so that you can avoid sending leads that aren’t valuable to your business. That loop sees conversions, not the visits that never convert. A per-visit verdict sits outside it and shows the invalid share of the visits each campaign, creative set and ad type sent.
{EVENT_ID} is the unique ID of the ad request that showed the ad — the same value for a click and an impression from one ad response — and it identifies the request behind each judged visit. {CAMPAIGN_ID} and {CAMPAIGN_NAME} identify the campaign, and {CREATIVE_SET_ID} the creative set that served. {AD_TYPE} and {AD_SIZE} describe the impression. All of these are on AppLovin’s table for website campaigns. They go on as standard query parameters; AppLovin’s launch checklist tells you to set tracking parameters on every landing page URL.
AppLovin’s FAQ says targeting is primarily handled by its model. Geography is the documented control: countries, and US states and metros you can deselect at campaign level. For app campaigns, the Campaign Management API also takes a platform per campaign and a language list per creative set. IP exclusion, OS-version, browser and carrier targeting are not documented.
Weighing a blocker for banner / display traffic? How ValidVisit compares to Adscore, TrafficGuard and Opticks.
See which publishers and placements send real buyers vs bots — every visit judged Valid or Invalid, worst first.
Join the waitlist with just your email · 7-day trial at launch
One script · no cookies · no device IDs · raw IP never stored