From bbf32def1f0f79ac4b7f1ad2b37e5e51750c4f2a Mon Sep 17 00:00:00 2001 From: reyno-skeps Date: Fri, 28 Feb 2025 09:03:47 +0100 Subject: [PATCH 1/4] feat: added ability to change tagmanager and analytics script src --- src/registry.ts | 4 ++-- src/runtime/registry/google-analytics.ts | 2 +- src/runtime/registry/google-tag-manager.ts | 2 +- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/src/registry.ts b/src/registry.ts index 9ee0c31a..5cf2f0a4 100644 --- a/src/registry.ts +++ b/src/registry.ts @@ -247,7 +247,7 @@ export const registry: (resolve?: (s: string) => string) => RegistryScripts = (r }, logo: ``, scriptBundling(options) { - return withQuery('https://www.googletagmanager.com/gtag/js', { id: options?.id, l: options?.l }) + return withQuery(options.src || 'https://www.googletagmanager.com/gtag/js', { id: options?.id, l: options?.l }) }, }, { @@ -259,7 +259,7 @@ export const registry: (resolve?: (s: string) => string) => RegistryScripts = (r }, logo: ``, scriptBundling(options) { - return withQuery('https://www.googletagmanager.com/gtag/js', { id: options?.id, l: options?.l }) + return withQuery(options.src || 'https://www.googletagmanager.com/gtag/js', { id: options?.id, l: options?.l }) }, }, { diff --git a/src/runtime/registry/google-analytics.ts b/src/runtime/registry/google-analytics.ts index ab8a53d4..a9ae9f17 100644 --- a/src/runtime/registry/google-analytics.ts +++ b/src/runtime/registry/google-analytics.ts @@ -29,7 +29,7 @@ export interface GoogleAnalyticsApi { export function useScriptGoogleAnalytics(_options?: GoogleAnalyticsInput) { return useRegistryScript(_options?.key || 'googleAnalytics', options => ({ scriptInput: { - src: withQuery('https://www.googletagmanager.com/gtag/js', { id: options?.id, l: options?.l }), + src: withQuery(options.src || 'https://www.googletagmanager.com/gtag/js', { id: options?.id, l: options?.l }), }, schema: import.meta.dev ? GoogleAnalyticsOptions : undefined, scriptOptions: { diff --git a/src/runtime/registry/google-tag-manager.ts b/src/runtime/registry/google-tag-manager.ts index 4af85cf6..d1060e61 100644 --- a/src/runtime/registry/google-tag-manager.ts +++ b/src/runtime/registry/google-tag-manager.ts @@ -44,7 +44,7 @@ export type GoogleTagManagerInput = RegistryScriptInput(_options?: GoogleTagManagerInput & { onBeforeGtmStart?: (gtag: GTag) => void }) { return useRegistryScript(_options?.key || 'googleTagManager', options => ({ scriptInput: { - src: withQuery('https://www.googletagmanager.com/gtm.js', { id: options?.id, l: options?.l }), + src: withQuery(options.src || 'https://www.googletagmanager.com/gtm.js', { id: options?.id, l: options?.l }), }, schema: import.meta.dev ? GoogleTagManagerOptions : undefined, scriptOptions: { From e5c5b47e92f3aff4a84a3ed5943a173e12411035 Mon Sep 17 00:00:00 2001 From: reyno-skeps Date: Fri, 28 Feb 2025 09:27:00 +0100 Subject: [PATCH 2/4] fix: tagmanager + analytics types --- src/registry.ts | 4 ++-- src/runtime/registry/google-analytics.ts | 3 ++- src/runtime/registry/google-tag-manager.ts | 3 ++- 3 files changed, 6 insertions(+), 4 deletions(-) diff --git a/src/registry.ts b/src/registry.ts index 5cf2f0a4..6ba17944 100644 --- a/src/registry.ts +++ b/src/registry.ts @@ -247,7 +247,7 @@ export const registry: (resolve?: (s: string) => string) => RegistryScripts = (r }, logo: ``, scriptBundling(options) { - return withQuery(options.src || 'https://www.googletagmanager.com/gtag/js', { id: options?.id, l: options?.l }) + return withQuery(options?.src || 'https://www.googletagmanager.com/gtag/js', { id: options?.id, l: options?.l }) }, }, { @@ -259,7 +259,7 @@ export const registry: (resolve?: (s: string) => string) => RegistryScripts = (r }, logo: ``, scriptBundling(options) { - return withQuery(options.src || 'https://www.googletagmanager.com/gtag/js', { id: options?.id, l: options?.l }) + return withQuery(options?.src || 'https://www.googletagmanager.com/gtag/js', { id: options?.id, l: options?.l }) }, }, { diff --git a/src/runtime/registry/google-analytics.ts b/src/runtime/registry/google-analytics.ts index a9ae9f17..d2561f5f 100644 --- a/src/runtime/registry/google-analytics.ts +++ b/src/runtime/registry/google-analytics.ts @@ -17,6 +17,7 @@ type DataLayer = Array | Record> export const GoogleAnalyticsOptions = object({ id: string(), l: optional(string()), + src: optional(string()), }) export type GoogleAnalyticsInput = RegistryScriptInput @@ -29,7 +30,7 @@ export interface GoogleAnalyticsApi { export function useScriptGoogleAnalytics(_options?: GoogleAnalyticsInput) { return useRegistryScript(_options?.key || 'googleAnalytics', options => ({ scriptInput: { - src: withQuery(options.src || 'https://www.googletagmanager.com/gtag/js', { id: options?.id, l: options?.l }), + src: withQuery(options?.src || 'https://www.googletagmanager.com/gtag/js', { id: options?.id, l: options?.l }), }, schema: import.meta.dev ? GoogleAnalyticsOptions : undefined, scriptOptions: { diff --git a/src/runtime/registry/google-tag-manager.ts b/src/runtime/registry/google-tag-manager.ts index d1060e61..9a1b27a3 100644 --- a/src/runtime/registry/google-tag-manager.ts +++ b/src/runtime/registry/google-tag-manager.ts @@ -37,6 +37,7 @@ declare global { export const GoogleTagManagerOptions = object({ id: string(), l: optional(string()), + src: optional(string()), }) export type GoogleTagManagerInput = RegistryScriptInput @@ -44,7 +45,7 @@ export type GoogleTagManagerInput = RegistryScriptInput(_options?: GoogleTagManagerInput & { onBeforeGtmStart?: (gtag: GTag) => void }) { return useRegistryScript(_options?.key || 'googleTagManager', options => ({ scriptInput: { - src: withQuery(options.src || 'https://www.googletagmanager.com/gtm.js', { id: options?.id, l: options?.l }), + src: withQuery(options?.src || 'https://www.googletagmanager.com/gtm.js', { id: options?.id, l: options?.l }), }, schema: import.meta.dev ? GoogleTagManagerOptions : undefined, scriptOptions: { From 2101939a7597262f840d628a819b28e1107860aa Mon Sep 17 00:00:00 2001 From: reyno-skeps Date: Fri, 28 Feb 2025 09:34:25 +0100 Subject: [PATCH 3/4] docs: update tagmanager + analytics options --- docs/content/scripts/analytics/google-analytics.md | 5 +++++ docs/content/scripts/tracking/google-tag-manager.md | 5 +++++ 2 files changed, 10 insertions(+) diff --git a/docs/content/scripts/analytics/google-analytics.md b/docs/content/scripts/analytics/google-analytics.md index 2f1e8b0c..33e4ad15 100644 --- a/docs/content/scripts/analytics/google-analytics.md +++ b/docs/content/scripts/analytics/google-analytics.md @@ -143,6 +143,11 @@ export const GoogleAnalyticsOptions = object({ * The Google Analytics ID. */ id: string(), + /** + * The script src. + * @default 'https://www.googletagmanager.com/gtag/js' + */ + src: optional(string()), /** * The datalayer's name you want it to be associated with */ diff --git a/docs/content/scripts/tracking/google-tag-manager.md b/docs/content/scripts/tracking/google-tag-manager.md index f90876f9..ba200b4d 100644 --- a/docs/content/scripts/tracking/google-tag-manager.md +++ b/docs/content/scripts/tracking/google-tag-manager.md @@ -126,6 +126,11 @@ export const GoogleTagManagerOptions = object({ * The Google Tag Manager ID. */ id: string(), + /** + * The script src. + * @default 'https://www.googletagmanager.com/gtag/js' + */ + src: optional(string()), /** * The name of the dataLayer you want to use * @default 'dataLayer' From 7703efaaf6e030fbca823d6a3b90fa8154ee9c68 Mon Sep 17 00:00:00 2001 From: reyno-skeps Date: Fri, 28 Feb 2025 09:44:49 +0100 Subject: [PATCH 4/4] fix: tagmanager and analytics src mismatch --- docs/content/scripts/tracking/google-tag-manager.md | 2 +- src/registry.ts | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/content/scripts/tracking/google-tag-manager.md b/docs/content/scripts/tracking/google-tag-manager.md index ba200b4d..44861eb8 100644 --- a/docs/content/scripts/tracking/google-tag-manager.md +++ b/docs/content/scripts/tracking/google-tag-manager.md @@ -128,7 +128,7 @@ export const GoogleTagManagerOptions = object({ id: string(), /** * The script src. - * @default 'https://www.googletagmanager.com/gtag/js' + * @default 'https://www.googletagmanager.com/gtm.js' */ src: optional(string()), /** diff --git a/src/registry.ts b/src/registry.ts index 6ba17944..e1c915de 100644 --- a/src/registry.ts +++ b/src/registry.ts @@ -247,7 +247,7 @@ export const registry: (resolve?: (s: string) => string) => RegistryScripts = (r }, logo: ``, scriptBundling(options) { - return withQuery(options?.src || 'https://www.googletagmanager.com/gtag/js', { id: options?.id, l: options?.l }) + return withQuery(options?.src || 'https://www.googletagmanager.com/gtm.js', { id: options?.id, l: options?.l }) }, }, {