diff --git a/.env.include.example b/.env.include.example index 6f3bcb2..f80a059 100644 --- a/.env.include.example +++ b/.env.include.example @@ -21,3 +21,5 @@ MAILER_PASSWORD= MAILER_EMAIL_FROM= SUPPORT_EMAIL= + +GOOGLE_MEASURING_ID= diff --git a/internal/config/config.go b/internal/config/config.go index 72aa659..a3edea9 100644 --- a/internal/config/config.go +++ b/internal/config/config.go @@ -34,6 +34,8 @@ type Config struct { SupportEmail string + GoogleMeasuringID string + Version string } @@ -68,6 +70,8 @@ func Load(version string) *Config { SupportEmail: envString("SUPPORT_EMAIL", ""), + GoogleMeasuringID: envString("GOOGLE_MEASURING_ID", ""), + Version: version, } @@ -91,6 +95,7 @@ func (c *Config) Sanitized() *Config { MailerEmailFrom: c.MailerEmailFrom, SupportEmail: c.SupportEmail, + GoogleMeasuringID: c.GoogleMeasuringID, Version: c.Version, } diff --git a/internal/ui/layouts/base.templ b/internal/ui/layouts/base.templ index b95a1d3..9a2a86e 100644 --- a/internal/ui/layouts/base.templ +++ b/internal/ui/layouts/base.templ @@ -56,6 +56,10 @@ templ Base(props ...SEOProps) { @smoothScrollScript() // HTMX CSRF configuration @htmxCSRFScript() + // Google Analytics + if cfg := ctxkeys.Config(ctx); cfg != nil && cfg.GoogleMeasuringID != "" { + @googleAnalyticsScript(cfg.GoogleMeasuringID) + } { children... } @@ -113,3 +117,14 @@ templ smoothScrollScript() { templ htmxCSRFScript() { } + +templ googleAnalyticsScript(id string) { + +}