config

package
v0.20.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Mar 20, 2025 License: MIT Imports: 2 Imported by: 0

Documentation

Index

Constants

View Source
const Version = "1.0"

Variables

This section is empty.

Functions

This section is empty.

Types

type Config

type Config struct {
	// Config version
	Version string `json:"version" yaml:"version" jsonschema:"required"`
	// Globally redact visitor ip
	RedactVisitorIP bool `json:"redactVisitorIp" yaml:"redactVisitorIp"`
	// Enable region specific settings
	// https://developers.google.com/tag-platform/tag-manager/server-side/enable-region-specific-settings
	EnableGeoResolution bool `json:"enableGeoResolution" yaml:"enableGeoResolution"`
	// Google Tag settings
	GoogleTag GoogleTag `json:"googleTag" yaml:"googleTag"`
	// Google API settings
	GoogleAPI GoogleAPI `json:"googleApi" yaml:"googleApi"`
	// Google Tag Manager settings
	GoogleTagManager GoogleTagManager `json:"googleTagManager" yaml:"googleTagManager"`
	// Google Ads provider settings
	GoogleAds GoogleAds `json:"googleAds" yaml:"googleAds"`
	// CookieBot provider settings
	Cookiebot Cookiebot `json:"cookiebot" yaml:"cookiebot"`
	// Google Analytics provider settings
	GoogleAnalytics GoogleAnalytics `json:"googleAnalytics" yaml:"googleAnalytics"`
	// Conversion Linker provider settings
	ConversionLinker ConversionLinker `json:"conversionLinker" yaml:"conversionLinker"`
	// Facebook provider settings
	Facebook Facebook `json:"facebook" yaml:"facebook"`
	// MicrosoftAds provider settings
	MicrosoftAds MicrosoftAds `json:"microsoftAds" yaml:"microsoftAds"`
	// Emarsys provider settings
	Emarsys Emarsys `json:"emarsys" yaml:"emarsys"`
	// Hotjar provider settings
	Hotjar Hotjar `json:"hotjar" yaml:"hotjar"`
	// Criteo provider settings
	Criteo Criteo `json:"criteo" yaml:"criteo"`
	// Tracify provider settings
	Tracify Tracify `json:"tracify" yaml:"tracify"`
	// Umami provider settings
	Umami Umami `json:"umami" yaml:"umami"`
}

type ConversionLinker added in v0.3.0

type ConversionLinker struct {
	// Enable provider
	Enabled bool `json:"enabled" yaml:"enabled"`
	// Google Consent settings
	GoogleConsent GoogleConsent `json:"googleConsent" yaml:"googleConsent"`
}

type Cookiebot added in v0.4.0

type Cookiebot struct {
	// Enable provider
	Enabled bool `json:"enabled" yaml:"enabled"`
	// Name of the manually installed Cookiebot CMP tag template
	TemplateName string `json:"templateName" yaml:"templateName"`
	// Create an account on Cookiebot.com and copy 'Domain Group ID' from the tab 'Your Scripts' in Cookiebot
	CookiebotID string `json:"cookiebotId" yaml:"cookiebotId"`
	// Select which CDN region Cookiebot uses
	CDNRegion string `json:"cdnRegion" yaml:"cdnRegion"`
	// When using URL passthrough, a few query parameters may be appended to links as users navigate through pages on your website
	URLPassthrough bool `json:"urlPassthrough" yaml:"urlPassthrough"`
	// If enabled, Google will deduce ad_storage, ad_user_data and ad_personalization data from the TC string.
	AdvertiserConsentModeEnabled bool `json:"advertiserConsentModeEnabled" yaml:"advertiserConsentModeEnabled"`
	// Default Consent state
	RegionSettings []CookiebotRegionSetting `json:"regionSettings" yaml:"regionSettings"`
}

type CookiebotRegionSetting added in v0.18.0

type CookiebotRegionSetting struct {
	// Region (leave blank to apply globally)
	Region string `json:"region" yaml:"region"`
	// Default consent for functionality_storage and personalization_storage
	Preferences string `json:"preferences" yaml:"preferences"`
	// Default consent for analytics_storage
	Statistics string `json:"statistics" yaml:"statistics"`
	// Default consent for ad_storage
	Marketing string `json:"marketing" yaml:"marketing"`
	// Default consent ad_user_data
	AdUserData string `json:"adUserData" yaml:"adUserData"`
	// Default consent ad_personalization
	AdPersonalization string `json:"adPersonalization" yaml:"adPersonalization"`
}

