Skip to content

Providers ​

Each provider is a self-contained module under pkg/provider/ that knows how to wire its tags, triggers, and variables into both the web and server GTM containers (where applicable). You enable them with enabled: true in the relevant section of sesamy.yaml.

Catalog ​

ProviderWebServerConsentServer events
Google Tag✔———
Google Analytics✔✔analyticsPageView, SelectItem, ...
Google Ads✔✔adAddToCart, Purchase
Conversion Linker✔—ad—
Facebook—✔adAddToCart, Purchase, ...
Pinterest—✔analyticsAddToCart, Purchase, ...
Microsoft Ads—✔adconversions
OpenAI Ads—✔adconversions
Criteo—✔—AddToCart, Purchase, ...
Emarsys—✔analyticsPurchase, ViewItem, ...
Mixpanel—✔analyticsPageView, Purchase, ...
Umami—✔analyticsPageView, SelectItem
Tracify—✔analyticsAddToCart, Purchase, ...
UTM—✔adall events
Hotjar✔———
Cookiebot✔—CMP—

"Consent" indicates the Google Consent Mode signal the provider respects by default. You can override per provider.

Shape of a provider config ​

Most providers share the same shape:

yaml
<providerName>:
  enabled: true
  # provider-specific identifiers (pixel IDs, tokens, ...)
  googleConsent:
    enabled: true
    mode: ad_storage          # or analytics_storage
  serverContainer:            # if the provider supports server-side
    directory: .
    packages:
      - path: github.com/foomo/sesamy-go/pkg/event
        types: [PageView, AddToCart, Purchase]
  • enabled toggles the provider entirely. Disabled providers are not provisioned.
  • googleConsent wires consent mode for the provider's tags. Disable it if your consent flow is handled differently.
  • serverContainer.packages lists the sesamy-go (or your own) event types this provider should handle.

Adding a provider ​

  1. Set enabled: true and fill in the identifiers.
  2. Add the event types you care about under serverContainer.packages (and webContainer.packages for providers that have a web component).
  3. sesamy diff → review → sesamy provision.