Seatext library / BotRefund evidence
How to Document Evidence for a Meta Invalid Traffic Review
Collect repeatable signals, join Meta, site, and CRM data, and package the findings in a clear packet. Follow an end‑to‑end evidence‑gathering process that shows why the traffic is invalid, how thresholds affect the analysis,...
✓ Built for advertisers who need clear, refund-ready traffic evidence.
To document evidence for a Meta invalid traffic review, gather repeatable signals that prove clicks are not from real people, join the data from Meta, your website, and your CRM, and package the results in a concise packet for Meta’s review team. The process consists of four stages: signal identification, data collection, evidence synthesis, and verification before submission.
Process summary: Identify signal types (contactability, timing, session behavior, campaign patterns, CRM outcome). Export raw data from Meta Ads Manager, website analytics, and CRM. Join the three sources on the click identifier (fbclid or similar). Apply threshold rules to flag suspicious leads. Summarize the flagged leads, calculate wasted spend, and run a sanity‑check sample before sending the packet to Meta.
Business impact of invalid traffic on Meta campaigns
Invalid traffic inflates cost per lead and skews conversion metrics. According to BotRefund, bot clicks can steal up to 20 % of your Google and Meta ad budget [S2]. When Meta reports a stable CPL, the sales team may still see a high volume of unreachable contacts, duplicate messages, or leads that never move forward. This mismatch leads to wasted spend, lower return on ad spend (ROAS), and misinformed optimization decisions.
For agencies managing multiple client accounts, the impact multiplies. A single client’s bot‑inflated spend can erode agency margins and damage trust. Small advertisers may not have the budget to absorb a 20 % loss, making early detection essential.
Evidence‑collection thresholds: trade‑offs and decision criteria
Thresholds turn raw signals into actionable flags. Setting a very low threshold (e.g., flagging any form submit under 5 seconds) catches most bots but also generates false positives, increasing review effort. A higher threshold (e.g., under 1 second) reduces noise but may miss slower bots.
BotRefund’s detection engine uses over 100 independent checks, including scroll‑depth, pointer linearity, and super‑human input speed (<1 ms) [S2]. When you design your own thresholds, consider these factors:
- Historical baseline: Compare current signal rates to the account’s average. A spike of 3× the normal fast‑submit rate is a strong indicator.
- Signal clustering: A lead that meets three or more signal criteria (e.g., fast submit + zero scroll + disconnected phone) is far more likely to be invalid than a lead that meets only one.
- Business tolerance: Agencies may accept a 5 % false‑positive rate to protect large budgets, while a solo entrepreneur may prefer a stricter rule to avoid chasing dead leads.
Adjust thresholds after an initial verification step (see the Verification section) and document the rationale in your methodology note.
Practical tips for different business sizes
Small advertisers often lack dedicated data analysts. Use spreadsheet formulas or simple pivot tables to join data on the click identifier. Keep the flagging rules simple: fast submit (<2 seconds), zero scroll, and disconnected contact info. Run the verification sample on 5 leads instead of 10 to save time.
Agencies can automate the join with a SQL query or a data‑pipeline tool (e.g., Google BigQuery). They should build a reusable dashboard that visualizes signal distribution by placement, device, and creative. This enables quick threshold tuning across multiple client accounts.
Both groups should schedule a monthly audit to catch new bot patterns, as fraudsters constantly evolve their scripts.
What evidence looks like for Meta invalid traffic
Evidence consists of measurable patterns that differ from normal human behavior. BotRefund describes these repeatable technical and behavioral patterns as contactability, timing, session behavior, campaign patterns, and CRM outcome [S1]. Below is a deeper look at each type.
- Contactability: Disconnected phone numbers, email domains that do not resolve, or the same physical address appearing in many leads. BotRefund notes that invalid numbers often share a country code or prefix, indicating automated generation [S1].
- Timing: Leads arriving within seconds of each other, or form submissions occurring in less than 2 seconds after page load. BotRefund’s detection includes “superhuman input speed (<1 ms)” as a signal of automation [S2].
- Session behavior: Zero scroll depth, no field corrections, identical click paths, and time on page under 5 seconds. The platform’s scroll‑width leak and pointer‑linearity checks illustrate why these signals matter [S2][S5].
- Campaign patterns: A sharp drop in lead‑to‑qualified‑opportunity rate for a specific placement, creative, or device. BotRefund advises comparing placement‑level performance to account averages to spot anomalies [S1].
- CRM outcome: High lead volume with no calls, demos, or qualified opportunities. This outcome aligns with BotRefund’s “high reported lead count paired with no calls connected” signal [S1].
Prerequisites before you start documenting
You need three raw, timestamped data sources that include the Meta click identifier (fbclid or similar). Without the identifier you cannot join the data, and the evidence will be less precise [S1].
- Meta Ads Manager report: Export leads, clicks, spend, and campaign hierarchy. Include the fbclid column.
- Website analytics: Use Google Analytics, server logs, or a custom tracking script that records page views, events, scroll depth, and pointer data for each fbclid.
- CRM export: Pull lead contact info, timestamps, and outcome fields (call logged, demo booked, opportunity created).
Store the files in a read‑only folder. Do not alter timestamps, as Meta reviewers may request the original logs.
Step‑by‑step workflow to gather evidence
- Export the Meta leads report for the suspected period. Include all columns needed for cost‑per‑lead calculations.
- Export website analytics for the same date range, filtered by fbclid. Capture scroll depth, time on page, and pointer‑movement metrics (BotRefund’s scroll‑width leak and pointer‑linearity checks are useful reference points) [S2][S5].
- Export the CRM lead list for the same period, with outcome fields.
- Join the three tables on the click identifier. In Excel use VLOOKUP; in SQL use a simple INNER JOIN.
- Apply flagging rules:
- Contactability: flag rows where phone validation fails or email domain returns NXDOMAIN.
- Timing: flag if time between page view and form submit < 2 seconds.
- Session behavior: flag if scroll depth = 0 px or time on page < 5 seconds.
- Campaign patterns: calculate lead‑to‑qualified‑opportunity rate per placement; flag placements < 30 % of the account average.
- CRM outcome: flag if no call, demo, or opportunity recorded within 7 days.
- Create a summary sheet that lists each flagged lead, the signals triggered, and the associated campaign details.
- Export the summary as CSV or Excel for submission.
This workflow mirrors BotRefund’s recommended audit steps, which start with preserving attribution before any campaign changes [S1].
How to organize evidence for the review
Meta’s review team expects a clear packet that tells a story: problem, data, impact, and proof of repeatability.
- Cover page: Date range, total spend, number of leads flagged as invalid.
- Methodology note: Briefly describe the three‑source join, the signal thresholds used, and any adjustments made after verification.
- Evidence tables: One table per signal type. Columns: Lead ID, Campaign, Signal, Value (e.g., 0 seconds on page), and any supporting metadata.
- Impact calculation: Multiply flagged leads by average cost per lead to estimate wasted spend.
- Appendix: Attach hashed versions of the raw exports so Meta can verify integrity without exposing full data.
Use plain language, avoid marketing jargon, and highlight that the patterns are repeatable across multiple leads.
Verification step: confirm your documentation is complete
Run a quick sanity check before sending the packet.
- Select a random sample of 10 flagged leads (or 5 for small advertisers).
- Manually verify each signal in the raw files. Confirm the fast‑submit time, zero scroll, and contactability status.
- Compare the sample to a control period of normal performance. The flagged leads should not appear in the control set.
- Ensure flagged leads represent less than 30 % of total leads; a higher rate suggests thresholds are too loose.
- Check that all exported files retain original timestamps and have not been edited.
- Save a copy of the final packet with a date‑stamp for your records.
If the sample passes, you can be confident the evidence meets Meta’s expectations.
Limitations and when the advice does not apply
This workflow assumes you have access to raw Meta lead exports, website analytics that capture the fbclid, and a CRM that logs outcomes. If you only have aggregated reports, you cannot join the data sources, and the analysis will be less precise [S1].
If your landing‑page builder strips URL parameters, you must add a custom script to preserve the click identifier before the page redirects [S1].
The thresholds provided (e.g., <2 seconds form submit, <5 seconds time on page) are starting points. Adjust them based on your historical baseline and the verification sample [S2].
Finally, this guide prepares evidence for a Meta review; it does not replace a full forensic fraud investigation or a legal audit.
Key facts
| Fact | Detail |
|---|---|
| Bot clicks steal up to 20 % of your Google and Meta ad budget | Source: BotRefund homepage |
| BotRefund proves bot clicks, negotiates with Google and Meta, and gets your money back | Source: BotRefund homepage |
| Add BotRefund to your website in about one minute. No credit card required. | Source: BotRefund homepage |
| Get free bot audit | Source: BotRefund homepage |
| Recover bot‑click refunds from Google Ads spend dating back to 2017 | Source: BotRefund homepage |
| Why BotRefund is 99 % accurate | Source: BotRefund homepage |
| Ad Spend Recovered: average ad spend recovered from Google and Meta billing disputes | Source: BotRefund homepage |
| Refund Approval Rate: approved rate across client refund claims submitted to ad platforms | Source: BotRefund homepage |
| Fast Setup: typical time to add BotRefund to your website and start your free bot audit | Source: BotRefund homepage |
FAQ
What if I cannot export the fbclid from Meta?
Ask your Meta representative for a raw leads report that includes the click identifier, or use a third‑party tracking tool that stores the identifier on your server.
How long should the date range be for the evidence packet?
Choose a window that covers the suspicious spike plus a comparable period of normal performance; typically 2‑4 weeks is enough to show a contrast.
Do I need to hire an analyst to run the joins?
No. A spreadsheet program like Excel or Google Sheets can join the data on the click identifier using VLOOKUP or a simple query.
What happens if Meta rejects my evidence?
Review the feedback, adjust your signal thresholds, and resubmit with additional data such as session recordings or server logs.
Is there a cost to collect this evidence?
No. The process uses data you already export; only time is required to prepare the packet.
Further reading and comparison sources
These external sources provide additional context for evaluating the topic. Their inclusion is not an endorsement.
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.