Seatext library / BotRefund evidence
How to Prevent Questionable Sessions from Wasting Your Ad Budget: A Step-by-Step Prevention Framework
Questionable sessions — bots, scrapers, click farms, and low-intent traffic — can consume 9–20% of paid clicks on Meta and Google. Prevent waste by auditing placement quality, adding client-side behavioral detection, preserving attribution before...
✓ Built for advertisers who need clear, refund-ready traffic evidence.
Questionable sessions drain budget when automated scripts, click farms, and low-intent traffic click your ads but never convert. Industry audits consistently place automated traffic between 9% and 20% of paid clicks on Meta and Google. The practical response is a layered workflow: audit placement-level quality signals, deploy client-side behavioral detection that captures forensic evidence per session, preserve attribution identifiers before any campaign changes, and use that evidence to file refund claims through each platform's own invalid-traffic channels. This article walks through each step, highlights the common mistake that makes the problem worse, and shows how to verify the fix is working.
What Counts as a Questionable Session
A questionable session is any paid click that does not represent a genuine prospect. The source pack identifies several categories that appear in Meta and Google campaigns:
- Automated bots and scrapers — scripts that crawl landing pages, click ads, and sometimes fill forms without human intent.
- Click farms — operations using real smartphones or emulators to click ads repeatedly, often bypassing IP-range filters because they use actual mobile hardware.
- Residential proxy botnets — malware on household devices that routes clicks through normal consumer IP addresses, hiding bot traffic inside legitimate regional traffic.
- Publisher-side fraud on Audience Network — third-party apps and sites in Meta's Audience Network that run bots to inflate clicks for publisher revenue. These placements historically show high click-through rates and near-instant bounce rates.
- Accidental or low-intent clicks — unintentional taps on mobile, or users who click but have no purchase intent.
Not every bad lead is a bot. A weak campaign can attract real people who are not ready to buy. Treating every unresponsive contact as fraud can make a team exclude a valuable audience. The distinction matters because the remedy differs: targeting adjustments help with low-intent humans, while detection and refund claims address non-human traffic.
Why Meta and Google Miss So Much Invalid Traffic
Both platforms run automated detection, but their systems operate primarily at the server level. Google's systems analyze rapid clicking, duplicate click signatures, known bad IP ranges (data centers, VPNs), and abnormal server-level patterns. Meta's built-in Invalid Traffic Reports and AdBlock Check similarly catch server-side patterns. However, advanced botnets — especially click farms on real devices and residential proxy networks — mimic legitimate traffic at the network layer. They use real browsers, real IPs, and human-like timing, so server-side filters often let them through.
Client-side behavioral detection closes this gap. By analyzing what happens inside the browser — mouse movement, scroll depth, form interaction timing, pointer tremor, input speed — it can distinguish human sessions from automated ones even when the IP and user-agent look clean. The source pack notes that server-side audits struggle with advanced botnets, while client-side audits analyze the visitor's browser behavior directly.
Step-by-Step Prevention Workflow
Follow this ordered sequence. Each step builds on the previous one; skipping steps weakens both prevention and refund evidence.
Step 1: Preserve Attribution Before Changing Anything
Before you adjust targeting, exclude placements, or pause campaigns, capture the click identifiers that tie each session to its source. On Meta, these are the fbc and fbp parameters (FBCLID). On Google, it's the gclid. If you change the campaign structure first, you lose the ability to map a questionable session back to the exact ad, ad set, placement, and creative that delivered it. The source pack's investigation workflow starts with: "Preserve attribution before changing the campaign — keep campaign, ad set, creative, placement, click identifiers."
Step 2: Audit Placement-Level Quality Signals
Pull a placement report in Meta Ads Manager (Breakdown → Placement) and a placement/URL report in Google Ads. Look for sharp lead-quality differences by placement, creative, audience expansion, device, or landing page. The source pack lists these as "Campaign patterns" worth investigating. Common red flags:
- Meta Audience Network placements with high CTR but near-zero time-on-site.
- Specific third-party apps or sites generating bursts of clicks that never scroll.
- Mobile placements where form submissions happen in under 3 seconds.
If a placement shows a consistent pattern of low engagement, exclude it. This is a targeting fix, not a detection fix — it stops paying for the traffic but does not recover past spend.
Step 3: Deploy Client-Side Behavioral Detection
Add a lightweight script to your landing pages that records per-session behavioral evidence. The source pack describes the signals BotRefund captures:
- Ghost click detection — clicks that happen without the natural sequence of human intent.
- Trap behavior (honeypots) — interactions with hidden or deceptive page elements that only bots trigger.
- Pointer behavior — robotic linear mouse movements, absence of human-like tremor, grid-aligned movement patterns.
- Speed behavior — superhuman input speed (under 1 millisecond), form completions faster than a person can type.
- Engagement behavior — absence of clicks or scrolling, sessions that stay too static.
- Session behavior — unnatural durations (too short, too long, or too uniform).
This detection runs in the browser, so it sees what server logs cannot. It produces a session-level evidence package — video replay, behavioral flags, click IDs — that you can attach to a refund claim.
Step 4: Correlate Detection Output with CRM Outcomes
Detection alone is not enough. Match flagged sessions to downstream results: disconnected phone numbers, invalid email domains, repeated addresses, unusual country-code concentrations (Contactability signals); leads arriving in short bursts, forms submitted immediately after landing, conversions at unusual hours (Timing signals); high reported lead count paired with no calls connected, demos booked, or qualified opportunities (CRM outcome signals). The source pack groups these as "Signals worth investigating." This correlation tells you which flagged sessions actually wasted budget versus which were false positives.
Step 5: File Evidence-Backed Refund Claims
Both Meta and Google offer refund mechanisms for invalid traffic, but they are not automatic. Google's Invalid Activity Credit system may issue credits automatically for some patterns, but many cases require a manual claim with evidence. Meta's process similarly requires a billing dispute with behavioral proof. The source pack notes: "Google's detection is sophisticated but far from perfect" and "the process is not automatic." Attach the client-side evidence package (video, behavioral flags, click IDs, correlation to CRM outcomes) to each claim. BotRefund reports an 83% approval rate across filed claims using this approach.
Step 6: Verify and Iterate
After exclusions and detection are live, monitor two metrics weekly: (1) the share of flagged sessions among paid clicks, and (2) the refund approval rate on submitted claims. A declining flagged-share suggests exclusions are working. A steady or rising approval rate suggests evidence quality is holding. If flagged-share stays high, revisit Step 2 — new placements or creative may be attracting fresh invalid traffic.
Common Mistake: Blocking Real Customers While Chasing Bots
The most frequent error is treating every unresponsive lead as fraud and layering aggressive IP blocks, geo exclusions, or audience restrictions. The source pack warns explicitly: "Not every bad lead is a bot, and that matters. Treating every unresponsive contact as fraud can make a team exclude a valuable audience." Real users on slow connections, users with privacy tools that strip click IDs, or users who simply aren't ready to buy will look suspicious in aggregate. Aggressive blocking shrinks your reachable market and can raise CPMs by reducing auction competition. The fix is evidence-based segmentation: use client-side behavioral data to separate non-human sessions from low-intent humans, then apply different remedies — refund claims for bots, creative or offer adjustments for low-intent humans.
Key Facts
| Metric | Value | Source |
|---|---|---|
| Automated traffic share of paid clicks (industry audits) | 9% – 20% | S2, S7 |
| BotRefund detection confidence | 99% | S2, S7 |
| Refund claim approval rate (BotRefund clients) | 83% | S2, S7 |
| Setup time for detection script | ~1 minute (one script tag) | S2, S7 |
| Ad-account access required | No | S2, S7 |
| Total recovered spend across clients | $100M+ | S2, S7 |
| Brands audited | 2,500+ | S2, S7 |
| Meta Audience Network default | Opt-in (advertisers included by default) | S3 |
| Click farm hardware | Real smartphones / emulators | S4 |
| Residential proxy botnet source | Malware on household devices | S4 |
| Server-side detection limitation | Struggles with advanced botnets | S5 |
| Google invalid activity types | Repeated clicks, bots, accidental taps, data-center IPs, impression fraud, competitor fraud | S6 |
How Client-Side Detection Changes the Evidence Game
Server-side logs give you IP, user-agent, referrer, and timestamp. Client-side detection gives you the behavior inside the session: mouse path, scroll depth, keystroke timing, focus events, and interaction with honeypot fields. This distinction is critical for refund claims. Ad platforms require evidence that the click was not a genuine user. A video replay showing a cursor moving in perfect straight lines at superhuman speed, filling a form in 0.8 seconds, and never scrolling — paired with the FBCLID or GCLID — is the kind of compliance-grade evidence that moves a claim from "denied" to "approved." The source pack emphasizes that BotRefund "builds compliance-grade evidence for every flagged click" and "negotiates refunds through the platforms' own invalid-traffic channels."
Client-side detection also protects your conversion pixels. When bots trigger conversion events (page views, form submits, purchases), they poison the pixel data that Meta and Google use to optimize targeting. The source pack states: "When these bots trigger conversion events on your pages, they poison your Meta Pixel data. This makes Meta's machine learning systems optimize targeting for bots rather than real buyers." Blocking or flagging those sessions at the browser level keeps your pixel clean.
When to Request Refunds and What Evidence Works
File a refund claim when you have:
- A cluster of sessions flagged by client-side detection with consistent behavioral anomalies.
- Correlated CRM outcomes showing those sessions produced no qualified leads, calls, or revenue.
- Preserved click IDs (FBCLID, GCLID) linking each session to a specific ad, placement, and time window.
- A clear narrative: "These 347 clicks on Placement X between Date A and Date B show robotic pointer behavior, sub-millisecond form fills, and zero scroll. They map to FBCLIDs [list]. Our CRM shows zero contactable leads from this cohort."
Do not file claims based on server-side signals alone (IP, user-agent, CTR). Platforms routinely reject those as insufficient. The source pack notes Google's automated systems catch some invalid activity but "the key question is how much of this activity Google actually catches — and the answer is less than you might think." Meta's process is similar. Evidence must be behavioral and session-specific.
Limitations and When This Advice Does Not Apply
- Low-volume campaigns — If you spend under $1,000/month, the fixed effort of setting up detection and filing claims may exceed recoverable amounts. The source pack's pricing tiers start at "Under $10,000/mo" for self-serve.
- Brand-awareness-only campaigns — If the goal is impressions, not clicks or conversions, invalid-click refunds are not the right lever. Focus on viewability and placement quality instead.
- Platforms without refund mechanisms — Some smaller ad networks do not offer invalid-traffic credits. Detection still helps you exclude bad placements, but recovery is not an option.
- First-party data restrictions — If your legal or compliance team prohibits any client-side script that records user behavior, you cannot deploy behavioral detection. Server-side filtering and placement exclusions become your only tools.
- Single-session attribution models — If your analytics only credit the last click and you cannot stitch multi-touch journeys, correlating flagged sessions to CRM outcomes becomes harder. You can still file claims, but the evidence narrative is weaker.
FAQ
How much of my ad budget is likely wasted on questionable sessions?
Industry audits consistently place automated traffic between 9% and 20% of paid clicks on Meta and Google. Your actual share depends on vertical, geos, placements, and whether you run Audience Network. Run a free bot audit to get your specific number.
Can I just exclude Meta Audience Network and solve the problem?
Excluding Audience Network removes a major source of publisher-side bot traffic, but it does not stop click farms, residential proxy botnets, or scrapers that hit your ads on Facebook and Instagram proper. It also reduces reach. Use exclusion as one layer, not the only layer.
Does Google automatically refund invalid clicks?
Google's automated systems issue some Invalid Activity Credits automatically, but they catch only a fraction of bot traffic — especially advanced botnets on real devices. For the rest, you must file a manual claim with behavioral evidence.
What is the difference between server-side and client-side bot detection?
Server-side looks at IP, headers, and user-agent in log files. It catches basic scrapers and known data-center ranges. Client-side runs in the browser and analyzes mouse movement, scroll, keystroke timing, and honeypot interactions. It catches advanced bots that look legitimate at the network layer.
Will adding a detection script slow down my landing page?
The source pack describes the script as "one script tag · ~1 minute" to add, with no ad-account access required. Modern detection scripts load asynchronously and are designed for minimal performance impact. Test your Core Web Vitals after installation.
How long do refund claims take?
Timelines vary by platform and claim complexity. Google credits often appear within a billing cycle. Meta disputes can take several weeks. The source pack does not specify exact timelines; plan for 2–8 weeks and keep evidence organized for follow-up.
Can I use this approach for TikTok, LinkedIn, or other platforms?
The behavioral detection principles apply anywhere bots click ads. However, refund mechanisms and click-ID formats differ by platform. The source pack covers Meta and Google specifically. Check each platform's invalid-traffic policy before investing in evidence collection.
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.