Sesamy CLI
CLI to keep you sane while working with GTM.
Installing
Install the latest release of the cli:
$ brew update
$ brew install foomo/tap/sesamy-cli
Usage
$ sesamy help
Server Side Tag Management System
Usage:
sesamy [command]
Available Commands:
completion Generate the autocompletion script for the specified shell
config Print config
help Help about any command
tagmanager Provision Google Tag Manager containers
typescript Generate typescript events
version Print version
Flags:
-c, --config string config file (default is sesamy.yaml) (default "sesamy.yaml")
-h, --help help for sesamy
-v, --verbose output debug information
Use "sesamy [command] --help" for more information about a command.
Configuration
Add a sesamy.yaml
configuration
# yaml-language-server: $schema=https://raw.githubusercontent.com/foomo/sesamy-cli/v0.4.1/sesamy.yaml
# yaml-language-server: $schema=sesamy.schema.json
version: '1.0'
# Whether to redact the visitor ip
redactVisitorIp: true
# --- Google API settings
googleApi:
# Single line Service Account credentials
credentials: '{...\\n...\\n...}'
# Path to the Service Account credentials json file
credentialsFile: google_service_account_creds.json
# Current API request quota (send a request to increase the quota)
requestQuota: 15
# --- Google Tag Manager settings
googleTagManager:
# The account id
accountId: '6099238525'
# Web container settings
webContainer:
# The container tag id
tagId: GTM-57BHX34G
# The container id
containerId: '175355532'
# The workspace id that should be used by the api
workspaceId: '23'
# Server container settings
serverContainer:
# The container tag id
tagId: GTM-5NWPR4QW
# The container id
containerId: '175348980'
# The workspace id that should be used by the api
workspaceId: '10'
# --- Google Tag settings
googleTag:
# A tag ID is an identifier that you put on your page to load a given Google tag
tagId: G-PZ5ELRCR31
# Enable debug mode for all user devices
debugMode: false
# Whether a page_view should be sent on initial load
sendPageView: true
# TypeScript settings
typeScript:
# Target directory for generate files
outputPath: path/to/target
# Contemplate package config for generated events
packages:
- path: github.com/foomo/sesamy-go/pkg/event
types:
## GA4 Automatically collected events
## https://support.google.com/analytics/answer/9234069
- Click
- FileDownload
- FirstVisit
- FormStart
- FormSubmit
- PageView
- Scroll
- UserEngagement
- VideoComplete
- VideoProgress
- VideoStart
- ViewSearchResults
## Recommended events
## https://developers.google.com/tag-platform/gtagjs/reference/events
- AdImpression
- AddPaymentInfo
- AddShippingInfo
- AddToCart
- AddToWishlist
- BeginCheckout
- CampaignDetails
- CloseConvertLead
- CloseUnconvertLead
- DisqualifyLead
- EarnVirtualMoney
- Exception
- GenerateLead
- JoinGroup
- LevelEnd
- LevelStart
- LevelUp
- Login
- PostScore
- Purchase
- QualifyLead
- Refund
- RemoveFromCart
- ScreenView
- Search
- SelectContent
- SelectItem
- SelectPromotion
- SessionStart
- Share
- SignUp
- SpendVirtualCurrency
- TutorialBegin
- TutorialComplete
- UnlockAchievement
- ViewCart
- ViewItem
- ViewItemList
- ViewPromotion
- WorkingLead
# --- Google Analytics settings
googleAnalytics:
# Enable provider
enabled: true
# Google GTag.js settings
googleGTag:
# Provision custom client
enabled: true
# Client priority
priority: 10
# Patch ecommerce items
ecommerceItems: true
# Google Consent settings
googleConsent:
# Enable consent mode
enabled: true
# Consent mode name
mode: analytics_storage
# Google Tag Manager web container settings
webContainer:
# Contemplate package config for generated events
packages:
- path: github.com/foomo/sesamy-go/pkg/event
types:
- PageView
- SelectItem
# Google Tag Manager server container settings
serverContainer:
# Contemplate package config for generated events
packages:
- path: github.com/foomo/sesamy-go/pkg/event
types:
- PageView
- SelectItem
# --- Google Ads
googleAds:
# Enable provider
enabled: true
# Google Ads Conversion Tracking ID
conversionId: ''
# Google Consent settings
googleConsent:
# Enable consent mode
enabled: true
# Consent mode name
mode: ad_storage
# Google Ads Remarketing settings
remarketing:
# Enable Google Ads Remarketing
enabled: true
# Enable conversion linking
enableConversionLinker: true
# Google Ads Conversion settings
conversion:
# Enable Google Ads Conversion
enabled: true
# Google Ads Conversion Tracking Label
conversionLabel: ''
# Google Tag Manager server container settings
serverContainer:
# Contemplate package config for generated events
packages:
- path: github.com/foomo/sesamy-go/pkg/event
types:
- AddToCart
- Purchase
# --- Conversion Linker settings
conversionLinker:
# Enable provider
enabled: true
# Google Consent settings
googleConsent:
# Enable consent mode
enabled: true
# Consent mode name
mode: ad_storage
# --- Umami settings
umami:
# Enable provider
enabled: true
# Enter an optional fixed domain to override event data
domain: your-domain.com
# Paste ID for your website from the Umami settings
websiteId: ''
# Endpoint url of the umami api
endpointUrl: https://umami.your-domain.com
# Google Consent settings
googleConsent:
# Enable consent mode
enabled: true
# Consent mode name
mode: analytics_storage
# Google Tag Manager server container settings
serverContainer:
# Contemplate package config for generated events
packages:
- path: github.com/foomo/sesamy-go/pkg/event
types:
- PageView
- SelectItem
# --- Facebook
# https://developers.facebook.com/docs/marketing-api/conversions-api/guides/gtm-server-side
facebook:
# Enable provider
enabled: true
# Facebook pixel id
pixelId: ''
# To use the Conversions API, you need an access token.
apiAccessToken: ''
# Code used to verify that your server events are received correctly by Conversions API
testEventToken: ''
# Google Tag Manager server container settings
# Google Consent settings
googleConsent:
# Enable consent mode
enabled: true
# Consent mode name
mode: ad_storage
serverContainer:
# Contemplate package config for generated events
packages:
- path: github.com/foomo/sesamy-go/pkg/event
types:
- AddPaymentInfo
- AddToCart
- AddToWishlist
- PageView
- Purchase
- Search
- BeginCheckout
- GenerateLead
- ViewItem
# --- Emarsys
emarsys:
# Enable provider
enabled: true
# Emarsys merchant id
merchantId: ''
# Google Consent settings
googleConsent:
# Enable consent mode
enabled: true
# Consent mode name
mode: analytics_storage
# Google Tag Manager server container settings
serverContainer:
# Contemplate package config for generated events
packages:
- path: github.com/foomo/sesamy-go/pkg/event
types:
- Purchase
- ViewItem
- ViewItemList
# --- Tracify
tracify:
# Enable provider
enabled: true
# Tracify token
token: ''
# Tracify customer site id
customerSiteId: ''
# Google Consent settings
googleConsent:
# Enable consent mode
enabled: true
# Consent mode name
mode: analytics_storage
# Google Tag Manager server container settings
serverContainer:
# Contemplate package config for generated events
packages:
- path: github.com/foomo/sesamy-go/pkg/event
types:
- AddToCart
- PageView
- ViewItem
- Purchase
# --- Hotjar
hotjar:
# Enable provider
enabled: true
# Hotjar site id
siteId: 123456
# --- Cookiebot CMP
cookiebot:
# Enable provider
enabled: true
# Name of the manually installed Cookiebot CMP tag template
# "https://tagmanager.google.com/gallery/#/owners/cybotcorp/templates/gtm-templates-cookiebot-cmp
templateName: Cookiebot CMP
# Cookiebot id
cookiebotId: ''
# CDN Region (eu, com)
cdnRegion: eu
# Enable URL passthrough
urlPassthrough: false
# Enable advertiser consent mode
advertiserConsentModeEnabled: false
Caveats
You might need to increase your Google Tag Manager API quotas, since they are limited to 15 r/m by default.
How to Contribute
Make a pull request...
License
Distributed under MIT License, please see license file within the code for more details.
Made with ♥ foomo by bestbytes