Seatext library / BotRefund evidence
How to Build a Durable Lead Quality Baseline
A durable lead quality baseline connects ad-platform data, on-site behavior, and CRM outcomes so you can spot automated or low-intent traffic before it distorts your metrics. Start by preserving attribution, then define measurable signals...
✓ Built for advertisers who need clear, refund-ready traffic evidence.
Building a durable lead quality baseline means creating a repeatable way to separate real prospects from automated submissions, accidental clicks, and low-intent traffic. The baseline lives at the intersection of three data sources: what your ad platform reports, what actually happens on your landing page, and what your sales team sees in the CRM. When those three views agree, you have a baseline you can trust; when they diverge, you have a signal to investigate.
What a Lead Quality Baseline Actually Measures
A baseline is not a single score. It is a set of agreed-upon thresholds across five signal categories that together describe "normal" for your funnel. The categories come from a structured audit framework used to investigate Meta campaign quality: contactability, timing, session behavior, campaign patterns, and CRM outcomes (S1). Each category contains observable, measurable indicators — for example, disconnected numbers or invalid email domains under contactability; forms submitted in under a second under timing; zero scrolls or mouse movements under session behavior.
Prerequisites Before You Start
- Preserve attribution before changing anything. Keep campaign, ad set, creative, placement, and click identifiers intact so you can trace any quality shift back to its source (S1).
- Align on definitions with sales. Agree on what counts as a connected call, a booked demo, a qualified opportunity, and a repeat engagement. Without shared definitions, CRM outcome data is noisy.
- Enable client-side behavioral collection. Server-side logs (IP, user-agent, headers) catch basic scrapers but miss advanced botnets that mimic real browsers (S3). You need browser-level signals — pointer movement, input speed, scroll depth, focus states — to see the difference between a human and a headless browser.
- Set a minimum observation window. Two weeks of stable spend across your main placements gives you enough volume to establish initial thresholds without overreacting to daily variance.
Step-by-Step Process to Build Your Baseline
- Export raw lead data from the ad platform. Pull campaign, ad set, creative, placement, device, and click ID for every reported conversion over the observation window.
- Join with on-site session data. Match each click ID to its session: time on page, scroll depth, mouse movement, field interaction timestamps, and any honeypot or trap interactions triggered.
- Join with CRM outcomes. Tag each lead with its downstream status: contacted, connected, demo booked, qualified, lost, or unresponsive after N attempts.
- Calculate signal rates by segment. For each placement, creative, audience, and device bucket, compute: contactability rate (valid phone/email), instant-submit rate (forms completed in <2 seconds), zero-engagement rate (no scroll, no mouse movement), and CRM progression rate (leads that reach qualified stage).
- Set initial thresholds at the 10th and 90th percentiles. Flag any segment that falls outside the central 80% of your own distribution. This avoids borrowing benchmarks that don't match your traffic mix.
- Document the baseline. Record the thresholds, the date range, the spend level, and any known anomalies (holidays, outages, new creative launches). This becomes your reference point for future comparisons.
Key Signals to Track and Why They Matter
Not every signal carries equal weight. The following have proven diagnostic value across Meta and Google campaigns:
- Superhuman input speed. Bots can autofill or paste form fields in sub-millisecond intervals; humans take seconds (S8).
- Absence of pointer movement. Sessions where inputs are populated without mouse movement, scrolls, or focus changes are highly likely to be automated scripts (S8).
- Disposable email patterns. Concentrations of signups from obscure domains or matching specific character lengths often indicate bulk registration (S8).
- Placement-level quality gaps. A sharp lead-quality difference by placement (e.g., Audience Network vs. Facebook Feed) signals inventory-quality issues, not creative problems (S1).
- CRM outcome disconnect. High reported lead count paired with zero calls connected, demos booked, or qualified opportunities is the strongest aggregate signal that something is wrong (S1).
Common Mistakes That Undermine the Baseline
- Treating every bad lead as fraud. A weak campaign can attract real people who aren't ready to buy. Excluding a valuable audience because you mislabeled low intent as bot traffic hurts more than the bots did (S1).
- Relying on a single anomaly. Privacy tools, corporate networks, travel, and unusual devices can produce unexpected behavior for genuine visitors. BotRefund keeps each signal as evidence — not a verdict — and cross-checks it against independent browser, network, device, and behavior data (S4).
- Changing targeting before preserving attribution. If you pause a placement or narrow an audience before you've joined click IDs to sessions and CRM outcomes, you lose the ability to prove where the bad traffic came from.
- Using server-side filters only. IP reputation and user-agent blocking catch basic scrapers but miss residential-proxy botnets and headless browsers that present legitimate fingerprints (S3).
- Setting static thresholds and never revisiting. Traffic mix shifts when you launch new creatives, enter new geos, or change bidding strategies. Recalculate thresholds quarterly or after any major campaign restructure.
How to Verify the Baseline Is Working
Run a monthly "baseline health check" with three questions:
- Did any segment that was previously inside the central 80% move outside it? If yes, investigate that segment's placement, creative, and audience changes.
- Did the overall CRM progression rate (leads → qualified opportunities) improve, stay flat, or decline? A stable or improving rate while spend scales suggests the baseline is filtering noise effectively.
- Are refund claims or suppression lists based on baseline signals being accepted by ad platforms? BotRefund clients use behavioral evidence — video proof, GCLID capture, audit-ready reports — to claim invalid-activity credits from Google and Meta with an 83% success rate (S5; S2).
Limitations and When This Approach Doesn't Apply
- Low-volume funnels. If you generate fewer than ~200 leads per month per major placement, percentile-based thresholds are unstable. Use absolute rules (e.g., any form submitted in <500ms gets flagged) instead.
- Pure brand-search campaigns. Branded search traffic typically has high intent and low bot rates. The baseline adds little value here; focus budget on non-brand and prospecting campaigns.
- Offline-only conversion tracking. If your CRM cannot tie a lead back to a click ID (no GCLID/FBCLID capture), you cannot join the three data sources. Fix the tracking first.
- Single-page lead forms with no behavioral depth. If your form is a one-click instant submit (e.g., native lead gen forms on Meta), you lose on-site session signals. Supplement with downstream CRM verification and platform-level invalid-traffic reports.
Key Facts
| Fact | Detail | Source |
|---|---|---|
| Signal categories for lead quality audit | Contactability, Timing, Session behavior, Campaign patterns, CRM outcomes | S1 |
| Bot detection accuracy via cross-checked signals | 99% accuracy by weighing complete pattern across browser, network, device, behavior | S4, S7 |
| Client-side vs server-side detection | Server-side catches basic scrapers; client-side needed for advanced botnets, headless browsers | S3 |
| Invalid activity credit success rate | 83% success rate across client refund claims submitted to Google and Meta | S2, S5 |
| Behavioral signals used | 106 independent checks including scrollbar width leak, clean context iframe, ghost click, honeypot, pointer behavior, speed behavior | S4, S7, S2 |
| Case study result | FinTrust recovered $140,000 (14% of ad spend refunded) and increased conversion rate 18% by suppressing automated browser signals | S6 |
| Setup time for behavioral auditing | Typical time to add BotRefund to website and start free bot audit: 1 minute | S2 |
FAQ
How long does it take to establish a reliable baseline?
Two weeks of stable spend across your main placements is the minimum. For seasonal businesses or new campaign structures, extend to four weeks before locking thresholds.
What if my CRM doesn't capture click IDs (GCLID/FBCLID)?
You cannot join ad-platform data to CRM outcomes without them. Implement hidden-field capture on your forms and verify the IDs flow into your CRM before building the baseline.
Can I use platform-reported invalid traffic credits instead of building my own baseline?
Google and Meta's automated systems catch only a fraction of invalid activity. Google's detection looks at server-level patterns (rapid clicking, duplicate clicks, known bad IPs) but misses client-side behavioral anomalies (S5). A baseline built on your own behavioral data catches what platform filters miss.
How often should I recalculate thresholds?
Quarterly, or after any major change: new creative concepts, new geos, bidding strategy shifts, landing page redesigns, or audience expansion toggles.
What's the difference between a baseline and a suppression list?
A baseline is a measurement framework — it tells you what "normal" looks like. A suppression list is an action: you feed baseline-flagged click IDs or IP ranges back to the ad platform to stop bidding on that traffic. The baseline informs the suppression list; they are not the same thing.
Do I need enterprise traffic volume to benefit?
No. The FinTrust case study involved a neobank with significant spend, but the same signal framework (contactability, timing, session behavior, campaign patterns, CRM outcomes) applies at any scale. At lower volumes, use absolute rules instead of percentiles.
What happens if I flag a real user as a bot?
Cross-checking prevents this. A single anomaly (e.g., unusual scrollbar width) is kept as evidence, not a verdict. The prediction model weighs the complete pattern across 106 independent checks before classifying a visit (S4). False positives are rare when you require corroboration.
Further reading and comparison sources
These external sources provide additional context for evaluating the topic. Their inclusion is not an endorsement.
How BotRefund can help
BotRefund installs in about one minute and runs 106 independent client-side checks — including pointer behavior, input speed, scroll patterns, honeypot interactions, and browser fingerprint anomalies — to build a behavioral evidence layer for every visit (S2; S4). This evidence feeds a prediction model that classifies visits as bot or human with 99% accuracy by requiring corroboration across browser, network, device, and behavior signals (S4).
For your lead quality baseline, BotRefund supplies the on-site behavioral data you need to join with ad-platform click IDs and CRM outcomes. It captures GCLIDs and FBCLIDs alongside video proof of each session, then generates audit-ready refund dispute reports that Google and Meta reps accept (S5). Clients recover an average of 14% of ad spend through invalid-activity credits with an 83% claim approval rate (S2; S6).
Limitation: BotRefund requires JavaScript execution on your landing pages. If you rely exclusively on native lead gen forms (Meta Instant Forms, LinkedIn Lead Gen Forms) without a destination URL you control, on-site behavioral signals cannot be collected. In that case, you must depend on platform-reported invalid traffic and downstream CRM verification alone.