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..44861eb8 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/gtm.js' + */ + src: optional(string()), /** * The name of the dataLayer you want to use * @default 'dataLayer' diff --git a/src/registry.ts b/src/registry.ts index 9ee0c31a..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('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 }) }, }, { @@ -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..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('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..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('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: {