diff --git a/src/app/(frontend)/layout.tsx b/src/app/(frontend)/layout.tsx
index cccf763..6dc87a9 100644
--- a/src/app/(frontend)/layout.tsx
+++ b/src/app/(frontend)/layout.tsx
@@ -6,6 +6,7 @@ import { Header } from '@/components/layout/Header'
import { Footer } from '@/components/layout/Footer'
import { CookieBanner } from '@/components/ui/CookieBanner'
import { GoogleAnalytics } from '@/components/analytics/GoogleAnalytics'
+import { GoogleTagManager } from '@/components/analytics/GoogleTagManager'
import { BinotelWidget } from '@/components/analytics/BinotelWidget'
import { getSiteSettings } from '@/lib/getSiteSettings'
import { CartProvider } from '@/context/CartContext'
@@ -51,6 +52,7 @@ export default async function FrontendLayout({ children }: { children: React.Rea
+ {settings.gtmId && }
{settings.ga4Id && }
{settings.binotelId && }
diff --git a/src/components/analytics/GoogleTagManager.tsx b/src/components/analytics/GoogleTagManager.tsx
new file mode 100644
index 0000000..c7d03c3
--- /dev/null
+++ b/src/components/analytics/GoogleTagManager.tsx
@@ -0,0 +1,20 @@
+import Script from 'next/script'
+
+export function GoogleTagManager({ gtmId }: { gtmId: string }) {
+ if (!gtmId) return null
+ return (
+ <>
+
+
+ >
+ )
+}
diff --git a/src/globals/SiteSettings.ts b/src/globals/SiteSettings.ts
index d681f87..663a86f 100644
--- a/src/globals/SiteSettings.ts
+++ b/src/globals/SiteSettings.ts
@@ -9,6 +9,7 @@ export const SiteSettings: GlobalConfig = {
access: { read: () => true, update: isAdminOrEditor },
hooks: { afterChange: [revalidateGlobalAfterChange] },
fields: [
+ { name: 'gtmId', type: 'text', label: 'Google Tag Manager Container ID (GTM-XXXXXXX)' },
{ name: 'ga4Id', type: 'text', label: 'Google Analytics 4 Measurement ID' },
{ name: 'binotelId', type: 'text', label: 'Binotel Widget ID' },
{ name: 'telegramChatId', type: 'text', label: 'Telegram Chat ID' },
diff --git a/src/lib/getSiteSettings.ts b/src/lib/getSiteSettings.ts
index 965d3a2..000de77 100644
--- a/src/lib/getSiteSettings.ts
+++ b/src/lib/getSiteSettings.ts
@@ -3,6 +3,7 @@ import { getPayload } from 'payload'
import configPromise from '@payload-config'
export interface SiteSettingsData {
+ gtmId?: string | null
ga4Id?: string | null
binotelId?: string | null
defaultMetaTitle?: string | null