Help us shape the future of Go! Take the 2026 Go Developer Survey

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