Reklam Ölçümü
GA4 Consent Mode v2 ve Meta Conversions API: e-ticaret için sunucu taraflı dönüşüm izleme nasıl kurulur
Çerez engelleri ve izin yönetimi yüzünden kaybolan dönüşümleri geri kazanmak için adım adım kurulum: Consent Mode v2 sinyalleri, GTM yapılandırması, Meta CAPI ve event_id ile tekilleştirme, Shopify Customer Events, test ve kalite metrikleri.
Kısa cevap
2026’da tarayıcı tabanlı izleme tek başına yetmez: Safari ve Firefox üçüncü taraf çerezleri engeller, iOS uygulama içi tarayıcılar Pixel’i keser, izin bannerını reddeden kullanıcı hiç görünmez. Çözüm iki katmanlıdır. Consent Mode v2, kullanıcının izin durumunu Google etiketlerine dört sinyalle (analytics_storage, ad_storage, ad_user_data, ad_personalization) iletir; izin yoksa çerezsiz “ping” gönderir ve GA4 ile Google Ads eksik dönüşümleri modelleyebilir. Meta Conversions API (CAPI) ise satın alma, sepete ekleme gibi olayları sunucunuzdan doğrudan Meta’ya gönderir; tarayıcı Pixel’i ile aynı event_id kullanıldığında Meta çift sayımı önler.
Shopify kullanıyorsanız resmi Facebook & Instagram ve Google & YouTube uygulamaları CAPI ve dönüşüm aktarımını otomatik yapar; özel ihtiyaçlarda sunucu taraflı GTM (sGTM) eklenir. Başarı ölçütü: Meta Events Manager’da Event Match Quality 6’nın üzerinde, tekilleştirme oranı %100’e yakın, GA4’te Consent Mode “aktif”.
Neden tarayıcı tabanlı izleme artık yetmiyor?
Dönüşüm verisinin kaybolmasının dört ayrı nedeni var ve her biri farklı bir araçla çözülür.
| Kayıp nedeni | Ne olur | Çözüm katmanı |
|---|---|---|
| Safari ITP, Firefox ETP | Üçüncü taraf çerezler engellenir; birinci taraf script çerezleri 7 güne, bazı durumlarda 24 saate düşürülür. 7 gün sonra dönen müşteri “yeni” sayılır. | Sunucu taraflı etiketleme, birinci taraf çerez |
| Reklam engelleyiciler | Pixel ve gtag.js hiç yüklenmez. Masaüstü trafiğinin kayda değer bir kısmında görülür. | CAPI / sunucu taraflı gönderim |
| iOS ATT ve uygulama içi tarayıcılar | Instagram/Facebook içinden açılan sayfada Pixel sinyali zayıflar; atıf kopar. | CAPI + fbc/fbp parametreleri |
| İzin reddi (KVKK, GDPR) | Banner’ı reddeden kullanıcı için çerez kurulamaz; ölçüm yapılmaz. | Consent Mode v2 modelleme |
Meta, Pixel’i CAPI ile birlikte kullanan reklamverenlerde sonuç başına maliyette ortalama %13 iyileşme ölçtüğünü raporlar. Google ise Consent Mode ile modellemenin, izin oranına bağlı olarak kaybolan dönüşümlerin önemli bir kısmını geri kazandırdığını belgeler. Türkiye’de KVKK Kurulu’nun 2022 tarihli Çerez Uygulamaları Rehberi, zorunlu olmayan çerezler için açık rıza arar; dolayısıyla izin yönetimi Türkiye pazarında da teknik bir zorunluluktur.
Consent Mode v2: dört sinyal ve iki mod
Consent Mode, kullanıcının izin tercihini Google etiketlerine (GA4, Google Ads, Floodlight) ileten bir API’dir. Etiketler bu sinyallere göre davranışlarını değiştirir: izin varsa çerez kurar, yoksa çerezsiz ve kimliksiz ping gönderir. “v2”, Mart 2024’te Avrupa Ekonomik Alanı için zorunlu hale gelen iki ek sinyali (ad_user_data, ad_personalization) ifade eder.
| Sinyal | Kontrol ettiği şey | Reddedilirse |
|---|---|---|
analytics_storage | GA4 çerezleri (_ga) | GA4 çerezsiz ping gönderir; oturum ve kullanıcı modellenir |
ad_storage | Reklam çerezleri (_gcl_*) | Tıklama kimliği saklanmaz; dönüşüm modellenir |
ad_user_data | Kullanıcı verisinin Google’a reklam amacıyla gönderilmesi | Gelişmiş dönüşümler ve kitle verisi gönderilmez |
ad_personalization | Kişiselleştirilmiş reklam / remarketing | Kullanıcı remarketing listelerine eklenmez |
Temel (basic) mod: İzin gelene kadar hiçbir Google etiketi yüklenmez; reddedenlerden veri gelmez, modelleme genel oranlara dayanır. Gelişmiş (advanced) mod: Etiketler her zaman yüklenir ama izin yokken çerezsiz ping atar; modelleme bu pinglere dayandığı için daha isabetlidir. E-ticaret için gelişmiş modu öneriyoruz; hukuk ekibiniz çerezsiz pingi de veri işleme sayıyorsa temel modda kalın.
Uygulama: varsayılanı reddet, seçimle güncelle
Kritik kural: consent default komutu, gtag veya GTM yüklenmeden önce ve sayfanın en üstünde çalışmalıdır. Aksi halde ilk isabet izinli sayılır.
<script>
window.dataLayer = window.dataLayer || [];
function gtag(){ dataLayer.push(arguments); }
gtag('consent', 'default', {
analytics_storage: 'denied',
ad_storage: 'denied',
ad_user_data: 'denied',
ad_personalization: 'denied',
wait_for_update: 500 // CMP cevabını en çok 500 ms bekle
});
</script>
<!-- buradan sonra GTM / gtag.js yüklenir -->
// Kullanıcı banner’da seçim yapınca:
gtag('consent', 'update', {
analytics_storage: 'granted',
ad_storage: 'granted',
ad_user_data: 'granted',
ad_personalization: 'granted'
});
GTM kullanıyorsanız izin platformunuzun (CMP) “Consent Initialization” tetikleyicisine bağlı şablonunu kullanın; Google’ın sertifikalı CMP listesindeki araçlar bu işi hazır yapar. Her etiketin “Consent settings” bölümünde hangi sinyale ihtiyaç duyduğu tanımlı olmalıdır.
GA4’te modellemenin çalışması için eşikler
Davranış modellemesi (behavioral modeling) otomatik açılmaz. Google’ın şartları: Consent Mode doğru kurulmuş olmalı, mülk en az 7 gün boyunca günde en az 1.000 adet analytics_storage: denied olay almalı ve son 28 günün en az 7 gününde günde 1.000 izinli kullanıcı olmalı. Küçük mağazalarda bu eşik tutmaz; o zaman modelleme yerine yalnızca izinli veri raporlanır, bu normaldir.
Meta Conversions API: olayları sunucudan gönderin
Conversions API (CAPI), web olaylarını (PageView, ViewContent, AddToCart, InitiateCheckout, Purchase) tarayıcı yerine sunucunuzdan Meta’nın Graph API’sine gönderen arayüzdür. Reklam engelleyici, çerez kısıtı ve bağlantı kopmalarından etkilenmez; Pixel’in yanında ikinci bir kanal olarak çalışır.
Tekilleştirme: aynı olayı iki kez saymamak
Pixel ve CAPI aynı satın almayı iki ayrı yoldan bildirir. Meta ikisini tek olay olarak birleştirmek için aynı event_name ve aynı event_id arar; ikinci gelen 48 saat içinde atılır. event_id sipariş numarası gibi deterministik olmalı, rastgele üretilmemelidir.
// Tarayıcı (Pixel)
fbq('track', 'Purchase',
{ value: 1249.90, currency: 'TRY', content_ids: ['BAL-CAM-450'], content_type: 'product' },
{ eventID: 'order_104233' });
// Sunucu (CAPI) – POST https://graph.facebook.com/v22.0/{PIXEL_ID}/events
{
"data": [{
"event_name": "Purchase",
"event_time": 1760700000,
"event_id": "order_104233",
"event_source_url": "https://www.ornekmagaza.com/checkout/thank-you",
"action_source": "website",
"user_data": {
"em": ["<sha256(lowercase e-posta)>"],
"ph": ["<sha256(E.164 telefon, + ve boşluksuz)>"],
"client_ip_address": "203.0.113.4",
"client_user_agent": "Mozilla/5.0 ...",
"fbp": "fb.1.1760699000000.123456789",
"fbc": "fb.1.1760699000000.IwAR0..."
},
"custom_data": { "value": 1249.90, "currency": "TRY", "content_ids": ["BAL-CAM-450"], "content_type": "product", "order_id": "104233" }
}]
}
Event Match Quality (EMQ): eşleşmenin kalitesi
Meta, her olay için gönderdiğiniz kullanıcı parametrelerinin (e-posta, telefon, ad, şehir, posta kodu, fbp, fbc, IP, user agent) ne kadar iyi eşleştiğini 1–10 arası puanlar. Pratik hedef 6 ve üzeri; Purchase olayında 8+ ulaşılabilir, çünkü ödeme sırasında e-posta ve telefon elinizdedir. Tüm kişisel alanlar SHA-256 ile hash’lenmiş, küçük harfe çevrilmiş ve boşlukları temizlenmiş gönderilmelidir; fbp, fbc, IP ve user agent hash’lenmez.
Mimari seçenekler: hangisi sizin için?
| Seçenek | Nasıl çalışır | Artı | Eksi | Kime uygun |
|---|---|---|---|---|
| Platformun yerleşik entegrasyonu (Shopify Facebook & Instagram, Google & YouTube uygulamaları) | Platform, Pixel + CAPI’yi ve dönüşüm aktarımını kendisi yönetir; checkout olayları dahil | Kurulum dakikalar, tekilleştirme hazır, checkout verisi eksiksiz | Özel olaylar ve parametreler sınırlı | Shopify, WooCommerce ve benzeri platformdaki çoğu mağaza |
| Sunucu taraflı GTM (sGTM) | Tarayıcı GTM → kendi alt alan adınızdaki sGTM konteyneri → GA4, Meta CAPI, Google Ads | Birinci taraf çerez, tam kontrol, tek noktadan izin yönetimi, veri zenginleştirme | Barındırma maliyeti (Cloud Run ya da yönetilen servis), bakım | Aylık reklam bütçesi anlamlı olan, çok kanallı mağazalar |
| Doğrudan backend entegrasyonu | Sipariş oluşturulunca uygulama sunucusu Graph API’ye POST atar | Offline/CRM olayları (iade, tekrar sipariş) gönderilebilir | Geliştirici gerektirir, tarayıcı olaylarını kapsamaz | Özel yazılım, B2B portal, CRM bağlantısı olanlar |
Shopify notu: checkout.liquid bilgi, kargo ve ödeme adımları için 13 Ağustos 2024’te, teşekkür ve sipariş durumu sayfaları için 28 Ağustos 2025’te kaldırıldı. Checkout olaylarını yakalamanın tek yolu artık Customer Events (Web Pixels API) ile sandbox’ta çalışan özel pixel ya da resmi kanal uygulamalarıdır. Özel pixel’de analytics.subscribe('checkout_completed', ...) olayından sipariş kimliğini alıp event_id olarak hem Pixel’e hem CAPI’ye verirsiniz; izin için Shopify’ın Customer Privacy API’si (init.customerPrivacy) kullanılır.
Adım adım kurulum (GTM + sGTM senaryosu)
- CMP seçin ve banner’ı kurun. Türkçe metin, “Reddet” butonu “Kabul et” ile eşit görünürlükte; seçim 180 güne kadar saklanabilir. Google sertifikalı bir CMP, Consent Mode v2 sinyallerini otomatik üretir.
- Consent default’u sayfanın en üstüne koyun (yukarıdaki kod). GTM konteyneri bundan sonra yüklenmeli.
- GTM’de izin ayarlarını açın: Admin → Container settings → Enable consent overview. GA4 etiketine
analytics_storage, Google Ads ve Meta etiketlerinead_storage+ad_user_datazorunluluğu tanımlayın. - sGTM konteynerini kurun. Google Cloud Run ya da yönetilen bir sağlayıcıda;
gtm.magazaniz.comgibi birinci taraf alt alan adı verin. Tarayıcıdaki GA4 etiketininserver_container_urlalanına bu adresi yazın. - GA4 client ve etiketini sGTM’de oluşturun. Tarayıcıdan gelen GA4 isteklerini sGTM alır, GA4’e iletir; çerezler artık birinci taraftır.
- Meta CAPI etiketini sGTM’e ekleyin (Meta’nın resmi “Conversions API Tag” şablonu).
event_idiçin tarayıcı Pixel’indeki değerle aynı değişkeni kullanın;user_dataalanlarını veri katmanından (hash’leyerek) doldurun. CAPI etiketini yalnızcaad_storagevead_user_dataizinli isabetlerde tetikleyin. - Veri katmanını standartlaştırın.
view_item,add_to_cart,begin_checkout,purchaseolaylarını GA4 e-ticaret şemasıyla gönderin; Meta olay adlarına sGTM’de eşleyin (ViewContent, AddToCart, InitiateCheckout, Purchase). - Test edin. GA4 DebugView, Tag Assistant (hem web hem server önizleme), Meta Events Manager → Test events. Test olayında “Browser” ve “Server” satırlarının aynı
event_idile “Deduplicated” görünmesi gerekir. - İzleyin. Meta Events Manager’da EMQ ve tekilleştirme oranı; GA4 Admin → Data collection’da Consent Mode durumu; Google Ads’te dönüşüm “Diagnostics” sekmesi.
Kalite kontrol listesi
| Kontrol | Hedef | Nerede bakılır |
|---|---|---|
| Consent default, GTM’den önce çalışıyor | İlk isabet “denied” sinyalli | Tag Assistant → Consent sekmesi |
| Dört sinyal de güncelleniyor | Kabulde hepsi “granted” | Tag Assistant / dataLayer |
| Pixel ve CAPI tekilleştirme | %95–100 eşleşen olay | Events Manager → olay → Tekilleştirme |
| Event Match Quality (Purchase) | ≥ 6, tercihen 8+ | Events Manager → olay → EMQ |
| Purchase değeri ve para birimi | Sipariş toplamı, TRY | GA4 DebugView, Test events |
| GA4 ve platform sipariş sayısı farkı | < %10 | GA4 Monetization raporu ↔ mağaza paneli |
| Birinci taraf çerez | _ga sunucudan set ediliyor | DevTools → Application → Cookies |
Sık yapılan hatalar
- Consent default’u GTM’den sonra çalıştırmak. İlk sayfa görüntüleme izinli gider; denetimde ilk sorulan şey budur.
- Rastgele
event_id. Tarayıcı ve sunucu farklı kimlik üretir, Meta ikisini de sayar; satın almalar ikiye katlanmış görünür, ROAS şişer. - Hash’lenmemiş e-posta/telefon. Meta ham veriyi reddeder, EMQ düşer. Telefon E.164 formatında (
905321234567) ve hash’li gönderilmeli. - CAPI’yi izin reddinde de ateşlemek. Sunucu taraflı olması izni ortadan kaldırmaz; KVKK ve GDPR açısından risklidir. CAPI etiketini de izin sinyaline bağlayın.
- Checkout’ta eski script’lere güvenmek. Shopify’da
checkout.liquidkalktı; teşekkür sayfasına yerleştirilmiş eski Pixel kodları artık çalışmaz. - Tek kaynağa bakmak. GA4, Meta ve mağaza paneli hiçbir zaman birebir tutmaz; %10 içindeki farklar normaldir, üstü araştırılır.
Ölçüm altyapısı, site hızı ve yapılandırılmış veriyle birlikte düşünülmelidir: Shopify Core Web Vitals rehberi ve E-ticaret için Schema.org JSON-LD rehberi bu yazının tamamlayıcısıdır.
Öne çıkanlar
- Dönüşüm kaybının dört nedeni var (ITP/ETP, reklam engelleyici, iOS/uygulama içi tarayıcı, izin reddi); Consent Mode v2 ve CAPI birlikte bunların tamamını adresler.
- Consent Mode v2 dört sinyalden oluşur;
consent defaultGTM’den önce ve “denied” ile başlamalı, seçimle “update” gönderilmelidir. - GA4 modellemesi için günde 1.000 reddedilmiş olay ve 1.000 izinli kullanıcı eşiği vardır; küçük mağazalarda modelleme çalışmaz, bu normaldir.
- Meta CAPI’de tekilleştirme aynı
event_name+ deterministikevent_idile yapılır; kişisel alanlar SHA-256 ile hash’lenir, hedef EMQ 6+. - Shopify’da checkout.liquid kalktı; checkout olayları yalnızca resmi kanal uygulamaları ya da Customer Events özel pixel’i ile yakalanır.
- Doğrulama: Tag Assistant (consent), GA4 DebugView, Meta Test events (Deduplicated), GA4 ile mağaza sipariş sayısı farkı %10’un altında.
Sık sorulan sorular
Consent Mode v2 Türkiye’deki bir e-ticaret sitesi için zorunlu mu?
Google’ın zorunluluğu Avrupa Ekonomik Alanı, İngiltere ve İsviçre’deki kullanıcılar için geçerlidir; Almanya’ya da satıyorsanız sizi kapsar. Türkiye’de ise KVKK Kurulu’nun Çerez Uygulamaları Rehberi zorunlu olmayan çerezler için açık rıza arar; Consent Mode bu rızayı Google etiketlerine teknik olarak iletmenin standart yoludur. Yani hukuken banner, teknik olarak Consent Mode gerekir.
Meta Pixel varken Conversions API’ye gerçekten ihtiyaç var mı?
Evet. Pixel; reklam engelleyici, Safari çerez kısıtları ve uygulama içi tarayıcılar yüzünden olayların bir kısmını kaçırır. CAPI aynı olayları sunucudan gönderir ve Meta, Pixel ile birlikte kullanıldığında sonuç başına maliyette ortalama %13 iyileşme raporlar. İkisi birlikte, aynı event_id ile çalışmalıdır.
event_id nasıl üretilmeli?
Deterministik olmalı: Purchase için sipariş numarası, AddToCart için oturum kimliği + ürün kimliği + zaman damgası gibi. Tarayıcıdaki Pixel çağrısında eventID, sunucudaki CAPI isteğinde event_id alanına aynı değer yazılır. Rastgele üretilen kimlikler tekilleştirmeyi bozar ve dönüşümleri ikiye katlar.
Sunucu taraflı GTM’in maliyeti nedir?
Google Cloud Run üzerinde düşük trafikli bir mağaza için aylık birkaç dolar ile birkaç on dolar arasında; yönetilen sağlayıcılarda sabit aylık paketler vardır. Asıl maliyet kurulum ve bakım emeğidir. Aylık reklam bütçesi düşükse, platformun yerleşik entegrasyonu (Shopify’ın resmi Meta ve Google uygulamaları) çoğu ihtiyacı maliyetsiz karşılar.
Shopify’da checkout dönüşümlerini nasıl ölçerim?
İki yol var: Shopify’ın resmi Facebook & Instagram ve Google & YouTube uygulamaları checkout olaylarını Pixel ve CAPI ile otomatik gönderir; ya da Settings → Customer events altında özel pixel yazıp checkout_completed olayına abone olursunuz. Teşekkür sayfasına elle script eklemek 28 Ağustos 2025’ten beri mümkün değildir.
Event Match Quality puanım düşük, ne yapmalıyım?
Purchase olayında e-posta ve telefonu SHA-256 ile hash’leyip gönderin, fbp ve fbc çerez değerlerini, IP ve user agent’ı ekleyin, mümkünse ad, şehir ve posta kodunu da hash’li verin. Telefonu E.164 formatına çevirin, e-postayı küçük harfe indirin. Bu alanların her biri puanı artırır; 6’nın üzeri iyi, 8 ve üstü çok iyidir.
Consent Mode açıkken GA4 raporlarım neden değişti?
İzin reddeden kullanıcılar artık çerezsiz ping gönderir; eşikleri sağlıyorsanız GA4 bu kullanıcıları modelleyerek raporlara ekler, sağlamıyorsanız yalnızca izinli trafik görünür. Her iki durumda da önceki dönemle birebir karşılaştırma yanıltıcıdır; Admin → Data collection ekranında Consent Mode durumunu ve modellemenin açık olup olmadığını kontrol edin.
Kaynaklar
- Google Tag Platform – Consent Mode kurulumu ve sinyaller
- Google Analytics Help – Davranış modellemesi için gereksinimler
- Google Ads Help – Consent Mode ile dönüşüm modellemesi
- Meta for Developers – Conversions API
- Meta for Developers – Tarayıcı ve sunucu olaylarının tekilleştirilmesi
- Meta for Developers – Müşteri bilgisi parametreleri ve hash’leme
- Meta Business Help – Event Match Quality
- Meta for Business – Conversions API ve Pixel birlikte kullanım (%13 sonuç başına maliyet)
- Shopify.dev – checkout.liquid kullanımdan kaldırma takvimi
- Shopify.dev – Web Pixels API ve Customer Events
- Google Tag Manager Help – Sunucu taraflı etiketleme
- KVKK – Çerez Uygulamaları Hakkında Rehber (2022)
- WebKit – Intelligent Tracking Prevention (çerez ömrü)