Partner containers are not on the website by default. The corporate container is always there; a partner's container is added only when the visitor is on that partner's venue.
The trigger is location_selected. When a visitor picks a venue, the website reads partner_id and, if the venue belongs to a partner, injects that partner's GTM container. From then on it runs alongside corporate and sees the same dataLayer, so the partner's pixels and conversions get the same booking events corporate gets, for that visitor, on that venue.
What a partner container can do:
Run the partner's own GA4 property, Meta, Google Ads, TikTok, or any other pixel.
Fire conversions on any of the shared events (
click_booknow,initiate_checkout,purchase) using the shared parameters (value,location_id,venue_slug).Add enhanced conversions using the hashed fields the bridge already collects.
What it cannot do:
Load on the homepage, global pages, or another partner's venues. It is not there.
See events from before the visitor selected a location.
Change, rename, or re-fire the shared events. Those come from corporate and the bridge; partners consume them.
Put anything in the ROLLER checkout. The bridge is shared and fixed.
Onboarding a new partner: corporate creates the partner container from the template, the partner swaps in their own IDs, corporate adds the partner's venues to the mapping so partner_id resolves, and the container goes live on the next location_selected. Nothing is installed in ROLLER. A separate onboarding checklist covers the exact steps.