Seatext library / BotRefund evidence
How to Report Bot Activity to Ad Platforms for Refunds: A Step-by-Step Guide
To report bot activity for refunds, collect client-side evidence like IP logs, GCLID parameters, behavioral recordings, and conversion timestamps, then submit a formal invalid click report through Google Ads Click Quality team or Meta's...
✓ Built for advertisers who need clear, refund-ready traffic evidence.
If bots are clicking your ads, you can get money back — but only if you prove the traffic was automated, not just low-quality. Google Ads and Meta both have formal refund processes for invalid clicks, but they require specific evidence that their own filters missed. The short version: install client-side tracking that captures behavioral proof (mouse movements, scroll depth, timing), export logs tied to click IDs (GCLID for Google, fbclid for Meta), and file a structured dispute with the platform's billing or traffic quality team.
What counts as bot activity that qualifies for refunds
Not every bad click qualifies. Google officially categorizes invalid clicks into three segments they agree to credit back if you provide sufficient proof: competitor click activity, publisher click fraud, and bot traffic & web scrapers. Meta similarly distinguishes between normal lead-quality variation and automated invalid activity — like form submissions with disconnected numbers, identical field structures, or conversions with zero meaningful page engagement.
The key distinction is evidence. A weak campaign attracts real people who aren't ready to buy. Bot traffic leaves repeatable technical patterns: superhuman input speed (under 1ms), robotic linear mouse movements, absence of humanlike mouse tremor, grid-aligned movement patterns, and sessions with no scrolling or field corrections. Platforms accept these behavioral fingerprints as proof when correlated with click IDs.
Evidence you need to collect before filing
Platforms reject claims built on analytics screenshots alone. You need client-side behavioral logs tied to each paid click. For Google Ads, that means GCLID parameters captured at landing, plus session recordings showing the absence of human behavior. For Meta, capture fbclid or click IDs from Ads Manager alongside form submission timestamps and field interaction data.
- Click ID logs: Every paid visit carries a parameter (GCLID, fbclid, msclkid). Store these with timestamps.
- Behavioral recordings: Mouse paths, scroll depth, dwell time, field focus events — proof the visitor didn't behave like a human.
- Technical fingerprints: Browser automation flags (headless Chrome detection, webdriver property, iframe context mismatches), residential proxy indicators, and device fingerprint anomalies.
- Conversion correlation: Show that the click ID led to a conversion event (form submit, purchase) but the session had zero meaningful engagement.
- Historical baselines: Compare bot periods against clean periods to show the spike is abnormal, not a targeting change.
BotRefund captures 106 independent behavioral checks — including scrollbar width leaks, clean context iframe mismatches, and biometric interaction patterns — and bundles them into exportable reports that ad reps accept. One case study showed a neobank recovering $140,000 with a 14% average bot click rate documented through this method.
Step-by-step: Reporting to Google Ads
- Preserve attribution before changing anything. Keep campaign, ad set, creative, placement, and click identifiers intact. Pausing or editing campaigns destroys the evidence trail.
- Export GCLID-level session data. Pull every session tied to a GCLID from your tracking. Filter for sessions with behavioral anomalies: under 1ms interactions, zero scroll, linear mouse paths, or missing tremor.
- Build the invalid click report. Use Google's Click Quality Investigation Form. Include: date range, campaign IDs, list of GCLIDs with timestamps, behavioral evidence summary, and estimated wasted spend.
- Attach client-side proof. Upload session recordings or behavioral logs showing the automated patterns. Google's team reviews these manually — they don't run automated checks on your evidence.
- Follow up with your Google rep. If you have a dedicated representative, share the case ID. Escalation speeds review.
- Track the outcome. Google issues billing credits, not cash refunds. Credits apply to future spend. Document the credit amount and date for your records.
Google's automated filters frequently miss modern residential proxy networks and competitor click fraud. Filing manually is the primary path to recovering those dollars.
Step-by-step: Reporting to Meta (Facebook/Instagram)
- Run a structured audit first. Compare Ads Manager data, website sessions, and CRM outcomes. Look for sharp lead-quality differences by placement, creative, audience expansion, device, or landing page.
- Document the signals. Contactability issues (disconnected numbers, invalid email domains), timing anomalies (bursts of leads, immediate form submits, unusual hours), session behavior (no scrolling, no field corrections, uniform click paths), and CRM outcomes (high lead count, zero calls connected or demos booked).
- Export click-level data with fbclid. Match each suspicious lead to its originating click ID and session recording.
- Submit through Meta's traffic quality process. Use the Business Help Center to file an invalid traffic dispute. Provide: campaign IDs, date range, fbclid list, behavioral evidence, and CRM outcome mismatch.
- Request a manual review. Automated systems often reject initial claims. Ask for human review with your evidence package.
- Monitor for credit issuance. Meta issues ad credits for approved claims. Track and reconcile against your original spend.
Meta campaigns reach people across Facebook, Instagram, and partner inventory at high volume — valuable reach that also attracts accidental interactions, low-intent traffic, automated browsing, and deliberately fraudulent submissions.
Common mistakes that get claims denied
- Relying only on platform analytics. Google Analytics and Meta Ads Manager show aggregates, not per-click behavioral proof. They can't distinguish a fast human from a bot.
- Changing campaigns before exporting evidence. Pausing, retargeting, or editing UTM structures breaks the click-ID chain.
- Submitting aggregate summaries without click IDs. Platforms need GCLID/fbclid lists to verify each charge.
- Confusing low intent with automation. Real people who bounce fast aren't bots. You need behavioral fingerprints — missing tremor, linear paths, superhuman speed — not just short sessions.
- Missing the lookback window. Google allows refund requests for spend dating back to 2017 in some cases, but Meta's window is tighter. File promptly.
- No CRM outcome correlation. High lead count with zero qualified opportunities is a stronger signal than bounce rate alone.
How BotRefund automates the evidence collection
Manual evidence gathering is time-consuming and easy to mess up. BotRefund adds a single script to your site (about one minute, no credit card) that runs 106 independent behavioral checks on every visit. Each check — ghost click detection, honeypot trap interactions, robotic linear mouse movements, absence of humanlike mouse tremor, superhuman input speed, grid-aligned movement patterns, engagement absence, unnatural session durations — produces an independent evidence signal. The system cross-checks signals against browser, network, and device data, then weighs the complete pattern through an AI prediction model that identifies bot vs. human with 99% accuracy.
When you need to file a refund claim, you export a report tying each suspicious click ID to its behavioral evidence package. The report includes session recordings, technical fingerprints, and a summary formatted for Google Click Quality or Meta traffic quality teams. One financial technology client recovered $1.2M in ad spend; a logistics SaaS recovered $45,000; a healthcare CRM recovered $58,000. The average recovery across 20 verified case studies spans industries from neobanking to cybersecurity.
The free tier includes a live bot audit of your site so you can see the evidence before committing.
Limitations and when refunds aren't possible
- Platform discretion is final. Google and Meta decide what counts as invalid. They may reject claims even with evidence if they classify the traffic as "low quality" rather than "invalid."
- Credits, not cash. Refunds come as ad credits for future spend. If you're pausing ads, the credit has limited value.
- Lookback limits. Platforms restrict how far back you can claim. Google's standard window is shorter than the 2017 date mentioned in some cases — verify current policy.
- Attribution gaps. If your tracking doesn't capture click IDs on landing (e.g., redirects strip parameters), you can't tie evidence to specific charges.
- Privacy tools and corporate networks. VPNs, privacy browsers, and enterprise security can mimic bot signals. BotRefund treats anomalies as evidence, not verdicts, but platforms may still flag them as inconclusive.
- No guarantee of approval. Past case studies show recoveries, but each claim is evaluated independently. The 83% success rate mentioned on the homepage reflects customers who successfully get a refund, not a guarantee.
Key facts
| Metric | Detail | Source |
|---|---|---|
| Bot click share of budget | Up to 20% of Google and Meta ad budget | S2 |
| Google refund lookback | Spend dating back to 2017 (case-dependent) | S2 |
| Behavioral checks per visit | 106 independent signals | S4, S6 |
| Detection accuracy | 99% via AI cross-check | S4, S6 |
| Setup time | About one minute, no credit card | S2 |
| FinTrust recovery | $140,000 refunded, 14% bot click rate | S5 |
| Visa recovery | $1,200,000 refunded | S1 |
| LogiCore recovery | $45,000 refunded | S1 |
| MedPass recovery | $58,000 refunded | S1 |
| Customer refund success rate | 83% of customers successfully get a refund | S2 |
FAQ
How long does a Google Ads refund request take?
Typically 2-6 weeks for the Click Quality team to review. Having a dedicated Google rep can accelerate it. Submit complete evidence upfront to avoid back-and-forth delays.
Can I get a cash refund instead of ad credits?
No. Both Google and Meta issue billing credits applied to future ad spend. If you're stopping advertising, the credit has no cash value.
What if my tracking doesn't capture GCLID or fbclid?
You'll struggle to prove which specific clicks were invalid. Fix tracking first: ensure auto-tagging is on in Google Ads, and that your landing pages preserve URL parameters through redirects. Without click IDs, platforms can't match your evidence to billed clicks.
Does BotRefund work with platforms other than Google and Meta?
The source pack focuses on Google Ads and Meta (Facebook/Instagram) refund processes. Other platforms (Microsoft Ads, LinkedIn, TikTok) have their own invalid traffic policies — check each platform's help center for their specific dispute process.
How much ad spend do I need for this to be worth it?
BotRefund's pricing tiers start at under $10,000/mo ad spend. The free bot audit works at any spend level. If you're spending under $1,000/mo, manual evidence gathering may be more cost-effective than a tool subscription.
What's the difference between invalid clicks and low-quality traffic?
Invalid clicks are automated or fraudulent (bots, click farms, competitor scripts). Low-quality traffic is real humans with low intent (accidental clicks, mismatched targeting). Platforms refund invalid clicks; they don't refund low-quality traffic. Behavioral evidence distinguishes the two.
Can I file a refund request without a tool like BotRefund?
Yes, but you need to build equivalent client-side tracking yourself: capture click IDs, record mouse/keyboard/touch events, detect automation fingerprints, and export per-session reports. Most teams find this engineering effort exceeds the tool cost.
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.