type Criteo added in v0.7.0

type Criteo struct {
	// Enable provider
	Enabled bool `json:"enabled" yaml:"enabled"`
	// Criteo caller id
	CallerID string `json:"callerId" yaml:"callerId"`
	// Criteo partner id
	PartnerID string `json:"partnerId" yaml:"partnerId"`
	// Criteo application id
	ApplicationID string `json:"applicationId" yaml:"applicationId"`
	// Google Consent settings
	GoogleConsent GoogleConsent `json:"googleConsent" yaml:"googleConsent"`
	// Google Tag Manager server container settings
	ServerContainer contemplate.Config `json:"serverContainer" yaml:"serverContainer"`
}

type Emarsys added in v0.3.1

type Emarsys struct {
	// Enable provider
	Enabled bool `json:"enabled" yaml:"enabled"`
	// Emarsys merchant id
	MerchantID string `json:"merchantId" yaml:"merchantId"`
	// Enable test mode
	TestMode bool `json:"testMode" yaml:"testMode"`
	// Enable debug mode
	DebugMode bool `json:"debugMode" yaml:"debugMode"`
	// Google Consent settings
	GoogleConsent GoogleConsent `json:"googleConsent" yaml:"googleConsent"`
	// Google Tag Manager web container settings
	WebContainer contemplate.Config `json:"webContainer" yaml:"webContainer"`
	// Google Tag Manager server container settings
	ServerContainer contemplate.Config `json:"serverContainer" yaml:"serverContainer"`
}

type Facebook added in v0.3.0

type Facebook struct {
	// Enable provider
	Enabled        bool   `json:"enabled" yaml:"enabled"`
	PixelID        string `json:"pixelId" yaml:"pixelId"`
	APIAccessToken string `json:"apiAccessToken" yaml:"apiAccessToken"`
	TestEventToken string `json:"testEventToken" yaml:"testEventToken"`
	// Google Consent settings
	GoogleConsent GoogleConsent `json:"googleConsent" yaml:"googleConsent"`
	// Google Tag Manager server container settings
	ServerContainer FacebookServerContainer `json:"serverContainer" yaml:"serverContainer"`
}

type FacebookConversionAPITag added in v0.9.0

type FacebookConversionAPITag struct {
	// Extend Meta Pixel cookies (fbp/fbc)
	ExtendCookies bool `json:"extendCookies" yaml:"extendCookies"`
	// Enable Use of HTTP Only Secure Cookie (gtmeec) to Enhance Event Data
	EnableEventEnhancement bool `json:"enableEventEnhancement" yaml:"enableEventEnhancement"`
}

type FacebookServerContainer added in v0.9.0

type FacebookServerContainer struct {
	contemplate.Config `json:",inline" yaml:",squash"`
	Settings           map[string]FacebookConversionAPITag `json:"settings" yaml:"settings"`
}

func (*FacebookServerContainer) Setting added in v0.9.0

type GoogleAPI added in v0.3.0

type GoogleAPI struct {
	Credentials     string `json:"credentials" yaml:"credentials"`
	CredentialsFile string `json:"credentialsFile" yaml:"credentialsFile"`
	RequestQuota    int    `json:"requestQuota" yaml:"requestQuota"`
}

func (GoogleAPI) GetClientOption added in v0.3.0

func (c GoogleAPI) GetClientOption() googleapioption.ClientOption
type GoogleAds struct {
	// Enable provider
	Enabled bool `json:"enabled" yaml:"enabled"`
	// Google Consent settings
	GoogleConsent GoogleConsent `json:"googleConsent" yaml:"googleConsent"`
	// Conversion id
	ConversionID string `json:"conversionId" yaml:"conversionId"`
	// Google Ads Conversion settings
	Conversion GoogleAdsConversion `json:"conversion" yaml:"conversion"`
	// Google Ads Remarketing settings
	Remarketing GoogleAdsRemarketing `json:"remarketing" yaml:"remarketing"`
}

type GoogleAdsConversion added in v0.3.0

