Leads & lead quality

Repeated clicks inflate lead counts: how to count one lead per person

For advertisers whose dashboards show more leads than the team actually receives. Find out where duplicate leads come from, how to fix each source in Google Ads, Meta and on the site, and how AdAce Ads counts one lead per browser.

What it does

A familiar complaint: Google Ads shows 40 conversions this week, Meta shows 25, and the recruiter got 18 messages. Part of the gap is attribution, but a lot of it is plain double counting. A person taps the WhatsApp button, the app is slow to open, so they tap again. They try Telegram, then WhatsApp. They reload the thank-you page. Meanwhile the site may fire the same tag twice because it was added both in the page code and in a tag manager. Each of these turns one person into several leads.

Inflated counts are not just a reporting problem. Smart bidding in Google and Meta's delivery system both reward the campaigns that appear to produce the most conversions, so a campaign whose audience double taps more often gets more budget for no good reason. Cost per lead looks better than it is, the client is promised numbers the team cannot repeat, and every comparison between campaigns, landing pages or languages is skewed. The cheaper a conversion is to trigger, a tap rather than a submitted form, the more duplicates matter.

Fix the sources one by one. In Google Ads, set lead conversion actions to count “One” per click rather than “Every”, which is what Google recommends for leads. In Meta, if the pixel and the Conversions API send the same event, give both the same event name and event ID so Meta can deduplicate them. On the site, make sure each tag is installed only once: check the page source and your tag manager's preview mode, and remove leftovers from old agencies or plugins. Finally, decide what one lead means for you, for example one person per half hour, and count by that rule.

AdAce Ads applies such a rule in its lead tracking script. One browser produces at most one lead per 30 minutes, so repeated taps on Telegram, WhatsApp, call, email or form buttons in that window are not counted twice. The script stores technical marks only, without names, phone numbers, IP addresses or a browser fingerprint. Before launch, the ad → landing page check shows which buttons on the page are actually counted by the live Tag Manager container, so you can see which buttons are tracked and which are not.

Statuses are the second line of defense. Even with a clean count, some leads are people who tapped and never wrote. Marking each lead “wrote”, “interview”, “hired” or “not a fit” in the client's Telegram topic separates real conversations from taps, and only interviews and hires are sent back to Google Ads and Meta as conversions. That way the numbers that train bidding are the ones a person has confirmed, not raw clicks, and duplicates that slip through the count do not reach the ad platforms as qualified results.

Why it helps

  • Lead counts come much closer to what the team actually receives.
  • Bidding is not rewarded for audiences that tap twice.
  • Cost per lead and campaign comparisons become trustworthy.
  • Only interviews and hires confirmed by a person reach the ad platforms.

How to set it up

  1. In Google Ads, check that lead conversion actions count “One” per click.
  2. Check the site's page code and tag manager for tags installed twice and remove the duplicates.
  3. Install the lead tracking script from “Analytics” → “Leads”; it counts one lead per browser per 30 minutes.
  4. Run the ad → landing page check to see which buttons the live Tag Manager container counts.
  5. Mark lead statuses in Telegram so that interviews and hires, not taps, are sent as conversions.

Good to know

  • A 30-minute window can merge a genuine second contact from the same browser into one lead; for ad optimization that is the safer error.
  • The same person on a phone and a laptop uses two browsers and can produce two leads.
  • Differences between Google, Meta and your own counts also come from attribution models and windows, not only from duplicates.
Ace, the AdAce Ads mascot

Try it on your own accounts

Create a workspace, connect Google or Meta in a couple of clicks and see your accounts clearly. Changes follow your approvals or the policy you configure.

Create your workspace