Connect Google Analytics 4 (GA4) to see which marketing leads to confirmed bookings. Ferb sends confirmed checkout outcomes to GA4 server-to-server through Google's Measurement Protocol. Checkout does not allow custom scripts or tag containers — this integration is the supported way to measure checkout, and it keeps working where browser tracking is blocked.
You need the owner or admin role and access to the GA4 property you want to use.
Find the Measurement ID for your GA4 web data stream. It starts with G-.
Create a Measurement Protocol API secret in that same web data stream (GA4: Admin → Data streams → your web stream → Measurement Protocol API secrets).
Know the HTTPS address or addresses where your Ferb booking widget is embedded, for example https://studio.example.
Open Integrations and select Google Analytics 4.
Enter the Measurement ID and Measurement Protocol secret.
Add every website origin where your Ferb booking widget appears. Use one complete HTTPS origin per line.
Choose an attribution level (see below), then click Test & activate.
Ferb tests the credentials before enabling the integration. The secret is stored encrypted and is never shown again.
Answer one question: does your website already load GA4 (its own Google tag or Tag Manager)?
Standard — recommended to start
Choose when: you want booking and campaign tracking with zero website work.
Website work: none — just the embed.
What you get: confirmed bookings and purchases in GA4, credited to UTM campaign parameters.
Standard needs no cookie-banner connection because campaign parameters are not personal data. What is sent to GA4 is still controlled by the visitor: someone who declines analytics at checkout is not tracked — that applies to every option below too.
Use your existing Google tag
Choose when: your website already runs GA4.
Website work: connect your cookie banner (see the next section).
What you get: everything in Standard, plus the visitor's GA session continues from your website into checkout. The session starts at the visitor's true landing page, so your channels and campaigns get full-funnel credit.
The Measurement ID you enter in Ferb must be the same GA4 property as the tag already on your website — otherwise the sessions cannot join.
Let Ferb manage your Google tag
Choose when: your website has no GA4 yet.
Website work: connect your cookie banner (see the next section).
What you get: Ferb loads a minimal GA4 tag on the pages that carry your embed, after the visitor consents, and continues that session into checkout.
Note that GA4 coverage starts on your embed pages: sessions begin there, pages before them are not measured, and campaign attribution is weaker for multi-page journeys. This option is an on-ramp, not a full website-analytics install. If you later add GA4 to your whole website, switch to "Use your existing Google tag" to upgrade your attribution.
Select the table below (click before the first cell, drag past the last), copy, and paste into the Gleap article.
Standard | Use you existing Google tag | Let Ferb manage your Google tag | |
Choose when | You want tracking with zero website work | Your website already runs GA4 | Your website has no GA4 |
Website work | None — just the embed | Connect your cookie banner | Connect your cookie banner |
Bookings & purchases in GA4 | ✓ | ✓ | ✓ |
UTM campaign attribution | ✓ | ✓ Full-funnel | ✓ From embed pages onward |
Website session continues into checkout | — | ✓ | ✓ |
GA4 coverage of your website | Your own setup, if any | Your whole website (your tag) | Embed pages only (Ferb's tag) |
Requirement | — | Same GA4 property as your website's tag | — |
This section applies to the two "Google tag" options. Standard skips it.
Your website keeps its own cookie banner — do not add a second one. Paste the embed code from your dashboard as-is; it does not include a consent attribute, and without one Ferb treats analytics consent as denied.
Then have your cookie banner's consent callback set the attribute on the Ferb script tag whenever the visitor's analytics choice changes:
// Run from your cookie banner / CMP consent callback:
const ferbEmbed = document.querySelector('script[data-brand]')
ferbEmbed?.setAttribute(
'data-ferb-analytics-consent',
analyticsGranted ? 'granted' : 'denied'
)Ferb watches this attribute live, so it takes effect immediately — on the first choice, and again if the visitor later withdraws consent. Never hardcode granted in the embed itself. Your developer can make this one-time connection, or ask an AI assistant like Claude to write it for your specific cookie banner.
When consent is granted, Ferb uses a short-lived signed handoff to retain the GA client and session identity through checkout. It does not put those identifiers in the checkout URL.
Ferb sends confirmed outcomes only after the relevant analytics consent is active. A confirmed booking is sent as booking_confirmed. A direct monetary booking also sends the purchase event. Refunds are sent as refund.
Ferb does not send email addresses, phone numbers, customer IDs, booking IDs, referral codes, or raw payment data to GA4. UTM campaign fields are included for attribution when they are available.
Add your checkout domain (for example yourstudio.ferb.co) in GA4 under Admin → Data streams → your web stream → Configure tag settings → List unwanted referrals. This prevents the checkout domain from showing up as a traffic source in your reports, so your bookings are credited to the campaign or channel the customer actually came from. You do not need GA4's cross-domain linking ("Configure your domains") — Ferb carries the session safely over to checkout for you.
Consent Mode reporting sends one browser-only outcome after a visitor declines checkout analytics. Enable it only if you have confirmed the lawful basis and consent disclosures for this measurement.
The test fails: check that the Measurement ID and API secret belong to the same GA4 web data stream.
No data appears immediately: a new GA4 property can take up to 30 minutes to begin collecting data. Standard reports take longer — check Realtime first.
Session continuity is not working: confirm the origin is listed both in the GA4 setup and in your website settings for the widget (www/apex differences do not matter), and that your cookie banner updates the Ferb embed after analytics consent.
You cannot change the setup: GA4 setup requires an owner or admin role.
Browse and install integrations
Set up Meta Ads tracking