Seatext library / BotRefund evidence
How to Exclude Poor-Quality Traffic in Meta Ads: A Practical Investigation and Suppression Workflow
Poor-quality traffic in Meta ads shows up as leads that never convert, contacts you can't reach, or sudden spikes from specific placements. Start by auditing attribution data across Ads Manager, your website, and CRM...
✓ Built for advertisers who need clear, refund-ready traffic evidence.
What counts as poor-quality traffic on Meta
Meta campaigns reach people across Facebook, Instagram, and the Audience Network at high volume. That reach brings accidental clicks, low-intent browsing, automated scripts, and deliberate fraud. A fake lead might be generated to earn an affiliate payout, inflate a publisher's metrics, scrape an offer, or simply waste a sales team's time. Not every bad lead is a bot, and treating every unresponsive contact as fraud can make you exclude a valuable audience. The key is evidence: real but unready prospects behave differently from automated submissions.
Signals worth investigating before you exclude anything
Before changing targeting or requesting refunds, run a structured audit that compares ad-platform data, website sessions, and CRM outcomes. The following patterns suggest automated or invalid activity rather than normal lead-quality variation:
- Contactability: disconnected numbers, invalid email domains, repeated addresses, or an unusual concentration of one country code.
- Timing: several leads arriving in short bursts, forms submitted immediately after landing, or conversions concentrated at unusual hours.
- Session behavior: no scrolling, no field corrections, uniform click paths, and no meaningful time on the offer page.
- Campaign patterns: a sharp lead-quality difference by placement, creative, audience expansion, device, or landing page.
- CRM outcome: a high reported lead count paired with no calls connected, demos booked, qualified opportunities, or repeat engagement.
These signals come from a practical investigation framework used to separate normal variation from automated and invalid activity [S1].
Step-by-step investigation workflow
- Preserve attribution before changing the campaign. Keep campaign, ad set, creative, placement, and click identifiers intact so you can trace each lead back to its source.
- Export Ads Manager lead data with placement, device, and audience breakdowns.
- Match leads to website sessions using click IDs (fbclid) and timestamps. Look for the behavioral signals above: zero scroll, instant submit, identical field structures.
- Cross-reference CRM outcomes. Tag each lead as contacted, qualified, or dead. Calculate contact and qualification rates per placement and audience.
- Identify the worst offenders. Placements or audiences with high lead volume but near-zero qualification rates are candidates for exclusion.
- Apply exclusions in Ads Manager. Use placement exclusions (e.g., Audience Network, Reels, in-stream video) and audience exclusions (e.g., existing customers, low-intent lookalikes) at the ad-set level.
- Suppress conversion events for confirmed bot traffic. If client-side detection confirms automated browser signals, stop firing the Meta Pixel conversion event for those sessions so the optimization algorithm doesn't learn from them.
- Verify the change. After 7-14 days, re-run the CRM match. Qualification rates should rise; cost per qualified lead should fall. If they don't, revisit step 4 — you may have excluded a real but noisy audience.
Technical detection: client-side behavioral signals
Server-side logs (IP, user-agent, headers) catch basic scrapers but miss advanced botnets that rotate residential proxies and mimic human headers. Client-side audits analyze the visitor's browser behavior in real time. BotRefund uses 106 independent checks across categories such as:
- Click behavior: ghost clicks (activity without human intent sequence), honeypot trap interactions (bots responding to hidden elements).
- Pointer behavior: robotic linear mouse movements, absence of humanlike tremor, grid-aligned movement patterns.
- Speed behavior: superhuman input speed (<1ms).
- Engagement behavior: absence of clicks or scrolling, unnatural session durations (too short, too long, or too uniform).
- Evasion traps: clean context iframe checks that reveal automation tools patching or hiding browser APIs.
- Biometric leaks: scrollbar width mismatches that real browsing sessions don't normally create.
Each signal is independent evidence, not a verdict. The system cross-checks signals against browser, network, device, and behavior data, then weighs the complete pattern with an AI model that identifies bot vs. human visits with 99% accuracy [S2][S4][S8].
Using Meta's built-in exclusion controls
Meta Ads Manager lets you exclude placements and audiences at the ad-set level. Common exclusions for lead-quality campaigns:
- Placement exclusions: Audience Network (often high bounce, low intent), Facebook In-Stream Video, Reels, Messenger Inbox.
- Audience exclusions: existing customers (upload CRM list), recent converters, low-intent lookalikes (1-2% instead of 10%), geographic regions with high fraud rates.
- Advantage+ settings: turn off Advantage+ Placements and Advantage+ Audience when you need strict control; they expand delivery to inventory you can't individually exclude.
Apply exclusions after your audit identifies the specific placements or audiences driving the poor-quality leads. Blanket exclusions can shrink reach and raise CPMs unnecessarily.
Stopping pixel poisoning and recovering budget
When bot traffic fires your Meta Pixel conversion events, the optimization algorithm learns to find more bots. This "pixel poisoning" raises customer acquisition costs and lowers ROAS. Client-side detection lets you suppress the conversion event for confirmed automated sessions so the pixel only trains on verified humans [S3].
If you have evidence of invalid traffic, you can request refunds from Meta. The process mirrors Google's invalid activity credits: automated systems catch some fraud, but advertisers who submit forensic evidence (behavioral logs, video proof, click IDs) recover more. BotRefund clients average an 83% refund approval rate across Google and Meta billing disputes, with typical recovery of 14-20% of ad spend [S2][S6].
Limitations and when this advice doesn't apply
- Brand awareness campaigns optimizing for reach or video views: lead-quality signals don't apply; use viewability and brand-lift studies instead.
- Very small budgets (<$1,000/mo): statistical noise dominates; exclusions may remove real signal.
- Single-placement campaigns (e.g., only Facebook Feed): placement exclusions aren't an option; focus on audience exclusions and creative qualification.
- Privacy-compliant regions (GDPR, CCPA): client-side detection must respect consent; some behavioral signals require explicit permission.
- Offline conversion imports without click IDs: you can't trace CRM outcomes back to specific placements without fbclid or similar identifiers.
Key facts
| Metric | Value | Source |
|---|---|---|
| Bot click share of Google/Meta ad budget | Up to 20% | S2, S7 |
| BotRefund refund approval rate | 83% | S2 |
| BotRefund detection accuracy | 99% | S4, S8 |
| Independent behavioral checks | 106 | S4, S8 |
| FinTrust case study: ad spend refunded | $140,000 | S6 |
| FinTrust case study: bot click rate | 14% | S6 |
| FinTrust case study: conversion rate increase | +18% | S6 |
| Setup time for BotRefund | ~1 minute | S2, S7 |
FAQ
How do I know if my Meta leads are bots or just unqualified humans?
Check for the behavioral signals above: instant form submit, no scroll, identical field patterns, bursts at odd hours. Real unqualified humans still scroll, hesitate, correct typos, and spend variable time on page. Bots often don't.
Can I exclude Audience Network without losing volume?
Yes. Audience Network often delivers cheap clicks with high bounce rates and low lead quality. Excluding it typically raises CPM but lowers cost per qualified lead. Test with a 50/50 split before full exclusion.
Will excluding placements hurt my algorithm's learning?
Short term, yes — fewer conversions feed the model. Medium term, the model learns from higher-quality conversions and finds more like them. Suppress bot conversion events instead of deleting them to keep volume while improving signal.
How long should I wait after exclusions to evaluate results?
7-14 days or at least 50-100 qualified leads, whichever comes first. Lead cycles vary; B2B may need 30 days.
Do I need a third-party tool to detect bots, or does Meta catch them?
Meta's automated systems catch some invalid traffic and issue credits automatically, but they miss advanced botnets using residential proxies and human-like behavior. Client-side behavioral detection catches what server-side filters miss.
What's the difference between server-side and client-side bot detection?
Server-side looks at IP, headers, and request patterns. Client-side runs in the visitor's browser and analyzes mouse movement, scroll behavior, input speed, and browser API integrity. Client-side catches bots that pass server-side checks.
Can I get refunds for past bot traffic?
Yes. Meta and Google allow refund claims for invalid activity within their lookback windows (typically 60-90 days, sometimes longer with evidence). Forensic behavioral logs and video proof strengthen claims.
Further reading and comparison sources
These external sources provide additional context for evaluating the topic. Their inclusion is not an endorsement.
Learn more
Visit the website for more information.