Seatext library / BotRefund evidence

How to Know If Your Meta Ads Contact Rate Baseline Is Realistic

A realistic contact rate baseline for Meta ads is based on clean data that excludes invalid traffic. Compare it with industry ranges, confirm it against actual campaign contactability after filtering, and update it monthly...

Built for advertisers who need clear, refund-ready traffic evidence.

You know your contact rate baseline is realistic when it is based on clean data, aligned with industry ranges, and confirmed against actual campaign contactability after filtering invalid traffic. A baseline pulled only from Meta Ads Manager is not enough. The platform counts every lead form submission as a result. Many of those submissions come from bots, form spam, or accidental taps. Those events do not represent real, reachable people. This guide shows you how to check your baseline, spot invalid traffic, and correct the numbers before you make budget decisions.

Why Platform-Reported Contact Rates Inflate the Denominator

Meta Ads Manager reports results based on events it can see. It sees a form opened, a thank-you page loaded, or a pixel fired. It does not see whether the phone number works or the email address belongs to a real person.

The denominator in a reported contact rate includes every recorded event. Invalid events inflate that denominator. A realistic baseline uses only human leads you can actually contact. Suppose you have 100 reported leads and 30 are fake. Your reported denominator is 100, not 70. If 40 of the real leads are reachable, the reported rate is 40%. The true human contact rate is 57%.

This matters because decisions follow the number. If you think your contact rate is 40%, you may ask your sales team to call more leads. You may raise the budget. You may change creative. Each of those decisions is based on a denominator polluted by bot traffic, form spam, and accidental interactions.

Bot clicks steal up to 20% of Google and Meta ad budget, according to BotRefund data. Invalid click rates can range from 4% to over 35% depending on industry and campaign. That range is too large to ignore.

How to Calculate Contact Rate Before and After Filtering

Use the same formula in both cases. Contact rate equals the number of leads you can reach divided by the number of leads you counted.

Here is a simple workflow:

  1. Pull all leads from Meta for one full month.
  2. Remove invalid records using clear rules: disconnected numbers, invalid email domains, repeated addresses, impossible form completion times, or no page engagement.
  3. Contact every remaining lead within 24 hours. Track phone calls answered, emails replied to, or demos booked.
  4. Calculate the rate twice: once with the raw Meta lead count and once with the clean lead count.

Clean data does not mean perfect data. It means you can explain why each lead was kept or removed. Use at least two independent signals before you call a lead invalid. One signal may be a false positive. For example, a short session could be a mobile user who clicked a link and came back later. Pair it with an invalid email domain or a form completion time under three seconds. Keep a decision log.

Worked example:

MetricRaw Meta dataAfter invalid-traffic filtering
Reported leads500360
Reachable leads144144
Contact rate28.8%40.0%

In this example, 140 of the 500 reported leads were invalid. The raw contact rate was 28.8%. The clean contact rate was 40.0%. If you had kept the raw baseline, you would have undervalued the campaign. You would also have thought you needed more leads than you really did.

Run this calculation each month. Keep the clean denominator. That becomes the starting point for a realistic baseline.

Diagnostic Sequence: If You See This Signal, Do This

Not every bad lead is a bot. Treating every unresponsive contact as fraud can make you exclude a valuable audience. Use a structured sequence that preserves attribution before you change anything.

Signal 1: Leads arrive in bursts. If you see several leads in seconds, export lead timestamps before you change the campaign. Do not pause the ad set yet. Compare the timestamps with session start times. If the form was completed immediately after landing, mark those leads as invalid.

Signal 2: Forms are submitted too fast. If a form is completed in under three seconds, a human did not type the answers. Add client-side detection that measures form completion speed, mouse movement, and session duration. Filter submissions that show no humanlike behavior.

Signal 3: Disconnected numbers and invalid domains. If phone validation fails or email domains are clearly fake, run validation at capture. Send those leads to a separate list. Do not count them in your baseline.

Signal 4: Placement-level spikes. If one placement, such as Audience Network, sends high lead volume with no calls connected, compare that placement against your other placements. Run a holdout with that placement excluded. Then recalculate the baseline for each placement separately.

Signal 5: High reported lead count but empty CRM outcomes. If the dashboard looks strong but your sales team cannot connect, call a sample of leads within 24 hours. Track how many are reachable. That number is the only number that matters for contact rate.

Work through these signals in order. The diagnostic sequence is: preserve attribution, filter invalid traffic, recalculate the rate, compare against benchmarks, then change the campaign.

