Meta Ads logoSocial
Social channel · judged Valid or Invalid

Which Meta Ads publishers send bot traffic?

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.

Just your email · no card · unsubscribe anytime · privacy policy

Not ready? Estimate your invalid clicks →
validvisit · meta-ads cut-list
Exclude the bad publisher in Meta Ads

The 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.

Where: Meta Brand Safety and Suitability Center → Publisher block lists → Create publisher block list → upload .csv/.txt (or tick publishers in Partner-publisher lists / Delivery reports → Add to publisher block list); applied for the business, an ad account or a campaign; affects apps in Audience Network, Facebook in-stream reels, ads on Facebook Reels, and Facebook and Instagram profile feed
Controls in Meta Ads’s campaign settings
✕ IP lists✓ OS✓ OS version✕ Browser✕ Browser version✓ Language✓ Device✓ Connection
6
Meta Ads macros mapped to report columns
2026-10-02
macros checked against Meta Ads’s own docs
no-hop
one script, nothing added to the click path
Valid / Invalid
a verdict on every visit
01 / SIGNAL

How bot traffic slips in through Meta Ads publishers.

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.

What to watch on Meta Ads

Audience Network Placement Breakdown

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.

Invalid Share by Ad Set

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.

Platform Split With {{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.

02 / VERDICTS

What Meta Ads lets you judge by.

Publisher / site / zone

Invalid share broken down by:

  • Site source {{site_source_name}}Where the ad ran: fb, ig, msg, th or an (Audience Network).
Placement / widget

Invalid share broken down by:

  • Placement {{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.

03 / ATTRIBUTION

How ValidVisit attributes Meta Ads traffic

Each Meta Ads macro maps to a normalized parameter, so every judged visit is pinned to the right campaign, creative and publisher.

validvisit · tracking url
Tracking URL for Meta Ads, ready for ValidVisit
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}}
Campaign ID
Meta Ads macro
{{campaign.id}}
Maps to
campaign_id
Identifies
campaign
Ad Set ID
Meta Ads macro
{{adset.id}}
Maps to
adset_id
Identifies
adset
Ad ID
Meta Ads macro
{{ad.id}}
Maps to
ad_id
Identifies
ad
Placement
Meta Ads macro
{{placement}}
Maps to
placement_id
Identifies
placement
Site source
Meta Ads macro
{{site_source_name}}
Maps to
publisher_id
Identifies
publisher
Click ID (fbclid)
Meta Ads macro
(auto-tagging)
Maps to
fbclid
Identifies
click

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 →

FAQ

Meta Ads traffic quality, answered.

Do I need to add UTM parameters, or does ValidVisit work directly with fbclid?

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 says it doesn’t charge for invalid traffic. What does ValidVisit add?

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.

Which Meta placements should I investigate first?

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.

How do I block specific apps or sites on Meta’s Audience Network?

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.

Does {{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.

Detect fraud on other social networks

Weighing a blocker for social traffic? How ValidVisit compares to ClickGUARD, Lunio and CHEQ.

placement 55171% invalid
placement 20923% invalid
placement 872% invalid

Find the bots in your Meta Ads spend.

See which publishers and placements send real buyers vs bots — every visit judged Valid or Invalid, worst first.

Just your email · no card · unsubscribe anytime · privacy policy

Join the waitlist with just your email · 7-day trial at launch

One script · no cookies · no device IDs · raw IP never stored