Dashboard

Marketing

Marketing Setup & Runbook

Single-pane checklist for launching paid acquisition and keeping the operations stack healthy.

Setup Progress

Checking configuration...

Checking configuration...

Every incoming URL with utm_* / gclid / fbclid is captured into a session cookie and stamped on every booking row, so attribution survives across page loads and the Stripe redirect.

The cookie banner uses Google Consent Mode v2 defaults set to denied before GTM loads. GA4 then runs in cookieless mode until the user accepts. The Meta Pixel is loaded with fbq('consent','revoke') and never auto-fires PageView; cookie-consent.tsx grants consent and fires PageView on accept.

Build tagged URLs in the campaign manager:

/marketing/campaigns

Paste your IDs in Settings → Analytics. The site reads them from the public /api/analytics-config endpoint and injects scripts at runtime.

Conversion events fire automatically via apps/web/src/lib/track.ts — you do not need to configure tags inside GTM:

  • · Tour detail → view_item + ViewContent
  • · Booking submit → begin_checkout + InitiateCheckout
  • · Confirmation page → purchase + Purchase (with bookingRef as Meta eventID for cross-load dedup)

Verify in GA4 Realtime + Meta Events Manager → Test Events. Conversion events appear within seconds of triggering them on a real page.