Conversions
How named events become GA4 key events and Google Ads conversions, the conversions WHA counts, and the boundary of what's measurable.
Event Tracking covers how the site emits events. This page covers what happens next: how those events become conversions in GA4 and Google Ads, which ones WHA counts, and where the measurable funnel ends.
Destinations
FreshPaint is the tag layer. The site emits clean, named events to FreshPaint, which forwards them to three integrations:
| Destination | Role |
|---|---|
| Google Analytics 4 (proxy) | Behavioral analytics; the source for key events that Google Ads can import |
| Meta Conversions API | Paid-social conversions |
| Google Ads | SEM conversions |
GA4 and Meta are downstream of FreshPaint, not direct adapters — see the adapter and consent model.
Making an event a Google Ads conversion
There are two ways an event becomes a Google Ads conversion:
- Import from GA4 — Ads pulls in a GA4 conversion. The event has to exist in GA4 and be marked there as a key event, with GA4 and Ads linked. If it isn't a GA4 key event, Ads won't let you select it.
- Add a transformation in FreshPaint — assign a
conversion_labelto the event and send it to the Google Ads integration. FreshPaint posts the conversion to Ads directly; GA4 isn't involved.- Create (or open) the conversion action in Google Ads: Goals → Conversions → new conversion action. Google gives you a Conversion ID and a conversion label. For a conversion that already exists, the label already exists — reuse it.
- Add a transformation in FreshPaint: on the event you want to count (e.g.
schedule_an_appointment_complete), add a Modify Data transformation → Send Constant Propertyconversion_label = <the label>, targeting the Google Ads integration.
Pick one path per conversion — never both. A single event sent to Ads both as an imported GA4 key event and a FreshPaint conversion_label transformation counts twice and inflates bidding signal. When repointing a conversion, retire the old path as you wire up the new one.
To revive a dead conversion, reuse the same label the dead event carried — attach it to the live named event, and the existing Ads conversion action keeps counting from the new trigger. No new conversion action needed in Ads. (See the migration to-do list for the conversions that currently need this.)
What WHA counts
The booking funnel and CTA events the theme emits in code are the stable backbone, preferred for any conversion the theme already fires because they survive redesigns and carry useful properties. The highest-value ones:
schedule_an_appointment_complete— the booking handoff to MyHealth. This is the primary appointment conversion (see the boundary below).cta_click(withtype),phone_call,directions,form_submit— intent signals usable as secondary conversions.
See Event Tracking for the full event list and their properties.
Filtering to one service? The event stores the service as an ID, not a name. Look it up in the visit-types list — each entry's term_id is the value to match type_id against.
Match on path or named event, never full URL. Exact full-URL matches ($current_url Equals …) silently exclude paid traffic carrying ?gclid= / UTM params. Define URL-rule events on path, not the full query string.
Where measurement ends
Measurement boundary
Appointments are booked on MyHealth, a separate system on another domain, and that booking data isn't available. The booking handoff (schedule_an_appointment_complete) is the furthest we can measure. Treat it as "reached the booking handoff," a strong intent signal, not a confirmed visit. Define conversions on handoffs + tracked calls + key form submits, not on booked appointments. Measuring true booked appointments needs data from MyHealth itself.
Consent
Conversions reflect the consented subset only. A booking handoff or call from a visitor who declined analytics is kept in the first-party log but not forwarded to GA4 / Ads so conversions rates will be below true activity. See Consent for how the gating works.
Related
- Event Tracking — how events are emitted, enriched and dispatched
- Migration & SEO Continuity — the launch audit that flagged the conversions needing repointing
- SEO Strategy — the full measurement stack from visibility to outcomes
Event Tracking & Analytics
How the analytics system records on-site events, enriches them with context and forwards them to FreshPaint, GA4 and other destinations, consent-aware and first-party by default.
SEO
How search optimization is handled across WHA — Yoast for meta and sitemaps, Schema Pro for structured data, BrightEdge for recommendations, plus editor and developer practices.