Conversion Reconciliation: Curve Sent vs Google Credited
A weekly routine for comparing what your tracking sent to Google and Meta against what each platform credited, and how to tell a normal gap from a broken one.
Every conversion question in a healthcare ad account has two correct answers: what your tracking sent to the platform, and what the platform decided to credit. If you only look at one, you cannot tell whether a drop is an attribution artefact or a broken pipe, which is why Curve puts the two side by side. Reconciliation is comparing them, per platform and per campaign, on a schedule, and knowing in advance which gaps are fine and which mean you stop and fix something. Most clinics never do it, then discover months later that Google was receiving nothing.
TL;DR
- "Curve sent" is the count of conversions your tracking forwarded to Google or Meta. "Platform credited" is the count the platform attributed to its own ads. They answer different questions and will not match.
- Normal gaps come from open attribution windows, credit for ads that were seen but not clicked, modelled conversions, and reporting lag. They shrink or stabilise as the period ages.
- Broken gaps come from nothing being sent, missing click IDs, or a mapping pointing at the wrong conversion action. They never close on their own.
- Reconcile weekly, one platform at a time, on a period old enough for the platform to have caught up.
- Curve Analyst has a reconciliation view showing "Curve sent" next to "platform credited", and names which figure it is quoting. For Meta the sent figure is platform level only, because Meta uploads carry no campaign identifier.
- When the gap is real, the fix is in tracking and destination configuration, not in the ad platform's reporting settings.
Every conversion has two numbers, and both are correct
When someone books a consult on your site, Curve records the event on its own US-hosted infrastructure, strips what should not leave, and forwards a conversion to each destination you have configured. That forwarded event is the "sent" number. It is a fact about your tracking: the event happened and it left with whatever identifier was available.
What the platform does next is a process you do not control. Google looks for a click ID it recognises, checks that the click falls inside the conversion action's window, decides whether the conversion is primary or secondary, and reports it against the date of the click rather than the date of the booking. Meta matches the upload against its identity graph, applies its click and view windows, and may add modelled conversions where it believes browser restrictions hid some. The result is the "credited" number, a fact about the platform's attribution rather than about your tracking.
The longer explanation of why the platforms land on different totals is in why ad platforms disagree about your clinic's conversions. A third number sits alongside these two: Curve's own attributed conversions, credited by Curve's attribution engine with the model you chose, which is what Curve's campaign reporting shows. Analyst tells you which of the three it is quoting. Get in the habit of asking.
Which gaps are normal and which mean something is broken?
Normal gaps shrink or stabilise
- Attribution window still open. A conversion sent today can be credited to a click from last week and reported against that earlier date, so the credited total for "last 7 days" keeps rising for days after the period ends. Compare a period that closed yesterday and credited looks low; next week it has moved. Picking a window you can defend is covered in attribution windows for healthcare.
- View-through credit. Meta, and Google on display and video, will credit a conversion to an ad the patient saw but never clicked. Curve sent that conversion with no click ID from that ad, so credited can exceed anything Curve could tie to the campaign.
- Modelled conversions. Where a platform believes consent choices or browser limits removed observable conversions, it may add estimated ones. They appear in credited with no counterpart in sent.
- Reporting lag. Curve is realtime. The platforms process uploads in batches and refresh reports hours to days behind. A gap that exists in the morning and is gone by evening was never a gap.
Broken gaps never close
- Nothing sent. The destination is not connected, the event is not mapped to a conversion action, or the site event never fires. Sent reads zero while Curve's own goals show bookings. This hides for months because the platform still shows some credited conversions from view credit or an old tag.
- Click IDs missing. The booking page is on another domain, a redirect strips the query string, a consent banner delays the library until the click ID is gone, or the form posts to a vendor page that never saw the ad click. Sent is healthy but the upload carries no identifier the platform can use, so credited stays flat while sent grows. It looks exactly like a window gap until you notice it never recovers.
- Mapping wrong. The event is mapped to a conversion action that is secondary, belongs to a different account under the manager, or has a counting setting that drops repeats. The conversion lands somewhere you are not looking.
- Uploads rejected. The platform refused the event, usually because the click ID expired or the conversion action was removed. Credited never moves.
The weekly reconciliation routine
Run this on the same day each week, on a period that ended long enough ago for the platforms to have caught up. Last full week, checked on Monday, is too fresh for Google. Two weeks back is safer.
- Pick one platform. Google and Meta have different windows, identifiers, and lag, and reconciling them together produces a blend that explains nothing.
- Pick a period that has closed, and note how many days have passed since it ended. If that is fewer days than the window on the conversion action you care about, credited is still moving.
- Pull sent and credited for the whole platform. Open the reconciliation view in Curve or ask Analyst for it. Write both absolute figures down with the label of which view each is, never as a ratio.
- Decide the pile. Credited below sent on a recent period: assume window and lag, re-check next week. Credited above sent: assume view credit and modelling, and confirm the platform's conversion settings include them. Sent near zero while Curve's goals show conversions: broken pipe, and the rest of the routine waits until it is fixed.
- Go one level down where the data allows. For Google, break sent and credited out by campaign. Healthy sent with flat credited means a click ID problem on that campaign's landing page or booking flow. Both flat means a delivery problem, which is the ad platform's job.
- For Meta, stop at platform level for the sent figure. Meta's upload format carries no campaign identifier, so Curve cannot say which campaign a sent conversion belonged to on Meta's side. Compare Curve's attributed conversions per campaign against Meta's credited per campaign instead, and treat it as a directional check rather than a reconciliation.
- Log one line: platform, period, sent, credited, which pile, what you did. The trend in the gap across weeks is the earliest signal that something on the site changed, and when the practice owner asks why Google shows fewer consults than the booking system, you read the line.
Why Curve and the ad platform never agree on "today"
Curve records the event when it happens and forwards it immediately. The ad platforms accept uploads, queue them, match them, attribute them, then surface them in reporting, and each step has its own delay. A conversion Curve sent this morning may not appear in the platform's credited column until tomorrow, and when it does it may be dated last Tuesday, because that is when the click happened.
Curve's sent for a date range is complete the moment the range ends. The platform's credited for that range is a snapshot that changes every time you look, for as long as the window is open. Screenshot both on a Friday afternoon and you have compared a finished number to an unfinished one and called the difference a discrepancy.
How to phrase the question so you get both figures and their labels
"How many conversions did we get from Google this month" has at least three correct answers, and whichever tool you ask will pick one without saying which. A reconciliation question names the platform, the period, and asks for both views by name: "For Google, this month, show what Curve sent and what Google credited as separate absolute numbers, and tell me which is which." That phrasing stops the tool from collapsing them into a single percentage.
"By campaign" for Google gets a ranked comparison. For Meta, ask at platform level and expect Analyst to say the sent figure cannot be split further and to offer Curve's attributed conversions per campaign instead.
Ask about the state of the data too. "Is any of this still syncing?" is a legitimate question and Analyst answers it plainly, because it never estimates and treats an empty metric as empty rather than zero. Analyst keeps the date range and filters of the screen you opened it from, so open it from the campaign report already filtered to the platform and period.
What to do when the gap is real
Once a gap lands in the broken pile, the work moves into your tracking setup, and Analyst cannot help there. It is read-only and does not answer about tracking configuration or connector health, and we built it that way on purpose. It will tell you sent is zero, not why.
If nothing was sent
Check the chain in order. Does the site event fire at all, which Curve's goals and custom events show. Is the event mapped to a conversion action for that destination. Is the destination connected with a token that has not expired. Reconnected accounts and renamed events are the usual culprits. The setup walkthrough is in HIPAA compliant conversion tracking setup for Google, Meta, and Microsoft.
If click IDs are missing
Walk the click path yourself, from the ad through every redirect to the confirmation page, and watch for where the identifier disappears. Booking vendors on separate domains, consent scripts that hold the library until the landing page has rewritten its URL, and tracking templates that drop parameters are the common breaks. Fix the path, then wait a full window before judging the result.
If the mapping is wrong
Confirm the conversion action is the one marked primary in the account you actually report from, and that its counting setting matches how you think about the event. A consult booked twice by the same patient is usually one conversion. A form submitted twice is usually two.
After any fix, sent going up proves the pipe is open. Credited following it, after the lag, proves the platform can use what you sent.
What to ask Curve Analyst
Analyst returns reconciliation figures as stat cards or a ranked table, each labelled with the view it came from. Open it from the campaign report with the platform and period already filtered, and type something close to one of these.
- "Run a reconciliation for Google this month: show Curve sent and Google credited as separate totals and tell me which is which"
- "Compare Curve conversions vs Meta credited for the consults campaign, and tell me if the sent figure can be split by campaign"
- "Is the gap between what we sent and what Google credited normal for the last 7 days, or is something broken?"
The launch post, Introducing Curve Analyst, covers what else it answers, and what Curve AI Analyst is explains the honesty rules it runs under.
Frequently asked questions
Why don't my Google Ads conversions match what the booking system shows?
They count different things. The booking system counts bookings. Google counts bookings it could tie to a recognised click inside the window, reported on the click date, plus any modelled or view credit its settings include. Compare Curve sent to Google credited for a closed period and the gap usually sorts itself into window and lag. If it does not, check click IDs on the booking path first.
Why don't Meta conversions match the CRM?
Meta credits on its own identity matching and windows, and may include modelled conversions. The CRM counts records. Reconcile Curve sent against Meta credited at platform level, since Meta's uploads carry no campaign identifier, and use Curve's attributed conversions per campaign as the directional check underneath.
My offline conversion upload is not showing in Google Ads. Is it lost?
Probably not yet. Uploads take hours to days to appear, and when they do they are dated to the click, so look at the earlier date range as well as the upload date. If nothing appears after the window has passed and there is no rejection, the upload most likely carried no usable identifier.
How is conversion discrepancy different for healthcare?
The mechanics are the same as any other vertical. The difference is what you are allowed to send. Curve strips what should not leave before forwarding, and a gap between sent and credited must never be closed by sending more patient data. The FTC has pursued health data disclosures to ad platforms on unfairness grounds, and a wider match rate is not worth that exposure.
Can Curve Analyst fix a broken destination?
No. It reads only, cannot change tracking or destinations, and does not report on connector health today, although that is planned. It will show you that sent is zero or that credited has stopped following sent. The fix happens in the Curve dashboard's tracking and destination settings.
If you would rather see the reconciliation view on your own account than read about it, book a demo and bring the period that has been bothering you.
Related articles
- GuideHIPAA-Compliant Conversion Tracking Setup: Step-by-Step for Google, Meta, and Microsoft Ads
- GuideED Treatment Advertising: How to Run Compliant Campaigns Across Google, Meta, and TikTok
- GuideMeta vs Google: Comparing HIPAA Compliance Capabilities for Preventive Medicine Practices
- GuideMeta vs Google: Comparing HIPAA Compliance Capabilities for Home Healthcare Services
Stay Compliant. Scale Confidently.
Join healthcare innovators who trust Curve for HIPAA-compliant ad tracking.Launch in hours, not months. Your growth stack, now HIPAA-safe.
Book a free tracking audit