İçeriğe geç
ceaksan
PREMIUM analytics

GA4 Source/Medium Debugging: First-Party Cookie ile Gerçek Kaynak Tespiti

GA4 purchase event'lerinde (direct)/(none) görünen siparişlerin gerçek kaynağını tespit etmek için first-party cookie tabanlı source tagging implementasyonu. GTM Custom HTML tag'leri, cookie yapısı, GA4 custom dimension kurulumu ve debug araçları.

18 Nis 2026
TL;DR

GA4'ün attribution modeli ödeme yönlendirmeleri, Safari ITP ve in-app browser nedeniyle purchase event'lerinde kaynak bilgisini kaybedebiliyor. Bu yazıdaki first-party cookie çözümü, landing sayfasında UTM/gclid/fbclid bilgisini iki cookie'ye yazıyor (dnm_src ve dnm_cid), purchase aşamasında bu bilgiyi GA4'e event-scope custom dimension olarak gönderiyor. GA4 attribution modeline dokunmadan, raporlamada gerçek kaynağı secondary dimension olarak görmeyi sağlıyor.

Üyelik Gerekli

Bu içeriğe erişmek için giriş yapmanız ve Premium aboneliğine sahip olmanız gerekmektedir.

Önemli Noktalar
  • 01 İki cookie mimarisi: dnm_src (source|medium|campaign|content|term) ve dnm_cid (click ID tipi ve değeri), 30 gün TTL
  • 02 Overwrite mantığı: cookie varsa sadece yeni click ID (gclid/fbclid) geldiğinde üzerine yazar, organik return ziyaretleri önceki paid source'u silmez
  • 03 3 GA4 custom dimension: first_touch_source, first_touch_campaign, first_touch_click_id, hepsi event scope
  • 04 Custom dimension'lar attribution modeline dahil olmaz, sadece raporlamada secondary dimension olarak kullanılır
  • 05 Safari ITP JS cookie'leri 7 güne, localStorage'ı inaktivite sonrası 7 güne kısıtlar. Tam çözüm için server-side cookie setting (sGTM) gerekir
Sık Sorulan Sorular (FAQ)
+ Bu çözüm GA4'ün attribution modelini değiştirir mi?

Hayır. Cookie'ye yazılan veriler GA4'e event-scope custom dimension olarak gönderilir. DDA, last-click veya diğer attribution modellerinin hesaplamasına dahil olmaz. Sadece Explore raporlarında secondary dimension olarak kullanılır.

+ Consent yoksa cookie yazılır mı?

Yazılmamalı. GTM'de source capture tag'inin trigger'ına analytics_storage: granted şartı eklenmelidir. Kullanıcı consent vermeden cookie set edilmez.

+ Safari'de 30 günlük cookie süresi çalışır mı?

Hayır. Safari ITP, JavaScript ile oluşturulan cookie'leri 7 güne kısıtlar. URL'de gclid/fbclid varsa bu süre 24 saate düşer. Tam çözüm için server-side GTM ile HTTP-only cookie set edilmesi gerekir.

+ Neden tek cookie yerine iki ayrı cookie kullanılıyor?

Tek JSON cookie yaklaşımı 4KB cookie boyut limitine takılma riski taşır. source/medium/campaign ve click ID'yi ayırmak hem boyut güvenliği sağlar hem de parse işlemini basitleştirir.

+ Return ziyarette cookie üzerine yazılır mı?

Sadece URL'de yeni bir click ID (gclid veya fbclid) varsa üzerine yazılır. Parametresiz organik veya direct return ziyaretleri önceki paid source bilgisini korur.

+ Bu çözüm hangi e-ticaret platformlarında çalışır?

GTM yüklenebilen her platformda çalışır: Shopify, T-Soft, Ticimax, Ikas, WooCommerce, custom platformlar. Platform bağımsız bir çözüm.

+ Implementasyonu bitirdim ama GA4 raporlarında custom dimension verisi görünmüyor, neden?

GA4 standart raporlarında işleme gecikmesi 24-48 saattir. Custom dimension tanımlanmasından sonra veri toplamaya başlar, geçmişe dönük doldurulmaz. İlk 48 saatte DebugView'da anlık kontrol yapın, Explore raporlarında birikimli veriyi 2-3 gün sonra değerlendirin.

+ localStorage fallback Safari'de de koruma sağlar mı?

Kısmen. Safari ITP 2.3 sonrası localStorage de 7 günlük inaktivite süresi sonrası temizlenir. storageHelper dual-write, tarayıcı eklentileri veya manuel temizlik nedeniyle silinen cookie'leri kurtarır, ama Safari'de cookie ve localStorage aynı 7 günlük sınıra tabidir.