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: {