diff --git a/admin-dashboard/src/lib/analytics.ts b/admin-dashboard/src/lib/analytics.ts index f6e4069..cedd3e1 100644 --- a/admin-dashboard/src/lib/analytics.ts +++ b/admin-dashboard/src/lib/analytics.ts @@ -112,7 +112,9 @@ export function initializeAnalytics(): void { measurementId = configuredId window.dataLayer = window.dataLayer || [] - window.gtag = window.gtag || ((...args: unknown[]) => window.dataLayer?.push(args)) + window.gtag = window.gtag || function (..._args: unknown[]) { + window.dataLayer?.push(arguments) + } window.gtag('js', new Date()) analyticsContext = safeProperties(commonProperties(runtime)) window.gtag('set', analyticsContext) diff --git a/ai-pdf-chatbot/lib/analytics.ts b/ai-pdf-chatbot/lib/analytics.ts index 8ae7114..24b5709 100644 --- a/ai-pdf-chatbot/lib/analytics.ts +++ b/ai-pdf-chatbot/lib/analytics.ts @@ -114,7 +114,9 @@ export function initializeAnalytics(): void { measurementId = configuredId; window.dataLayer = window.dataLayer || []; - window.gtag = window.gtag || ((...args: unknown[]) => window.dataLayer?.push(args)); + window.gtag = window.gtag || function (..._args: unknown[]) { + window.dataLayer?.push(arguments) + }; window.gtag('js', new Date()); analyticsContext = safeProperties(commonProperties(runtime)); window.gtag('set', analyticsContext); diff --git a/booking/lib/analytics.ts b/booking/lib/analytics.ts index 8ae7114..24b5709 100644 --- a/booking/lib/analytics.ts +++ b/booking/lib/analytics.ts @@ -114,7 +114,9 @@ export function initializeAnalytics(): void { measurementId = configuredId; window.dataLayer = window.dataLayer || []; - window.gtag = window.gtag || ((...args: unknown[]) => window.dataLayer?.push(args)); + window.gtag = window.gtag || function (..._args: unknown[]) { + window.dataLayer?.push(arguments) + }; window.gtag('js', new Date()); analyticsContext = safeProperties(commonProperties(runtime)); window.gtag('set', analyticsContext); diff --git a/chatbot/lib/analytics.ts b/chatbot/lib/analytics.ts index 8ae7114..24b5709 100644 --- a/chatbot/lib/analytics.ts +++ b/chatbot/lib/analytics.ts @@ -114,7 +114,9 @@ export function initializeAnalytics(): void { measurementId = configuredId; window.dataLayer = window.dataLayer || []; - window.gtag = window.gtag || ((...args: unknown[]) => window.dataLayer?.push(args)); + window.gtag = window.gtag || function (..._args: unknown[]) { + window.dataLayer?.push(arguments) + }; window.gtag('js', new Date()); analyticsContext = safeProperties(commonProperties(runtime)); window.gtag('set', analyticsContext); diff --git a/crm/lib/analytics.ts b/crm/lib/analytics.ts index 8ae7114..24b5709 100644 --- a/crm/lib/analytics.ts +++ b/crm/lib/analytics.ts @@ -114,7 +114,9 @@ export function initializeAnalytics(): void { measurementId = configuredId; window.dataLayer = window.dataLayer || []; - window.gtag = window.gtag || ((...args: unknown[]) => window.dataLayer?.push(args)); + window.gtag = window.gtag || function (..._args: unknown[]) { + window.dataLayer?.push(arguments) + }; window.gtag('js', new Date()); analyticsContext = safeProperties(commonProperties(runtime)); window.gtag('set', analyticsContext); diff --git a/e-commerce/lib/analytics.ts b/e-commerce/lib/analytics.ts index 8ae7114..24b5709 100644 --- a/e-commerce/lib/analytics.ts +++ b/e-commerce/lib/analytics.ts @@ -114,7 +114,9 @@ export function initializeAnalytics(): void { measurementId = configuredId; window.dataLayer = window.dataLayer || []; - window.gtag = window.gtag || ((...args: unknown[]) => window.dataLayer?.push(args)); + window.gtag = window.gtag || function (..._args: unknown[]) { + window.dataLayer?.push(arguments) + }; window.gtag('js', new Date()); analyticsContext = safeProperties(commonProperties(runtime)); window.gtag('set', analyticsContext); diff --git a/insight-flow-agent-chat/src/lib/analytics.ts b/insight-flow-agent-chat/src/lib/analytics.ts index f6e4069..cedd3e1 100644 --- a/insight-flow-agent-chat/src/lib/analytics.ts +++ b/insight-flow-agent-chat/src/lib/analytics.ts @@ -112,7 +112,9 @@ export function initializeAnalytics(): void { measurementId = configuredId window.dataLayer = window.dataLayer || [] - window.gtag = window.gtag || ((...args: unknown[]) => window.dataLayer?.push(args)) + window.gtag = window.gtag || function (..._args: unknown[]) { + window.dataLayer?.push(arguments) + } window.gtag('js', new Date()) analyticsContext = safeProperties(commonProperties(runtime)) window.gtag('set', analyticsContext) diff --git a/landing/lib/analytics.ts b/landing/lib/analytics.ts index 8ae7114..24b5709 100644 --- a/landing/lib/analytics.ts +++ b/landing/lib/analytics.ts @@ -114,7 +114,9 @@ export function initializeAnalytics(): void { measurementId = configuredId; window.dataLayer = window.dataLayer || []; - window.gtag = window.gtag || ((...args: unknown[]) => window.dataLayer?.push(args)); + window.gtag = window.gtag || function (..._args: unknown[]) { + window.dataLayer?.push(arguments) + }; window.gtag('js', new Date()); analyticsContext = safeProperties(commonProperties(runtime)); window.gtag('set', analyticsContext); diff --git a/nextjs/src/lib/analytics.ts b/nextjs/src/lib/analytics.ts index 8ae7114..24b5709 100644 --- a/nextjs/src/lib/analytics.ts +++ b/nextjs/src/lib/analytics.ts @@ -114,7 +114,9 @@ export function initializeAnalytics(): void { measurementId = configuredId; window.dataLayer = window.dataLayer || []; - window.gtag = window.gtag || ((...args: unknown[]) => window.dataLayer?.push(args)); + window.gtag = window.gtag || function (..._args: unknown[]) { + window.dataLayer?.push(arguments) + }; window.gtag('js', new Date()); analyticsContext = safeProperties(commonProperties(runtime)); window.gtag('set', analyticsContext); diff --git a/react/src/lib/analytics.ts b/react/src/lib/analytics.ts index f6e4069..cedd3e1 100644 --- a/react/src/lib/analytics.ts +++ b/react/src/lib/analytics.ts @@ -112,7 +112,9 @@ export function initializeAnalytics(): void { measurementId = configuredId window.dataLayer = window.dataLayer || [] - window.gtag = window.gtag || ((...args: unknown[]) => window.dataLayer?.push(args)) + window.gtag = window.gtag || function (..._args: unknown[]) { + window.dataLayer?.push(arguments) + } window.gtag('js', new Date()) analyticsContext = safeProperties(commonProperties(runtime)) window.gtag('set', analyticsContext) diff --git a/scripts/check-analytics.mjs b/scripts/check-analytics.mjs index af0f23a..cef4c19 100644 --- a/scripts/check-analytics.mjs +++ b/scripts/check-analytics.mjs @@ -33,6 +33,10 @@ for (const name of templates) { assert(helperSource.includes('__INSFORGE_RUNTIME_CONFIG__'), `${name}: runtime config is not preferred`); assert(helperSource.includes('gaMeasurementId'), `${name}: runtime GA4 measurement ID is missing`); assert(helperSource.includes('googletagmanager.com/gtag/js'), `${name}: Google tag is not loaded`); + assert(helperSource.includes('window.dataLayer?.push(arguments)'), + `${name}: gtag commands must preserve the Arguments object expected by Google`); + assert(!helperSource.includes('window.dataLayer?.push(args)'), + `${name}: array-wrapped gtag commands are ignored by Google`); assert(helperSource.includes('send_page_view: false'), `${name}: automatic and manual page views may be duplicated`); assert(helperSource.includes("'page_view'"), `${name}: page views are not captured`); assert(helperSource.includes('window.location.pathname'), `${name}: page paths are not sanitized`); diff --git a/todo/src/lib/analytics.ts b/todo/src/lib/analytics.ts index 8ae7114..24b5709 100644 --- a/todo/src/lib/analytics.ts +++ b/todo/src/lib/analytics.ts @@ -114,7 +114,9 @@ export function initializeAnalytics(): void { measurementId = configuredId; window.dataLayer = window.dataLayer || []; - window.gtag = window.gtag || ((...args: unknown[]) => window.dataLayer?.push(args)); + window.gtag = window.gtag || function (..._args: unknown[]) { + window.dataLayer?.push(arguments) + }; window.gtag('js', new Date()); analyticsContext = safeProperties(commonProperties(runtime)); window.gtag('set', analyticsContext); diff --git a/web-research-agent/src/lib/analytics.ts b/web-research-agent/src/lib/analytics.ts index f6e4069..cedd3e1 100644 --- a/web-research-agent/src/lib/analytics.ts +++ b/web-research-agent/src/lib/analytics.ts @@ -112,7 +112,9 @@ export function initializeAnalytics(): void { measurementId = configuredId window.dataLayer = window.dataLayer || [] - window.gtag = window.gtag || ((...args: unknown[]) => window.dataLayer?.push(args)) + window.gtag = window.gtag || function (..._args: unknown[]) { + window.dataLayer?.push(arguments) + } window.gtag('js', new Date()) analyticsContext = safeProperties(commonProperties(runtime)) window.gtag('set', analyticsContext) diff --git a/website-change-monitor/src/lib/analytics.ts b/website-change-monitor/src/lib/analytics.ts index f6e4069..cedd3e1 100644 --- a/website-change-monitor/src/lib/analytics.ts +++ b/website-change-monitor/src/lib/analytics.ts @@ -112,7 +112,9 @@ export function initializeAnalytics(): void { measurementId = configuredId window.dataLayer = window.dataLayer || [] - window.gtag = window.gtag || ((...args: unknown[]) => window.dataLayer?.push(args)) + window.gtag = window.gtag || function (..._args: unknown[]) { + window.dataLayer?.push(arguments) + } window.gtag('js', new Date()) analyticsContext = safeProperties(commonProperties(runtime)) window.gtag('set', analyticsContext) diff --git a/workspace/lib/analytics.ts b/workspace/lib/analytics.ts index 8ae7114..24b5709 100644 --- a/workspace/lib/analytics.ts +++ b/workspace/lib/analytics.ts @@ -114,7 +114,9 @@ export function initializeAnalytics(): void { measurementId = configuredId; window.dataLayer = window.dataLayer || []; - window.gtag = window.gtag || ((...args: unknown[]) => window.dataLayer?.push(args)); + window.gtag = window.gtag || function (..._args: unknown[]) { + window.dataLayer?.push(arguments) + }; window.gtag('js', new Date()); analyticsContext = safeProperties(commonProperties(runtime)); window.gtag('set', analyticsContext);