GTM dataLayer
Karpa loads your Google Tag Manager container on every intake page (including follow-up/renewal forms) and pushes no-PHI dataLayer events. You configure GA4, Meta Pixel, or TikTok Pixel tags inside your own GTM container.
Overview
Karpa doesn’t connect directly to Google Analytics, Meta, or TikTok. Instead, Karpa loads your GTM container on every intake page and pushes events into the dataLayer. You add tags for GA4, Meta Pixel, or TikTok Pixel inside your own GTM container and set the trigger to one of the events below.
These events only carry the program name, form step (including the screen id/name), and
price. They never carry patient name, email, date of birth, address, or answers. The
intake_form_started event marks the start of the funnel, and intake_step_view includes a
step_id (page id) and step_name (human label, e.g. “Medical History”) so you can build
funnels that show which screen a patient abandons on — not just a step number.
Events
| Event | Fires when |
|---|---|
intake_form_started |
The patient begins the intake form |
intake_step_view |
The patient reaches a new step in the form |
intake_checkout_view |
The patient reaches the checkout step |
intake_payment_authorized |
The patient authorizes payment (card captured — not a charge) |
intake_form_submitted |
The patient reaches the confirmation page |
For the exact data payload each event carries, hand your engineer the technical reference.
GA4
- In GTM, add a new tag → GA4 Configuration (or GA4 Event tag).
- Set the Measurement ID from your GA4 property.
- Set the trigger to a Custom Event matching e.g.
intake_payment_authorized. - Map the dataLayer variables (e.g.
program,priceCents) to GA4 event params.
Meta Pixel
- In GTM, add a new tag using the Meta Pixel template (or custom HTML).
- Set the trigger to
intake_payment_authorizedfor a payment-start / authorization signal (this is NOT a purchase — the card is captured, not charged). - Optionally add
intake_form_startedfor a Lead event.
TikTok Pixel
- In GTM, add the TikTok Pixel tag template (from the GTM Community Template Gallery).
- Set the trigger to
intake_payment_authorizedfor a payment-start / authorization signal (this is NOT a purchase). - Optionally add
intake_form_startedfor a SubmitForm event.
Purchase attribution: the patient is only actually charged later, server-side, when the prescription is approved/settled. Do not wire
intake_payment_authorizedas a Purchase/CompletePayment conversion. If you need purchase attribution, ask your Karpa contact about server-side settlement signals.