Skip to content

Server Side Tag Management System (sesamy) CLI

License

Notifications You must be signed in to change notification settings

foomo/sesamy-cli

Repository files navigation

Sesamy CLI

Build Status Go Report Card godoc goreleaser

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

Add a sesamy.yaml configuration

# yaml-language-server: $schema=https://raw.githubusercontent.com/foomo/sesamy-cli/v0.4.1/sesamy.yaml
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
  # Whether a page_view should be sent on initial load
  sendPageView: true
  # Enable debug mode for all user devices
  debugMode: false
  # 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 Tag Manager web container 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 Consent settings
  googleConsent:
    # Enable consent mode
    enabled: true
    # Consent mode name
    mode: ad_storage
  # Google Tag Manager server container settings
  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

# --- 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.