Why do Facebook conversions suddenly stop counting for clinics? (events blocked with no warning)
Short answer
Meta restricts data that could reveal a health condition or treatment. A treatment name in the link, event name or form can get the event held back, even though nothing changed on your side.
"Nothing changed on our side."
I've heard that sentence from clinic owners so many times I could set it to music. The ads look the same. The site looks the same. And the conversions quietly stop counting.
The frustrating part is that they're telling the truth. Nothing changed on their side. What changed is how Meta treats what that side sends.
Let me explain the rule underneath, because once you see it, a lot of weird behaviour makes sense. Meta restricts data that could reveal a health condition or treatment. If a page link, an event name or a form field hints at one, Meta can hold the event back or drop it. Health isn't a special ad category, so there's no box you ticked and no setting to check. It shows up as blocked events and restricted accounts, and many clinics find it happens without any change on their end.
Picture this. It's an example, not a real clinic. A dental practice has run the same implant consultation campaign for a year. Every booking fires a pixel event, and the pixel is polite and thorough, so it packs a little bag for every event: the page address (/implants/book), the page title ("Book your implant consultation"), and the event name (Book_Implant_Consult).
It's a postcard that says exactly what you're going to the doctor for. For a year, the postman didn't read it. Then one week he did.
Here's the chain reaction that follows, and every link in it costs money:
Events get held back or stripped of detail, so fewer conversions reach Meta.
Match quality drops, so fewer of the remaining ones can be tied to a person.
Cost per lead climbs, because the algorithm is learning from less.
Campaigns stall, and they stop finding new patients.
Now the part that actually matters, and the reason this story repeats across so many clinics. Nothing in that chain mentions your ad. So the natural reaction is to fix the ad. New creative. New audience. Pause, restart, change the budget. Each of those feels productive, and none of them touches the cause, because the cause is sitting in the data your website sends. You end up debugging the wrong layer for weeks.
That's the first lesson: when conversions fall and the ads haven't changed, look at the data before the creative.
So how do you tell if the data is your problem? Three checks, ten minutes, nothing but Events Manager. Open Test Events, book something on your own site, and click the event that appears. Read the URL it carries. Read the event name as if you were a stranger who knows nothing about your clinic. Then look at what your forms ask. If any of the three says which treatment or condition a person has, you've found your leak. Check the thank-you page separately. It's the one everybody forgets, and it's often the most descriptive.
Second lesson, and the one I'd tattoo on every marketing manager: a browser pixel is the wrong place to enforce privacy. It passes along whatever it finds on the page, and you can't tell it what to leave out. Every new landing page, every plugin update, every renamed button is a fresh chance for something to leak, and nobody reviews it. That's why "we fixed it last quarter" so often turns into "it happened again".
The durable fix is to decide what leaves your site, instead of letting the pixel decide. That means sending conversions from your server, with a cleaning step in the middle.
What still goes is the hashed email and phone and the ad click, which is what matching runs on. So the conversion still ties back to the person who clicked, and you keep the one thing the ads need: knowing which click became a lead.
Third lesson, the one that changes the economics. A booking isn't a patient. Once the data is clean, you have room to teach the ads something better than "someone filled in a form". For HighLevel, the stages booked, showed, won and paid go back to the ad platform with the original ad click attached and the identity hashed. Cancelled, no-show and lost are never sent. So instead of finding people who book, the campaign starts finding people who turn up and pay. And because it's a clean signal with nothing about the treatment attached, it doesn't recreate the problem you were fixing.
If you run this for several clinics, the same logic scales: health mode is turned on per clinic from one agency login, which beats auditing twenty sites by hand.
So here's where I'd start today. Run the ten-minute check. Write down every event and what it carries. Fix the URL first, because it's the easiest to spot and the easiest to cut. Then decide what you want the ads to learn next.
Has this happened to you? If you found the cause, what was it: the URL, the event name or the form?
For reference, this is the case DataCops health mode was built for: a neutral L_1 for a lead and S_1 for a booking, with hashed email and phone and the ad click, and a log of each event.
DataCops in short
For this question: Health mode strips the treatment name from links, event names and form fields before an event leaves, so the conversion still counts and there is nothing descriptive for Meta to hold back.
DataCops is a tool that keeps condition details out of what your ad platforms see: Health mode cuts page links to the domain, uses neutral event names and leaves out anything that describes a condition, while a bot verdict on every visit and a delivery log show what left and what was real.
How DataCops does it
- Health mode. Page links are cut to the domain, event names are neutral, and anything that describes a condition is left out before an event leaves.
- A log of exactly what left. A delivery log row per conversion, sent, held, skipped or failed, with the reason, which is the record you want when explaining yourself to a reviewer.
- Real people only. Every visit gets a bot verdict against 360+ billion IPs and 350+ monitoring points, with a Real people only switch per ad platform, off by default.
- One script, one DNS record. Collection runs on your own domain, and conversions go server-side to Meta, Google Ads, TikTok and LinkedIn, counted once against the pixel.
- The booking after the form. HighLevel natively, any CRM by webhook, sent as neutral events so a booked consultation still teaches the ads who converts.
Best for: clinics, telehealth and wellness brands, and agencies running health ads, who want conversions to keep counting without condition details in the data.
Ads Warmup: tell the ads who pays
Ads Warmup, DataCops' flagship feature, sends customers you already have to Meta, Google Ads and TikTok before a new campaign spends: upload a CSV (only email is required, up to 20,000 rows), see a 0 to 10 match score per person, pick the event, and send. Rows are dated when you send, and Google Ads credits only people who clicked a Google ad. Preview is free; sending needs a paid plan. Check your own consent basis for the list first. See Ads Warmup.
Ways to do this job
| Option | Best for |
|---|---|
| DataCops | Health mode, neutral events and a delivery log, server-side to four ad platforms |
| Manual event cleanup in your site and tag manager | Teams with an engineer who will maintain it |
| Turning conversion tracking off | Accounts that cannot risk any event |
When not to use DataCops
- You need legal or compliance advice. DataCops is not legal advice and does not make an ad account compliant. Your own advisers decide what you may send.
- You need a regulated setup with a signed agreement. That is the Enterprise plan: talk to the team.
Sources and further reading
More on this: Meta health and wellness restrictions, and the complete guide to offline conversion tracking.
If you post what your Test Events showed (blur anything private), I'll tell you which of the three looks like the culprit. The URL is right most of the time.