# Track visitors from an ad to an event RSVP or ticket
Connect event analytics, understand which actions gigiii reports, and test an ad-to-event journey.

If an ad sends visitors to your website, you can measure a visit and widget click there, then measure an RSVP or native ticket order on the gigiii event page. These are separate browser events. A widget click does not prove that a guest registered or paid.

## Before you start

You need a published gigiii event, the current **Events → Embed** snippet on your website, and a Premium account with access to external analytics. An account owner or admin can save a GA4 measurement ID (`G-…`), a Google Tag Manager container ID (`GTM-…`), or a Meta Pixel ID in **Business settings → Integrations**. These connections are independent. A GTM ID alone does not create GA4 or Google Ads conversions: your container needs the appropriate tags and triggers.

Connect your website's consent manager to `GigiiiEmbed.setConsent({ analytics, marketing })`. Pass both current boolean choices on every page load and when they change. Until you do, the widget passes neither campaign parameters nor interaction events to your website. The visitor also makes a separate cookie choice on gigiii. Analytics consent there enables your GA4 and GTM connections; both Analytics and Marketing consent are needed for your Meta Pixel. Website consent does not replace gigiii consent.

## What gigiii reports

| Action | Where to check | Meaning |
| --- | --- | --- |
| Ad landing and website page view | Your website's own tags | The visitor reached your page. |
| `gigiii_embed_event` with `event_selected` or `primary_cta_clicked` | Your website's `dataLayer` | The visitor clicked an event link or button in the widget. |
| Event page view | GA4/GTM and Meta on gigiii, subject to consent | The hosted event page loaded. |
| `generate_lead` / Meta `CompleteRegistration` | Your connected GA4 / Meta Pixel | A free RSVP or free native ticket was confirmed. In GA4, `gigiii_conversion_type` distinguishes `rsvp` from `free_ticket`. |
| `begin_checkout` / Meta `InitiateCheckout` | Your connected GA4 / Meta Pixel | The visitor submitted a valid native ticket form. Checkout creation or payment may still fail. |
| `purchase` / Meta `Purchase` | Your connected GA4 / Meta Pixel | A paid native ticket order reached the confirmed state. |

Gigiii also emits older `gigiii_*` events for existing reports and GTM mappings. A standard event and its older counterpart can describe the **same action**. Do not count both as separate conversions. GA4, GTM and Meta page-view or conversion tags that you add yourself can also duplicate direct events from a saved GA4 or Meta ID. Review your GTM triggers and any automatic Pixel events before using counts for ads. The Integrations page lets you remove an ID or turn off GTM; it does not offer a switch for each event name.

First-party counts in **Events → Performance / Guests** come from gigiii records and may differ from browser analytics. Consent denial, browser blocking, ad blockers, delayed tags and repeat visits can make platform counts lower or different. External ticket and RSVP providers do not send a confirmed conversion through this connection.

## Platform prerequisites

- **GA4 and Google Ads:** Use the same GA4 web stream on your website and gigiii event pages. Configure [GA4 cross-domain measurement](https://support.google.com/analytics/answer/10071811?hl=en) for both domains and test a real click through the widget. Linking domains alone does not prove that the `_gl` linker survived the iframe and navigation. For Google Ads reporting, enable [auto-tagging](https://support.google.com/google-ads/answer/1752125?hl=en), link the Ads and Analytics accounts, mark your chosen GA4 event as a key event, and [create a conversion from it](https://support.google.com/google-ads/answer/2375435?hl=en). Gigiii does not create a Google Ads conversion action for you.
- **Meta Ads:** Save the Pixel ID that belongs to the campaign, and verify `CompleteRegistration` or `Purchase` in Meta Events Manager after the gigiii consent choice. Do not configure a second GTM tag for the same confirmed action. Gigiii does not provide a customer Conversions API connection.
- **TikTok and other ad platforms:** Gigiii has no direct TikTok Pixel or Events API connection. A campaign can still drive visitors to your site, and your own consented tags can measure website and widget interactions. A completed RSVP or purchase on gigiii is not automatically sent to TikTok. If you use your GTM container for another platform, you must configure, consent-gate and test that platform's tags yourself. See [TikTok's GTM setup guide](https://ads.tiktok.com/help/article/get-started-google-tag-manager?lang=en).

With website Marketing consent, the current embed passes supported campaign parameters such as `gclid`, `gbraid`, `wbraid`, `fbclid`, `ttclid` and UTMs from the **current website URL** to the gigiii event link. Your ad landing URL must actually contain the parameter. Forwarding a click ID helps preserve context; it does not guarantee that a platform attributes the conversion, and it does not create a TikTok conversion.

## Check one journey

1. Open the real ad landing page with a test campaign URL. Confirm the expected click ID or UTM is present in that page's address bar. Apply the website consent choice and click one widget event link.
2. In your website's GTM Preview or browser `dataLayer`, check for one `gigiii_embed_event` with the expected event ID and action. It is an interaction, not a sale.
3. On the gigiii event page, check the URL for `gigiii_source=widget` and, if website Marketing consent was granted, the supported campaign parameter. Make the separate gigiii cookie choice.
4. Complete a test RSVP or an authorized test ticket order. Check GA4 DebugView, Meta Test Events, or your GTM Preview for the relevant **confirmed** event. Check Google Ads conversion status separately after its conversion action is configured. Repeat with consent denied to verify that the expected browser tags stay off.
5. Compare against **Events → Performance / Guests**. If a browser event is absent, first check the two consent choices, the saved ID and GTM enabled state, your container's triggers, browser blocking, and whether the order actually reached a confirmed state.

Inspect the **event link inside the widget** during setup: a campaign parameter on the iframe URL alone does not prove it reaches the gigiii event page. If the link has no parameters, install the current embed snippet and check that your consent bridge passed a complete Analytics and Marketing choice.

For the widget event schema and a consent bridge example, see the [technical embed tracking guide](https://github.com/judsonlmoore/gigiii/blob/staging/docs/integrations/embed-tracking.md) and [embed consent guide](https://github.com/judsonlmoore/gigiii/blob/staging/docs/integrations/embed-consent.md).
