Sutra can load your own Google Tag Manager container on your space's public pages and checkout, and it tells that container when someone views a page, starts checkout, buys, starts a trial, or registers. Use it to run several ad or analytics tags from one place, or to send purchases to a tool Sutra doesn't list on its own.
Requires the Gold plan. If you only need one tool, such as a Facebook pixel, Google Analytics or TikTok, you don't need Tag Manager. Pick that tool from the same list instead; see Add analytics and ad tracking to your space.
Add your container
Open your space and go to Manage → General settings → Registration page settings.
Scroll to Add third party scripts at the bottom of the section.
Click Add script.
Under Script provider, choose Google Tag Manager.
Paste your Container ID. It starts with GTM-.
There's no save button. Changes are saved automatically a couple of seconds after you stop typing. To remove the container, click the red X on its row.
Scripts apply only to the space you add them to. Subspaces don't inherit them.
Where your container runs
The public registration page, if your space displays one.
The main content page.
The checkout page.
The Payment confirmed page, which guests land on after paying without being signed in. Signed-in buyers skip it.
It does not load on discussion pages, event pages, or the rest of the members-only area. For what happens inside your space, use participation analytics instead.
Sutra uses its own data layer name
On Sutra, your container does not read the usual dataLayer. It reads a data layer named sutraSpaceDataLayer. This keeps each creator's tracking separate: your container only ever receives events from your own space.
Your container picks this up on its own, so the tags, triggers and variables you build in Tag Manager's interface need no changes.
It only matters for code you write yourself. If you paste a snippet into a Custom HTML tag, or follow a vendor's guide that says dataLayer.push(...), change it to sutraSpaceDataLayer.push(...). A push to plain dataLayer never reaches your container.
Events Sutra sends to your container
A Sutra space doesn't reload the page as people move around, so Tag Manager's built-in page view trigger fires only once, on the first page someone lands on. Build your triggers on Sutra's events instead: create a Custom Event trigger and enter one of these as the event name.
sutra.page_view — each time one of the pages above is viewed. Data: page_path, space_slug.
sutra.initiate_checkout — once when someone opens the checkout page. Data: space_slug.
sutra.purchase — when a payment succeeds. Data: event_id, value, currency, content_ids, space_slug.
sutra.start_trial — when a free trial begins. Same data as a purchase, with a value of 0.
sutra.registration — when someone joins for free from one of the pages above, including a checkout that a coupon brings to zero. Data: space_slug, plus the purchase fields (with a value of 0) when it came through checkout.
About the data:
value is the amount charged in the plan's currency. 49 means 49.00, not cents.
currency is the three-letter code in capitals, such as USD.
content_ids holds the ID of the plan that was bought. It starts with plan_ and is the same ID Sutra's API uses.
event_id is unique to that purchase. Pass it to any tag that supports deduplication.
To use a value in a tag, create a Data Layer Variable in Tag Manager with the matching name, for example value or currency.
sutra.purchase fires the moment the payment succeeds, so it works whichever page you send buyers to afterwards.
Pick one place to own Meta
If you add a Facebook pixel in Sutra and your container also fires a Meta tag, every event is reported to Meta twice. Sutra shows a Meta configured twice? warning when both a Facebook pixel row and a Google Tag Manager row are on the list. Choose one:
Let Sutra own Meta. Keep the Facebook pixel row and leave Meta out of your container. Sutra sends page views, checkout starts and purchases to your pixel for you.
Let Tag Manager own Meta. Remove the Facebook pixel row and build your Meta tags on the events above.
It's fine to keep both rows when your container only runs other tools.
Check that it's working
Open your space's public registration page in your browser.
Open the browser's developer console.
Type sutraSpaceDataLayer and press Enter.
You should see a list that includes a sutra.page_view entry. If the name isn't recognized, the container isn't loading on that page; see below.
Troubleshooting
Choosing Google Tag Manager opens an upgrade message — it requires the Gold plan. Facebook pixel and Google Analytics work on any paid plan.
The Add script button is greyed out — a row on the list is missing a provider or has a missing or invalid ID. Fix it, or delete it with the red X.
A red message appears under the Container ID — IDs can only contain letters, numbers, dashes and underscores. Paste the ID on its own, not the surrounding script code.
My tags fire once and then stop — they're on Tag Manager's built-in page view trigger. Switch them to a Custom Event trigger on sutra.page_view.
My Custom HTML tag does nothing — it's pushing to dataLayer. Change it to sutraSpaceDataLayer.
Nothing shows up from inside my space — the container only runs on the pages listed above.
What's next
For the other tools on the list, the conversion events your Facebook pixel receives, and sending purchases to Meta from Sutra's servers, see Add analytics and ad tracking to your space.