Seatext library / BotRefund evidence
How to Use BotRefund to Contact Meta for Ad Refunds: Evidence, Reports, and the Claim Process
BotRefund does not contact Meta on your behalf. Instead, it audits your Meta ad traffic, builds refund-ready reports with click IDs, session recordings, and signal-by-signal reasoning, and gives you (or your agency) the evidence...
✓ Built for advertisers who need clear, refund-ready traffic evidence.
If you're looking for a button inside BotRefund that sends a message straight to Meta, it doesn't exist. BotRefund is an evidence layer, not a support ticketing system. What it does is automate the hard part: proving that a chunk of your Meta spend went to bots, scrapers, or accidental clicks, and packaging that proof in the exact format Meta's refund reviewers expect.
What BotRefund actually does for Meta campaigns
BotRefund installs a lightweight script on your landing pages. As visitors arrive from Meta ads, it collects over 100 behavioral, browser, hardware, network, and attribution signals — things like mouse tremor, scroll depth, click timing, scrollbar width leaks, and iframe context consistency. Each visit gets a session-level verdict with a plain-English explanation. When the system flags a session as automated with 99% confidence, it captures the Meta click ID (fbclid), campaign hierarchy, placement, timestamp, and a session replay.
Those flagged sessions are then assembled into a refund-ready report. The report includes:
- Click IDs and campaign/ad set/ad identifiers for every suspicious session
- Signal-by-signal reasoning (e.g., "superhuman input speed <1ms", "grid-aligned mouse movement", "absence of humanlike mouse tremor")
- Session recordings you can watch
- A summary table Meta's review team can scan in minutes
You download that report and attach it when you open an invalid-traffic case in Meta's Business Help Center or reply to a billing dispute. BotRefund's team can also review your draft claim, suggest wording, and help you respond if Meta asks for clarification — but the actual submission clicks are yours.
Step-by-step: from install to Meta claim
- Add the BotRefund script to every landing page that receives Meta traffic. Use Google Tag Manager, a header include, or the platform-specific snippet. The script loads asynchronously and does not affect page speed scores.
- Verify data flow in the BotRefund dashboard. Within a few hours you'll see live sessions, each tagged with the fbclid, campaign, placement, and device. Confirm that click IDs are populating — if they're missing, check that your Meta ads use the "Add UTM parameters" or "Add click ID" setting.
- Run a free bot audit (available from the dashboard). This gives you a baseline: percentage of bot traffic by campaign, placement, and device, plus a sample of flagged sessions with recordings.
- Let the audit run for 7–14 days across a full weekly cycle. BotRefund's AI needs enough volume to separate real anomalies from privacy tools, corporate proxies, or unusual but human devices.
- Generate the refund-ready report. In the dashboard, select the date range, filter to "High confidence (99%)" sessions, and click "Export for Meta claim." The download is a PDF + CSV bundle formatted to Meta's evidence guidelines.
- Open a Meta invalid-traffic case. In Meta Business Help Center → Billing → Advertising charges → Dispute a charge → Invalid traffic. Attach the BotRefund PDF and CSV. In the description field, reference the report's case ID and note: "Evidence collected via client-side behavioral audit (100+ signals, 99% confidence threshold). Click IDs and session replays included."
- Track the case. Meta typically responds in 5–10 business days. If they request more detail, BotRefund's support team can help you pull additional session replays or signal breakdowns for the specific click IDs Meta questions.
What the evidence package contains (and why Meta accepts it)
Meta's refund reviewers look for three things: a clear link between the click ID and the suspicious session, behavioral proof that the session was non-human, and a volume threshold that makes the refund worthwhile. BotRefund's report is built around those requirements.
| Report section | What it shows | Why it matters to Meta |
|---|---|---|
| Click ID index | Every fbclid tied to a flagged session, with campaign/ad set/ad/placement | Lets Meta locate the exact charge in their billing ledger |
| Signal matrix | 100+ columns: pointer behavior, speed behavior, trap behavior, engagement behavior, session behavior, network context, device consistency | Demonstrates multi-vector corroboration, not a single heuristic |
| Session replays | Video-like playback of mouse, scroll, keystroke, and focus events | Human reviewers can watch 10–20 replays and confirm the pattern |
| Summary statistics | Bot rate by placement, creative, audience expansion, device, hour of day | Helps Meta see if the problem is systemic (e.g., Audience Network) or isolated |
| Methodology appendix | Plain-English description of each signal, false-positive safeguards, and the 99% confidence threshold | Pre-empts "how do we know this isn't a privacy tool?" questions |
The key distinction: Meta's own automated filters catch data-center IPs, rapid-click patterns, and known bad actors at the server level. They miss bots that run on residential IPs, mimic human timing, and execute JavaScript. BotRefund's client-side signals catch that second layer — and the report format mirrors the evidence checklist Meta's own traffic-quality team uses internally.
Where BotRefund's role ends and yours begins
- BotRefund does: collect evidence, score sessions, build the report, advise on claim wording, help you respond to Meta follow-ups.
- BotRefund does not: log into your Meta account, click "Submit" on the dispute form, guarantee a refund, or negotiate by phone with Meta reps (Meta does not offer phone negotiation for invalid-traffic claims).
- You do: attach the report, hit submit, monitor the case ID, and forward any Meta requests for clarification to BotRefund if you want help drafting the reply.
This division exists because Meta's policy requires the account holder (or an authorized admin on the Business Manager) to file the claim. No third party can submit on your behalf.
Common mistakes that delay or kill a Meta refund claim
| Mistake | What happens | Fix |
|---|---|---|
| Submitting a raw CSV without the PDF summary | Reviewer sees 5,000 rows and closes the case as "insufficient explanation" | Always include the one-page PDF executive summary with bot rate, estimated waste, and top 3 placements |
| Claiming "all traffic from Placement X is bot" | Meta checks a sample, finds 20% human, denies the whole claim | Filter to 99% confidence sessions only; let the report show the exact click IDs |
| Changing campaign targeting before exporting the report | Attribution breaks; fbclids no longer match live campaigns | Export the report first, then pause or adjust campaigns |
| Using a date range that includes the 7-day attribution window after campaign pause | Meta's ledger still shows charges; your report shows zero sessions | Align the report date range to the billing period you're disputing |
| Ignoring Meta's request for "server-side logs" | Case stalls | BotRefund's report includes a methodology appendix that satisfies this; attach it again with a one-line note |
How long it takes and what success looks like
Across 2,500+ audits, 83% of BotRefund clients recover funds from Google and Meta. The typical timeline:
- Days 1–3: Script live, data flowing
- Days 3–14: Audit window (longer if daily spend is under $500)
- Day 15: Report generated, claim filed
- Days 20–30: Meta responds (credit issued, partial credit, or request for more info)
- Days 30–45: If partial, one round of back-and-forth with supplemental sessions
Credits appear as a line item in your Meta billing summary ("Invalid activity credit"). They offset future spend; they are not wired to your bank account.
Key facts
| Fact | Detail | Source |
|---|---|---|
| Bot detection confidence threshold | 99% (session-level, multi-signal corroboration) | S2 |
| Signals analyzed per session | 110+ behavioral, browser, hardware, network, and attribution signals | S2 |
| Client refund recovery rate (Google + Meta) | 83% of audited clients recover funds | S2 |
| Total audits completed | 2,500+ | S2 |
| Report format | PDF executive summary + CSV click-ID index + session replays + methodology appendix | S2 |
| Meta claim submission | Account holder files via Business Help Center → Billing → Dispute a charge → Invalid traffic | S1, S2 |
| Evidence Meta reviewers expect | Click IDs, campaign hierarchy, behavioral proof, volume summary, methodology | S1, S2 |
| Typical Meta response time | 5–10 business days | S1, S2 |
| Credit form | Applied to ad account balance, not cash refund | S1, S6 |
When BotRefund won't help (limitations)
- Spend too low: If monthly Meta spend is under $1,000, the audit may not collect enough flagged sessions to clear Meta's minimum-volume threshold for a manual review.
- No landing page control: If you send traffic to a third-party form (Typeform, Google Form, Meta Instant Form) where you cannot install the script, BotRefund cannot see the session.
- Lead-quality issues that aren't bots: Real humans who fill forms with fake data, competitors manually clicking, or low-intent users from broad targeting — these are not invalid traffic under Meta's policy and won't generate a refund.
- Historical claims only: BotRefund cannot retroactively audit past months. It only sees traffic after the script is installed.
- Meta policy changes: Meta's invalid-traffic definitions and refund thresholds can change. BotRefund updates its report format accordingly, but past success does not guarantee future approval.
Terminology quick reference
- fbclid: Facebook Click Identifier — the unique query parameter Meta appends to your landing page URL (e.g., ?fbclid=IwAR123...). Required to link a session to a specific charged click.
- Invalid traffic (Meta definition): Clicks or impressions from automated tools, bots, accidental taps, known data-center IPs, or competitor click fraud. Not the same as "low-quality leads."
- Pixel poisoning: When bot conversions fire your Meta Pixel, corrupting the optimization model so it bids more for bot-like audiences.
- Refund-ready report: A packaged evidence bundle (PDF + CSV + replays) structured to match Meta's internal review checklist.
- 99% confidence: BotRefund's AI verdict threshold. Sessions below this are labeled "suspicious" but excluded from the refund claim to avoid false positives.
FAQ
Does BotRefund file the Meta claim for me?
No. Meta requires the Business Manager admin to submit the dispute. BotRefund provides the evidence package and can review your draft submission before you hit send.
What if Meta rejects the claim?
BotRefund's team will review the rejection reason, pull additional session replays or signal breakdowns for the specific click IDs Meta questioned, and help you file a one-time appeal with supplemental evidence.
How much does BotRefund cost?
Pricing is tiered by monthly ad spend. The entry tier covers up to $10,000/mo across Google and Meta. Enterprise plans add dedicated support, custom signal rules, and API access. A free bot audit is available before any commitment.
Can I use BotRefund evidence for a Google Ads claim at the same time?
Yes. The same script captures gclid (Google Click Identifier) alongside fbclid. The dashboard lets you generate separate refund-ready reports for each platform.
Will the script slow down my landing pages?
The script loads asynchronously, is under 30 KB gzipped, and has no measurable impact on Core Web Vitals in standard tests.
What if I use a headless CMS or single-page app?
BotRefund works with React, Vue, Next.js, and similar frameworks. The script initializes on each route change and captures the fbclid from the URL or data layer.
Do I need to keep the script running after I get the refund?
Recommended. Bot traffic patterns shift when campaigns change, new placements launch, or Meta rolls out new ad formats. Continuous monitoring protects future spend and keeps your Pixel clean.
Next step: run the free audit
Before you spend time on a Meta claim, know whether you have a case. Install the script, let it run for a week, and review the free audit. If the bot rate is under 2%, a claim likely won't clear Meta's threshold. If it's 5–20% (common on Audience Network and expanded audiences), the report will be strong enough to file.
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.