Skip to main content
Guide

Optimize Healthcare Ads for Attended Appointments

How to optimize healthcare ads for attended appointments, not form fills, from the scheduler and EHR back to Google Ads and Meta, with Curve Compliance.

8 min read

To optimize healthcare ads for attended appointments, stop telling Google Ads and Meta that a form fill is the goal and send them a conversion when the patient actually shows up. That takes three connected steps: keep the ad click when the patient leaves your site to book, bring the appointment outcome back from your scheduler, EHR or CRM, and send it to the ad platforms server-side with no health details. Curve Compliance does all three for clinics, telehealth brands and multi-location groups. It signs a BAA on every plan, and Curve's team does the setup, typically live in about a week.

Book a call. Curve Compliance credits attended appointments to the ads that brought each patient in and sends them to Google Ads and Meta server-side, with no health information in what the platforms receive. Book a call with Curve.

Why form fills mislead

A form fill records interest, not a patient. Some people who submit a form never book. Some book and cancel. Some book and don't show. Some are existing patients, duplicates or people outside your service area. When Google Ads or Meta is told that every form fill is a success, its bidding learns to find more people who fill in forms, whether or not they ever attend. The campaigns that look best on form fills can be the ones that bring in the fewest patients, while the campaigns that bring in valuable patients look expensive and get cut. What your ad data explains about no-shows goes further into that gap.

Optimizing for attended appointments fixes the signal. The platform hears about the visits that happened, so it can learn which clicks turn into patients. The hard part is technical. The attended appointment is recorded in a scheduler or an EHR, days after the click, in a system the ad platform never sees, and that record is full of health information that must not reach Meta or Google.

How a click becomes an attended appointment

Curve Compliance connects the two ends in five steps.

  1. Capture the click. The Curve Compliance script replaces the Meta Pixel and Google tag on your site. When a patient lands from an ad, it records the click ID Google or Meta put in the URL, such as a gclid or fbclid, plus the UTM parameters and the session, and sends them to Curve's servers instead of to an ad platform.
  2. Carry it to the scheduler. When the patient clicks through to book, Curve Compliance passes the scheduler a short reference to that ad click, called a bridge token, as part of the booking link. The token carries no form content and is not a patient identifier. Plain links to IntakeQ, Calendly, Acuity, Jane App, OptiMantra, Boulevard, ZocDoc, Mindbody, Vagaro, Square, Setmore and Booker are handled automatically, and Curve's team sets up GoHighLevel funnels, pop-ups and embedded booking widgets. A booking made days after the click still matches.
  3. Bring the outcome back. Outcomes return to Curve Compliance three ways: incoming webhooks from booking systems, CRMs and call tracking; Keragon, a separate HIPAA-compliant automation service with its own BAA, which connects EHR and intake tools such as Healthie, Athenahealth, OptiMantra, IntakeQ and Jane App; and offline CSV uploads from any CRM or EHR, matched by email, click ID or bridge token.
  4. Credit the original ad. Curve Compliance matches each outcome to the visit it came from and creates the conversion with that visit's click IDs and UTMs attached. You name the event, such as appointment_attended, and decide for each platform whether it is sent.
  5. Send it server-side and check it landed. Curve Compliance sends the attended appointment to Google Ads and Meta from its own servers. Event Logs show what was sent to each platform and what the platform accepted.

Sending attended appointments back to Google Ads and Meta

Once an attended appointment is credited to a click, it can train your campaigns. In Google Ads it becomes a conversion action your bidding can optimize for, and in Meta it arrives through the Conversions API as an event your campaigns can use. Neither platform needs to know what the visit was for. The appointment record itself is not what gets forwarded: Curve Compliance gives each platform a fixed list of permitted fields and strips everything else before sending, so a field that isn't on the list can't leave, whatever the event contains.

What is sentMeta Conversions APIGoogle Ads
Event name and timeYes, under a neutral name you chooseYes, as a conversion action
Click IDfbclid and Meta cookiesgclid, gbraid or wbraid
Page addressSite address, with no page path or query stringNot sent
Value and currencyWhen the conversion carries themWhen the conversion carries them
Email and phoneOff by default; SHA-256 hashed when enabledOff by default; SHA-256 hashed when enabled
Page title, free text, form answersNeverNever

Google Ads won't accept a conversion more than 90 days after the click, so send outcomes as they happen, through a webhook or Keragon, or in regular uploads. For the Google side in more depth, see Google Ads offline conversions for patient appointments.

Revenue, not just appointments

