d-dat · agentic ai marketing TR·ENrehber07.05.2026~12 dk okuma
// rehber · sGTM migration

Server-Side Tracking Migration.

Safari ITP, iOS ATT ve ad-blocker'lar tarayıcı-tarafı ölçümü %20-40 yiyor. Server-side GTM (sGTM) bunu çözüyor — etiketleri kendi sunucunda çalıştırırsın, 1st-party domain üzerinden veri akışı, PII filtreleme. Bu rehber sıfırdan üretime kurulum: Cloud Run deploy, GA4 + Meta CAPI + Google Ads tag'leri, KVKK uyumlu yapı.

// yazar Mesut Şefizade// güncellendi 7 Mayıs 2026// kapsam Google Tag Manager · GA4 · Meta CAPI · Cloud Run
// kısa cevap

Server-side GTM (sGTM), etiketleri tarayıcıdan kendi sunucuna taşır. Avantaj: %20-40 cookie kaybı %5-10'a düşer, sayfa hızı artar, PII filtrelenebilir. Maliyet: Google Cloud Run'da küçük ölçek 1.440-2.880 TL/ay. Kurulum 4 adım: (1) GTM'de Server container oluştur, (2) Cloud Run deploy, (3) 1st-party subdomain CNAME, (4) Web container'ı GA4 Client ile sGTM'ye yönlendir. Toplam süre: deneyimli bir devops için 3-4 saat, ilk seferde 8-12 saat.

// 01Neden server-side tracking

Klasik client-side tracking — tarayıcıda doğrudan Google, Meta, TikTok'a istek atmak — üç probleme sahiptir:

  • Cookie kaybı: Safari ITP üçüncü-parti cookie'leri 7-30 günde tüketir. iOS 14.5+ ATT kullanıcıların %75'inde tracking'i devre dışı bırakır. Ad-blocker kullanım oranı %30'u geçti.
  • Sayfa hızı: 5-10 üçüncü-parti tag tarayıcıda sırayla yüklenir. LCP +1.5-3s.
  • Veri kontrolü: tarayıcı tarafında her şey doğrudan üçüncü-parti'ye gider — KVKK/GDPR risk, PII filtreleme imkansız.

Server-side GTM bu üç problemi büyük ölçüde çözer.

// 02Mimari özet

Klasik vs sGTM mimarileri:

Klasik (client-side)

Tarayıcı → Google Analytics, Meta Pixel, Google Ads (paralel istekler, üçüncü-parti).

sGTM

Tarayıcı → Web Container → 1st-party endpoint (örn. track.markaadi.com) → Cloud Run'da Server Container → Google/Meta/TikTok (sunucu-sunucu).

Kritik nokta: tarayıcının atadığı tek istek kendi domain'ine, oradan sunucuda fan-out. Tarayıcı için her şey 1st-party.

// 03Adım 1: GTM'de Server Container oluştur

  1. tagmanager.google.com'a gir, mevcut workspace'i seç.
  2. Admin → Container Settings → "Create Container" → Target: Server.
  3. Container ID'yi not al (GTM-XXXXX format).
  4. Container provisioning seçeneklerinden "Manually provision" seç (Cloud Run kontrolü için).
  5. Server URL placeholder'ı not al (kurulumdan sonra gerçek URL'le güncellenecek).

// 04Adım 2: Cloud Run deploy

Google Cloud Console'da:

  1. GCP projesi oluştur veya mevcut projeye geç.
  2. Cloud Run API'yi etkinleştir.
  3. "Create Service" → Container Image: gcr.io/cloud-tagging-10302018/gtm-cloud-image:stable
  4. Region seç (Türkiye için europe-west1 veya europe-west3 düşük latency).
  5. Authentication: "Allow unauthenticated invocations" (public endpoint olmalı).
  6. Container port: 8080.
  7. Environment variables:
    • CONTAINER_CONFIG — GTM Server Container'dan kopyalanacak config string.
    • RUN_AS_PREVIEW_SERVER — false (preview için ayrı service kurulur).
  8. CPU: 1 vCPU, Memory: 512MB başlangıç. Min instances: 1 (cold start önleme).
  9. Maksimum instances: trafiğe göre 10-100.
