See which Facebook and Instagram placements drive bot clicks. Every visit judged by placement, ad set and fbclid, so you can exclude the worst inventory.
publisher in Meta AdsThe buyer compiles a TXT/CSV list (max 10,000 lines per list) of app store URLs, Facebook Page URLs and Instagram account URLs and uploads it as a publisher block list in the Meta Brand Safety and Suitability Center, then applies it to their ad accounts, which keeps their ads off those publishers across Audience Network apps, Facebook in-stream reels, ads on Facebook Reels and profile feeds.
On Meta Ads, one campaign is spread across placements on Facebook, Instagram, Messenger, Threads and Meta Audience Network. Audience Network extends Meta’s advertising beyond its own apps: publishers earn money by showing ads from Meta advertisers inside their apps. Meta passes an fbclid in the landing URL when someone clicks an ad on Facebook or Instagram, and its {{campaign.id}}, {{adset.id}} and {{placement}} URL parameters tie each judged visit back to the campaign, ad set and placement.
Meta says it filters invalid traffic before billing: advertisers don’t pay for impressions Meta determines to be invalid, and those impressions are excluded from reporting. For Audience Network it describes removing known and suspected non-human activity and suspected invalid human activity, and it also states that not all invalid activity is likely to be identified and removed. What is left over is what reaches your landing page.
Audience Network runs in other publishers’ apps in two groups Meta reports separately: native, banner and interstitial units, and rewarded video, which people watch in exchange for an in-app reward such as currency or items. With {{placement}} on the URL, each visit’s verdict is attributed to the value Meta fills in — audience_network_classic, audience_network_rewarded_video, facebook_feed, instagram_stories and so on — so the invalid share is read per placement rather than as a campaign average.
Filter your ValidVisit dashboard by the {{placement}} token and rank by IVT rate. Meta reports Audience Network as two values: audience_network_classic for native, banner and interstitial, and audience_network_rewarded_video. If either carries a higher invalid share than your Feed or Stories values, unchecking it under Manual placements in Meta Ads Manager is usually the fastest lever on wasted spend.
Use the {{adset.id}} dimension to compare invalid share across ad sets targeting similar audiences. Placements are chosen in the ad set, so an ad set with a disproportionate share of invalid visits suggests the placements it is served on, not the creative, are the cause.
{{site_source_name}}Meta also offers {{site_source_name}}, which fills in fb, ig, msg, th or an (Audience Network). Add it as an extra URL parameter when you want the invalid share by platform before drilling into individual placements.
Invalid share broken down by:
{{site_source_name}}Where the ad ran: fb, ig, msg, th or an (Audience Network).Invalid share broken down by:
{{placement}}Per-click id: Meta Ads passes a unique click id, and ValidVisit stores it with each visit, so a verdict traces back to the click in Meta Ads’s own reports.
Compare bot & invalid-traffic breakdown across every ad network →See your own Meta Ads sub-sources judged this way.
Each Meta Ads 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=meta-ads&utm_medium=social&vv_campaign_id={{campaign.id}}&vv_adset_id={{adset.id}}&vv_ad_id={{ad.id}}&vv_placement_id={{placement}}&vv_publisher_id={{site_source_name}}| Token | Meta Ads macro | Maps to | Identifies |
|---|---|---|---|
| Campaign ID | {{campaign.id}} | campaign_id | campaign |
| Ad Set ID | {{adset.id}} | adset_id | adset |
| Ad ID | {{ad.id}} | ad_id | ad |
| Placement | {{placement}} | placement_id | placement |
| Site source | {{site_source_name}} | publisher_id | publisher |
| Click ID (fbclid) | (auto-tagging) | fbclid | click |
{{campaign.id}}{{adset.id}}{{ad.id}}{{placement}}{{site_source_name}}(auto-tagging)Macros checked against Meta Ads’s own documentation on 2026-10-02. Meta Ads docs
The verdict works the same way on every network. ValidVisit never changes your Meta Ads account: you make the exclusion there yourself. How the verdict works →
ValidVisit captures Meta’s fbclid on landing, so no change to your ad URLs is needed for visit-level verdicts. For richer breakdowns, add {{campaign.id}}, {{adset.id}} and {{placement}} in the URL parameters field under Tracking when you create the ad in Meta Ads Manager. They add the dimensions that matter most for Audience Network analysis: placement-level IVT rates rather than campaign averages.
Meta’s filtering protects billing: it states that it does not charge for invalid impressions or other invalid traffic it detects, and that refunds are decided case by case at its own discretion. Neither gives you a per-visit record by placement. ValidVisit’s record for each visit — a Valid or Invalid verdict, the placement, the campaign and ad set — is data you own, and it supports placement and ad-set decisions in Ads Manager regardless of any credit Meta may or may not issue.
The two Audience Network values, audience_network_classic and audience_network_rewarded_video, because that inventory sits in third-party apps outside Meta’s own surfaces. After that, look at any placement where the {{placement}} breakdown shows an invalid share well above your account average; those are the candidates to uncheck under Manual placements in the ad set. Meta notes that excluding a placement in an ad set turns Advantage+ placements off.
Upload a publisher block list in the Meta Brand Safety and Suitability Center (Publisher block lists → Create publisher block list): a .csv or .txt of app store URLs, Facebook Page URLs and Instagram account URLs, up to 10,000 lines per list. You can also tick publishers in the Center’s delivery reports and choose Add to publisher block list. A list can be applied for the business, an ad account or a single campaign, and covers apps in Audience Network, Facebook in-stream reels, ads on Facebook Reels, and Facebook and Instagram profile feed.
{{placement}} work on every Meta ad?Meta lists the placements it supports for {{placement}}: Audience Network, Facebook Feed, in-stream reels, Marketplace and right column, Instagram Feed and Stories, Messenger and Threads. It also notes that dynamic URL parameters are not supported for ads in collection format on Instagram placements.
Weighing a blocker for social traffic? How ValidVisit compares to ClickGUARD, Lunio and CHEQ.
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