An attended appointment can carry a value, such as the amount from your billing system or CRM. Curve Compliance forwards value and currency to Google Ads and Meta with the conversion, so value-based bidding has something real to learn from. In Campaign Reporting, ad spend from Google Ads and Meta sits next to the conversions and revenue Curve Compliance tracked, with ROAS and CPA, for every platform, campaign, ad set and ad. Connect HubSpot or WhatConverts and their outcomes show as CRM revenue and close rate. Click any conversion count to see the conversions behind it, and open a single prospect's journey from ad click to booking. Five attribution models (Last Click, First Click, Linear, Time Decay and U-Shaped) show how credit moves when a patient clicked more than one ad.

Multi-location groups

A group with many locations usually runs campaigns by location or region. Campaign Reporting breaks spend, attended appointments and revenue down by platform, campaign, ad set and ad, so each location's campaigns show their own results side by side. Groups that want each location kept separate can run each one as its own organization in Curve Compliance, with its own script, mappings and destinations, and one group login that opens any of them. See DSO conversion tracking and location rollup for how groups structure it.

What if you can't connect your EHR?

Use an offline upload. Export the outcomes you count, such as attended appointments, from your EHR, CRM or practice management system as a CSV, one row per visit, with the identifier you will match on: the email the patient gave on your site, an ad click ID your CRM stored, or the bridge token your scheduler kept. Upload it under Offline Conversions, name the event, and Curve Compliance matches each row to a tracked visitor. Matched rows are forwarded like any other conversion, and Upload Logs show how many matched. A regular upload, weekly for example, keeps your outcomes inside Google's 90-day window.

Setup

Curve's team does the setup for you, typically live in about a week. That covers the script, the bridge tokens for your scheduler, the incoming webhooks, the event mapping for each ad platform, and the BAA. If your EHR connects through Keragon, you build the workflow in your Keragon account, and Curve's team helps with the field mappings so appointment outcomes match correctly.

If you are comparing tools

Freshpaint lists "Match ad click IDs (GCLID, FBCLID) with appointment records and attendance status" as part of its Ad Performance product, with appointment data pulled "via direct connections and secure SFTP." Curve Compliance covers the same path from ad click to attended appointment with bridge tokens through the scheduler, incoming webhooks, Keragon connections and offline uploads. It signs a BAA on every plan, and Curve's team does the setup. For a fuller side-by-side, see Curve vs Freshpaint for small practices.

Book a call. Curve's team will map your path from ad click to attended appointment, including your scheduler and EHR, and show where each conversion would come from. Book a call with Curve.

Frequently Asked Questions

How do I optimize Google Ads for attended appointments instead of form fills?

Create a conversion action for attended appointments, send it the visits that actually happened, and make it the goal your campaigns bid on. Curve Compliance keeps the gclid when the patient books, brings the attended appointment back from your scheduler, EHR or CRM, and sends it to Google Ads server-side with no health details.

Is it HIPAA compliant to send attended appointments to Meta?

It can be, when Meta receives the conversion and nothing about the patient's health. Meta's Business Tools Terms bar data that "includes or is based on, directly or otherwise, health information." Curve Compliance sends a neutral event name, the fbclid, a value if you use one and hashed identifiers if enabled, never the appointment record, page title or form answers, under a BAA it signs on every plan.

Which EHRs and schedulers work with Curve Compliance?

Bridge tokens keep the ad click through IntakeQ, Calendly, Acuity, Jane App, OptiMantra, Boulevard, ZocDoc, Mindbody, Vagaro, Square, Setmore and Booker. EHR and intake tools such as Healthie, Athenahealth, OptiMantra, IntakeQ and Jane App connect to Curve Compliance through Keragon. Booking systems, CRMs and call tracking tools can also send outcomes by webhook, and any system that exports a CSV can return them by offline upload.

Can Curve Compliance track revenue from each appointment?

Yes. An outcome can carry a value, which Curve Compliance forwards to Google Ads and Meta with the conversion, and Campaign Reporting shows revenue, ROAS and CPA next to ad spend. With HubSpot or WhatConverts connected, CRM revenue and close rate show as well.

What if my EHR has no integration?

Upload attended appointments as a CSV exported from your EHR or CRM. Curve Compliance matches each row to a tracked visitor by email, click ID or bridge token and forwards the matches to Google Ads and Meta like any other conversion.

How long does setup take?

Curve's team does the setup for you, typically live in about a week, including the script, the scheduler links, the webhooks, the event mapping for each ad platform and the BAA.

Next step

Check your own site

See if your website is at risk. Enter your domain to scan it for tracking scripts that can expose patient data.

Or book a tracking audit

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