// maliyet tahminiAylık 5M event ölçek için tipik fatura 1.440-2.880 TL. Yüksek hacim (50M+) için 9.600-19.200 TL, ama bu ölçekteki marka için ROI çok yüksek (cookie recovery + match rate artışı).

// 05Adım 3: 1st-party subdomain bağla

Cloud Run servisinin native URL'si your-service-xxx.run.app formatındadır — bu üçüncü-parti olarak görülür ve ITP'den kaçamaz. Mutlaka kendi domain'inde 1st-party olarak yayınla.

  1. DNS sağlayıcına git (Cloudflare, Route53 vb.).
  2. CNAME kaydı ekle: track.markaadi.comghs.googlehosted.com.
  3. Cloud Run console → Domain Mappings → Add Mapping → track.markaadi.com.
  4. SSL sertifikası otomatik provisionlanır (5-30 dk).
  5. GTM Server Container settings → Server URL = https://track.markaadi.com.

// 06Adım 4: Web Container'ı sGTM'ye yönlendir

Web GTM Container'da GA4 Configuration tag'i şu değişikliklerle güncellenir:

  • "Send to server container" — true.
  • Server container URL — https://track.markaadi.com.
  • Transport URL alanı doldurulur.

Sunucu tarafında karşılık gelen tag'leri ekle:

  • GA4 Client: gelen GA4 isteklerini parse eder.
  • GA4 Tag: sunucudan Google Analytics'e fan-out.
  • Meta Conversions API Tag: aynı event'i Meta'ya gönderir.
  • Google Ads Conversion Tag: Google Ads dönüşüm raporlamasına.

// 07PII filtreleme + KVKK uyumu

Sunucu tarafının en büyük avantajlarından biri: veriyi üçüncü-partiye göndermeden önce temizleyebilirsin.

Yapılması gerekenler

  • E-posta hashleme: ham e-posta yerine SHA-256 hash gönder (Enhanced Conversions için zaten gerekli).
  • IP truncation: son oktet sıfırla (KVKK için anonim IP).
  • Telefon temizliği: hash + ülke kodu normalize.
  • URL parametreleri: PII içeren query string'leri filtrele (örn. ?email=).

Bu filtrelemeleri sunucu tarafında "Custom Variable" + Transformation ile yap. KVKK denetim raporunda bu yapıyı göstermek uyum kanıtı olarak kabul edilir.

// 08Test ve gözlem

  1. GTM Server Preview mode: önce preview environment'ında test et. Her event'in sunucuya ulaştığını ve doğru tag'leri tetiklediğini doğrula.
  2. GA4 DebugView: sunucudan gelen event'lerin GA4'te göründüğünü kontrol et.
  3. Meta Events Manager: "Test Events" aracı ile CAPI event'lerinin geldiğini doğrula. Match rate'i sGTM öncesi/sonrası kıyasla.
  4. Google Ads: "Conversion Diagnostics" — Enhanced Conversions match rate'in arttığını gör.

Beklenen iyileşmeler (4-6 hafta sonra)

  • GA4 ve Google Ads dönüşüm sayım farkı %20-30'dan %5-10'a düşer.
  • Enhanced Conversions match rate %45-55'ten %70-80'e çıkar.
  • Sayfa LCP 0.3-0.8s iyileşir.
  • Meta CAPI match quality 6-8 puana yükselir.

Bu rehberde geçen kavramların kısa tanımları için sözlüğe bakabilirsin:

// sırada

Server-side ölçüm = doğru karar.

Cookie kaybı ölçümü %20-40 saptırırken bütçe kararını ona dayandırmak risklidir. sGTM kurulumu sonrası d-lens server event'lerini doğrudan okur; gerçek dönüşüm sayısı, gerçek ROAS.

WhatsApp ile yaz