Use Benchmarks as a Sanity Check, Not a Rule

Industry benchmarks give you a starting point. Average contact rates vary by vertical, offer, audience, and landing page. There is no universal number that fits every Meta advertiser.

Use benchmarks in a simple way. If your clean contact rate is far above the typical range for your industry, check your filter rules. You may be removing too many real leads. If your rate is far below the range, check your offer, targeting, and follow-up speed. Do not change all three at once. Change one variable and measure again.

Remember the scale of invalid traffic. Industry estimates project ad fraud will cost advertisers over $100 billion globally in 2026. Studies put invalid traffic at 10% to 30% of programmatic ad spend. The exact numbers are less important than the pattern: raw data mixes humans and bots. Benchmarks built from raw data inherit that problem.

Statistical Confidence and Low-Volume Limits

A baseline from 20 leads is not reliable. A baseline from 500 leads is more reliable. The math is straightforward.

If you see 50 leads in a month and your clean contact rate is 40%, the 95% confidence interval is roughly 28% to 54%. That is wide. It means the true contact rate could be much lower or much higher than 40%.

If you see 500 leads and the clean contact rate is 40%, the 95% confidence interval is roughly 36% to 44%. That is narrow enough for practical decisions.

What should you do at low volume? Combine 3 to 6 months of clean data. Or aggregate similar campaigns that share the same offer and audience. Do not create a baseline from a single weekly spike. If you still have fewer than 50 leads after aggregation, use the baseline as a directional guide, not a hard rule.

Build and Recalibrate Your Baseline Over Time

Use a rolling average of 3 to 6 months of clean data. A single month may include seasonal swings, a new creative test, or an audience change. A rolling average smooths those swings.

Segments behave differently. Retargeting often produces a higher contact rate than cold prospecting. A warm email list may contact better than a broad interest audience. Track separate baselines for separate segments. Do not force one number across all campaigns.

Update the baseline monthly. After a major campaign change, reset it. If you see a sudden drop in contactability, investigate before you recalibrate. A new bot attack can look like a creative problem.

Verify with a weekly contactability audit. Pick one week each month. Manually review a sample of leads. Call or email them within 24 hours. Compare the audit reachable rate with your baseline. If the audit rate is much lower, your baseline is too optimistic. If it is much higher, your raw denominator was inflated.

For refunds, keep behavioral evidence. Meta has a refund policy for invalid activity, but the process is not automatic. Meta's built-in filters catch only a fraction of advanced bots. Use client-side detection logs, form timestamps, and session recordings to prove the traffic was automated.

Limitations and When This Advice Does Not Apply

This approach assumes you can connect ad data to a CRM or follow-up system. If you have no CRM, you cannot measure contactability. Build a simple lead log before you trust any baseline.

Click-to-call campaigns need call tracking, not form tracking. Measure answered calls and valid conversations separately. This guide does not replace call-level tracking.

Very low volumes need longer windows. Under 50 leads per month, use a rolling 6-month average or aggregate similar campaigns. Do not make drastic budget changes based on one month.

Brand awareness campaigns do not use contact rate as a primary KPI. If your goal is reach or video views, contact rate is not the right diagnostic.

Finally, do not apply this advice to a single suspicious lead. Make decisions on patterns. One unreachable lead means very little. Twenty unreachable leads in a row means something changed.

Frequently Asked Questions

Why is my contact rate dropping even though my cost per lead is stable?

Stable cost per lead can mask rising invalid traffic. Bots often create consistent click patterns, so platform metrics look normal while contactability declines. Run a contactability audit to check.

How often should I update my contact rate baseline?

Update it monthly or after major campaign changes. If contactability shifts suddenly, investigate before you update.

What is a realistic contact rate for Meta ads?

There is no universal number. A realistic baseline is one that matches your actual contactability after filtering invalid traffic. Compare it with your vertical's typical range, then confirm with a manual audit.

Can I use Meta's built-in invalid traffic filter to clean my data?

Meta's filters catch only a fraction of invalid traffic. Advanced bots using residential proxies and realistic fake accounts bypass them. Client-side detection gives you the behavioral evidence you need.

What should I do if my baseline is far from industry benchmarks?

Do not change targeting immediately. Clean the data first. Recalculate after filtering invalid traffic. Then test one variable at a time. If the gap is large, review your campaign logs and consider a refund claim if you have proof.

Does BotRefund help with establishing a realistic baseline?

Yes. BotRefund detects and removes invalid traffic, so you can calculate contact rate from clean data. It also provides proof for refund claims.

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.

Learn more