Skip to main content
FreshpaintWebsite and marketing platforms

Freshpaint is live, the pixels are gone, and Google Ads stopped learning

You moved to Freshpaint so patient data stops leaking to ad platforms, and that worked. Then Google Ads and Meta conversions dropped off a cliff and Smart Bidding started optimizing on almost nothing. The privacy filtering usually isn't what broke it. More often the allowlists are tighter than your compliance team actually requires, the Google Ads import conversion actions were never built, or attended visits never got wired back. We fix it inside Freshpaint, with your compliance team approving every field that leaves.

Free30 minutesNo obligation

Freshpaint · what breaks

What goes wrong after a clinic moves to Freshpaint

  1. 01

    Google Ads conversions fell to a trickle overnight

    Freshpaint only sends Google an event when the visit carries a gclid, gbraid or wbraid, and in HIPAA Mode those must be allowlisted. Miss either step and you bid blind on cardiology or oncology keywords.

  2. 02

    Meta gets events but can't match them

    Freshpaint's Meta Conversions API destination needs the browser user agent, with $fbclid and action_source recommended, and each waits on legal approval. Without them, Meta can't credit conversions to the ads that drove them, so campaigns optimize on thin, poorly matched data.

  3. 03

    The old pixels never fully left

    A Meta Pixel in a CMS template or a GA4 tag on the urgent care booking page keeps firing beside Freshpaint. That's a compliance problem first, and it can double-count conversions on top of Freshpaint's.

  4. 04

    Ads optimize to form fills, not patients who showed up

    A booking request isn't a visit. If only the website event reaches Google and Meta, the algorithm buys more no-shows, and you can't see which campaigns fill the schedule.

Freshpaint · the fix

What changes — Freshpaint

  • Every ad-driven conversion actually reaches Google and Meta

    Click IDs allowlisted with sign-off, import actions mapped by ctname or ctid, and each event timestamped after its click so Google accepts it.

  • Bidding learns from attended visits

    Attended appointments from your EHR or scheduling records go back as their own conversion, kept apart from booking requests.

  • One clean path per destination

    Leftover pixels found and removed, every destination server-side in HIPAA Mode, and nothing double-counted.

Freshpaint · architecture

What Freshpaint actually lets you hook into

Everything below is from Freshpaint's own documentation and product pages. Where the docs don't say, we test it on your account.

  1. 1

    HIPAA Mode on server-side destinations only

    Freshpaint applies its PHI rules on its servers, so a destination set to client-side with HIPAA features on is invalid.

  2. 2

    Project and destination allowlists

    Any property not allowlisted is stripped before it reaches a non-HIPAA destination; project-level entries apply to every destination.

  3. 3

    Google Ads Conversion API destination

    Supports HIPAA Mode, needs import conversion actions, and sends only events from Google Ad clicks. Freshpaint's docs also warn that importing GA4 events as Google Ads conversions is non-compliant.

  4. 4

    Meta Conversions API destination

    Server-side delivery, with user agent required and $fbclid plus action_source recommended for matching.

  5. 5

    Appointment and EHR data

    Freshpaint describes matching stored click IDs to booking and attendance records from EHR or scheduling systems, including Epic reporting extracts, over direct connections, APIs or SFTP.

  6. 6

    Custom domain and webhooks

    CNAME records put the SDK on your own subdomain, and a Webhooks destination posts events to an endpoint you control; we confirm its HIPAA Mode settings before anything is sent.

Freshpaint · diagnose

Where Freshpaint tracking breaks, in diagnostic order