type GoogleAdsConversion struct {
	// Enable provider
	Enabled bool `json:"enabled" yaml:"enabled"`
	// Google Tag Manager server container settings
	ServerContainer GoogleAdsConversionServerContainer `json:"serverContainer" yaml:"serverContainer"`
}

type GoogleAdsConversionServerContainer added in v0.9.0

type GoogleAdsConversionServerContainer struct {
	contemplate.Config `json:",inline" yaml:",squash"`
	Settings           map[string]GoogleAdsConversionTracking `json:"settings" yaml:"settings"`
}

func (*GoogleAdsConversionServerContainer) Setting added in v0.9.0

type GoogleAdsConversionTracking added in v0.8.0

type GoogleAdsConversionTracking struct {
	Label string `json:"label" yaml:"label"`
}

type GoogleAdsRemarketing added in v0.4.2

type GoogleAdsRemarketing struct {
	// Enable provider
	Enabled                bool `json:"enabled" yaml:"enabled"`
	EnableConversionLinker bool `json:"enableConversionLinker" yaml:"enableConversionLinker"`
}

type GoogleAnalytics added in v0.3.0

type GoogleAnalytics struct {
	// Enable provider
	Enabled bool `json:"enabled" yaml:"enabled"`
	// Google Consent settings
	GoogleConsent GoogleConsent `json:"googleConsent" yaml:"googleConsent"`
	// GTag.js override configuration
	GoogleGTagJSOverride GoogleAnalyticsGTagJSOverride `json:"googleGTagJSOverride" yaml:"googleGTagJSOverride"`
	// Google Tag Manager web container settings
	WebContainer contemplate.Config `json:"webContainer" yaml:"webContainer"`
	// Google Tag Manager server container settings
	ServerContainer contemplate.Config `json:"serverContainer" yaml:"serverContainer"`
}

type GoogleAnalyticsGTagJSOverride added in v0.11.0

type GoogleAnalyticsGTagJSOverride struct {
	// Enable override
	Enabled bool `json:"enabled" yaml:"enabled"`
	// Client priority
	Priority int64 `json:"priority" yaml:"priority"`
	// Allow sending items for non ecommerce events
	EcommerceItems bool `json:"ecommerceItems" yaml:"ecommerceItems"`
}

type GoogleConsent added in v0.4.0

type GoogleConsent struct {
	// Enable provider
	Enabled bool   `json:"enabled" yaml:"enabled"`
	Mode    string `json:"mode" yaml:"mode"`
}

type GoogleTag added in v0.3.0

type GoogleTag struct {
	// A tag ID is an identifier that you put on your page to load a given Google tag
	TagID string `json:"tagId" yaml:"tagId"`
	// Whether a page_view should be sent on initial load
	SendPageView bool `json:"sendPageView" yaml:"sendPageView"`
	// Optional custom server container url
	ServerContainerURL string `json:"serverContainerUrl" yaml:"serverContainerUrl"`
	// Data layer variables to be added to the event settings
	DataLayerVariables map[string]string `json:"dataLayerVariables" yaml:"dataLayerVariables"`
	// TypeScript settings
	TypeScript TypeScript `json:"typeScript" yaml:"typeScript"`
}

type GoogleTagManager added in v0.3.0

type GoogleTagManager struct {
	// Google Tag Manager account id
	AccountID string `json:"accountId" yaml:"accountId"`
	// Google Tag Manager web container settings
	WebContainer GoogleTagManagerContainer `json:"webContainer" yaml:"webContainer"`
	// Google Tag Manager server container settings
	ServerContainer GoogleTagManagerContainer `json:"serverContainer" yaml:"serverContainer"`
	// Google Tag Manager web container variables
	WebContaienrVariables GoogleTagManagerWebContainerVariables `json:"webContainerVariables" yaml:"webContainerVariables"`
	// Google Tag Manager server container variables
	ServerContaienrVariables GoogleTagManagerServerContainerVariables `json:"serverContainerVariables" yaml:"serverContainerVariables"`
}

type GoogleTagManagerContainer added in v0.3.0

type GoogleTagManagerContainer struct {
	// The container tag id
	TagID string `json:"tagId" yaml:"tagId"`
	// The container id
	ContainerID string `json:"containerId" yaml:"containerId"`
	// (Optional) The workspace id that should be used by the api
	WorkspaceID string `json:"workspaceId" yaml:"workspaceId"`
	// (Optional) The workspace name that should be used by the api
	Workspace string `json:"workspace" yaml:"workspace"`
}

