Skip to content

Quick start ​

This walkthrough takes you from zero to a provisioned GTM web container in a few minutes.

Prerequisites ​

  • A Google Tag Manager account with both a web and server container created.
  • A Google Cloud Service Account with access to the GTM API. See Google API setup.
  • The service account email added as a user of your GTM account (with publish rights).

1. Create sesamy.yaml ​

In your project root, create a minimal sesamy.yaml:

yaml
# yaml-language-server: $schema=https://raw.githubusercontent.com/foomo/sesamy-cli/refs/heads/main/sesamy.schema.json
version: '1.1'

redactVisitorIp: true
enableGeoResolution: true

googleApi:
  credentialsFile: ./google_service_account_creds.json
  requestQuota: 15

googleTagManager:
  accountId: '6099238525'
  webContainer:
    tagId: GTM-XXXXXXXX
    containerId: '175355532'
  serverContainer:
    tagId: GTM-YYYYYYYY
    containerId: '175348980'

googleTag:
  tagId: G-XXXXXXXXXX
  sendPageView: true

googleAnalytics:
  enabled: true
  googleConsent:
    enabled: true
    mode: analytics_storage

The $schema comment gives you autocomplete and validation in editors with YAML language server support (VS Code, JetBrains, Neovim).

2. Preview the diff ​

Before touching GTM, see what sesamy plans to change:

bash
sesamy diff web
sesamy diff server

The first run will show every tag, trigger, and variable as created.

3. Provision ​

Apply the changes:

bash
sesamy provision web
sesamy provision server

This creates / updates entities in the configured workspace. Rerun sesamy diff afterward — it should report no changes.

4. Inspect ​

bash
sesamy list web
sesamy list server

Lists every tag, trigger, and variable managed under the workspace, including ones the CLI considers unused.

5. Generate TypeScript events (optional) ​

If you use sesamy-go to define your event model, generate TypeScript types:

bash
sesamy typescript

Output goes to the outputPath configured under googleTag.typeScript. See the sesamy-go integration guide for details.

Next steps ​

  • Browse the full Configuration reference.
  • Enable additional Providers one at a time and re-provision.
  • Wire sesamy diff into CI to catch drift.