We start with the settings that silently drop events, because on Freshpaint the usual fault is a conversion withheld, not a conversion leaked.

  1. 01

    Check each destination's connection mode

    Client-side plus HIPAA features means the destination isn't doing what anyone thinks.

  2. 02

    Read the allowlists for click IDs and conversion names

    $gclid, $gbraid, $wbraid and ctname or ctid for Google; user agent, $fbclid and action_source for Meta.

  3. 03

    Confirm the Google Ads actions are import type

    Website-type actions won't take Conversion API uploads.

  4. 04

    Send a test conversion from a tagged click

    Then watch it arrive in Google Ads and Events Manager, timestamped after the click.

  5. 05

    Scan the site for tags outside Freshpaint

    Freshpaint's Web Tracker Monitoring helps, but we also load each booking page and read the network requests.

  6. 06

    Check the attended-visit feed

    If no EHR or scheduling data reaches Freshpaint, bidding is still learning from requests.

Freshpaint · prove

The QA evidence — Freshpaint

Run on your live site through real ad clicks, with your compliance contact reviewing payloads before production.

Source of truth

Your EHR or scheduling system's appointment records — ad-sourced bookings and attended visits by date, matched to the click IDs Freshpaint stored

  • A test click from each platform, with the click ID confirmed on the Freshpaint event.
  • The outgoing payload checked against the approved allowlist, field by field.
  • Each conversion seen once in Google Ads and once in Meta Events Manager.
  • No requests to ad platforms from any tag outside Freshpaint.
  • Attended visits reconciled against both platforms across a closed window.
  • Repeated 30 days later and after any website or allowlist change.

Freshpaint · free audit

What we check in the free audit

  • Check each destination's connection mode
  • Read the allowlists for click IDs and conversion names
  • Confirm the Google Ads actions are import type
  • Send a test conversion from a tagged click
  • Scan the site for tags outside Freshpaint
  • Check the attended-visit feed

Checked against

Your EHR or scheduling system's appointment records — ad-sourced bookings and attended visits by date, matched to the click IDs Freshpaint stored

Get my free conversion tracking audit

Free30 minutesNo obligation

Freshpaint · when not to buy

When you don't need us on Freshpaint

Freshpaint's own team handles a lot of this, and some setups are already right.

  • If Google Ads and Meta already report numbers close to your ad-sourced appointments and attended visits are flowing back, keep what you have.
  • If your compliance team won't approve any click ID leaving Freshpaint, configuration can't fix ad attribution. Run on aggregate reporting instead, and we'll tell you so.
  • If you're mid-rollout and Freshpaint's implementation team is still connecting your EHR, let them finish before anyone else touches it.
  • If ad leads come in almost entirely by phone and CallRail or CallTrackingMetrics already reports qualified calls to Google Ads with your compliance team's approval, Freshpaint's web events matter less and the call side may already be fine.

Freshpaint · what we deliver

The event map on Freshpaint

  • Ad landing with click ID captured

    gclid, gbraid, wbraid or fbclid stored by Freshpaint on arrival, with the page URL handled under your HIPAA Mode settings rather than passed through raw.

  • Appointment request submitted

    A generic event name with no service line, condition or provider in it, so the label itself can't carry health information.

  • Call from an ad

    If CallRail or CallTrackingMetrics is connected (both sit in Freshpaint's integration directory), ad calls are counted once and kept apart from form requests.

  • Appointment booked

    From your scheduling records, sent to its own Google Ads import action.

  • Appointment attended

    The primary bidding conversion, matched on the stored click ID and sent only for visits that happened.

  • Excluded on purpose

    Patient portal logins, existing-patient rebookings, bill pay and anything not on the approved allowlist.

Written guarantee

95%+ tracking accuracy

Measured against Your EHR or scheduling system's appointment records — ad-sourced bookings and attended visits by date, matched to the click IDs Freshpaint stored. Miss it and we keep working at no cost.

Get my free conversion tracking audit

From $400 · See packages

FAQ

Freshpaint questions, answered

Usually because Freshpaint only sends Google events that carry a gclid, gbraid or wbraid, and in HIPAA Mode those properties must be allowlisted. The other common cause is missing import-type conversion actions in Google Ads.

Free · 30 min

Get Freshpaint feeding your ads again

Free30 minutesNo obligation