type GoogleTagManagerServerContainerVariables added in v0.13.0

type GoogleTagManagerServerContainerVariables struct {
	// List of event data variables
	EventData []string `json:"eventData" yaml:"eventData"`
	// Map of lookup table variables
	LookupTables map[string]LookupTable `json:"lookupTables" yaml:"lookupTables"`
}

type GoogleTagManagerWebContainerVariables added in v0.13.2

type GoogleTagManagerWebContainerVariables struct {
	// List of event data variables
	DataLayer []string `json:"dataLayer" yaml:"dataLayer"`
	// Map of lookup table variables
	LookupTables map[string]LookupTable `json:"lookupTables" yaml:"lookupTables"`
}

type Hotjar added in v0.6.0

type Hotjar struct {
	// Enable provider
	Enabled bool   `json:"enabled" yaml:"enabled"`
	SiteID  string `json:"siteId" yaml:"siteId"`
}

type LookupTable added in v0.13.0

type LookupTable struct {
	// Input source
	Input string `json:"input" yaml:"input"`
	// Key value data map
	KeyTable map[string]string `json:"keyTable" yaml:"keyTable"`
	// Vaule key data map
	ValueTable map[string]string `json:"valueTable" yaml:"valueTable"`
}

type MicrosoftAds added in v0.8.1

type MicrosoftAds struct {
	// Enable provider
	Enabled bool `json:"enabled" yaml:"enabled"`
	// Google Consent settings
	GoogleConsent GoogleConsent `json:"googleConsent" yaml:"googleConsent"`
	// Microsoft Ads UET Tag ID
	TagID string `json:"tagId" yaml:"tagId"`
	// Microsoft Ads Conversion settings
	Conversion MicrosoftAdsConversion `json:"conversion" yaml:"conversion"`
}

type MicrosoftAdsConversion added in v0.8.1

type MicrosoftAdsConversion struct {
	// Enable provider
	Enabled bool `json:"enabled" yaml:"enabled"`
	// Google Tag Manager server container settings
	ServerContainer MicrosoftAdsServerContainer `json:"serverContainer" yaml:"serverContainer"`
}

type MicrosoftAdsConversionTag added in v0.8.1

type MicrosoftAdsConversionTag struct {
	PageType  string `json:"pageType" yaml:"pageType"`
	EventType string `json:"eventType" yaml:"eventType"`
}

type MicrosoftAdsServerContainer added in v0.8.1

type MicrosoftAdsServerContainer struct {
	contemplate.Config `json:",inline" yaml:",squash"`
	Settings           map[string]MicrosoftAdsConversionTag `json:"settings" yaml:"settings"`
}

func (*MicrosoftAdsServerContainer) Setting added in v0.8.1

type Tracify added in v0.5.0

type Tracify struct {
	// Enable provider
	Enabled bool `json:"enabled" yaml:"enabled"`
	// Tracify token
	Token string `json:"token" yaml:"token"`
	// Tracify customer site id
	CustomerSiteID string `json:"customerSiteId" yaml:"customerSiteId"`
	// Enable stating mode
	StagingModeEnabled bool `json:"stagingModeEnabled" yaml:"stagingModeEnabled"`
	// Google Consent settings
	GoogleConsent GoogleConsent `json:"googleConsent" yaml:"googleConsent"`
	// Google Tag Manager server container settings
	ServerContainer contemplate.Config `json:"serverContainer" yaml:"serverContainer"`
}

type TypeScript added in v0.3.0

type TypeScript struct {
	contemplate.Config `json:",inline" yaml:",squash"`
	OutputPath         string `json:"outputPath" yaml:"outputPath"`
}

type Umami added in v0.3.0

type Umami struct {
	// Enable provider
	Enabled     bool   `json:"enabled" yaml:"enabled"`
	Domain      string `json:"domain" yaml:"domain"`
	WebsiteID   string `json:"websiteId" yaml:"websiteId"`
	EndpointURL string `json:"endpointUrl" yaml:"endpointUrl"`
	// Google Consent settings
	GoogleConsent GoogleConsent `json:"googleConsent" yaml:"googleConsent"`
	// Google Tag Manager server container settings
	ServerContainer contemplate.Config `json:"serverContainer" yaml:"serverContainer"`
}

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL