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 nedeniNe 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 engelleyicilerPixel 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ılarInstagram/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.

%13Pixel + CAPI ile sonuç başına maliyette iyileşme (Meta)
7 günSafari’de script ile kurulan çerezlerin azami ömrü (ITP)
4Consent Mode v2’nin izin sinyali sayısı

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.

SinyalKontrol ettiği şeyReddedilirse
analytics_storageGA4 çerezleri (_ga)GA4 çerezsiz ping gönderir; oturum ve kullanıcı modellenir
ad_storageReklam çerezleri (_gcl_*)Tıklama kimliği saklanmaz; dönüşüm modellenir
ad_user_dataKullanıcı verisinin Google’a reklam amacıyla gönderilmesiGelişmiş dönüşümler ve kitle verisi gönderilmez
ad_personalizationKişiselleştirilmiş reklam / remarketingKullanı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çenekNasıl çalışırArtıEksiKime 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ı dahilKurulum 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 AdsBirinci taraf çerez, tam kontrol, tek noktadan izin yönetimi, veri zenginleştirmeBarındırma maliyeti (Cloud Run ya da yönetilen servis), bakımAylık reklam bütçesi anlamlı olan, çok kanallı mağazalar
Doğrudan backend entegrasyonuSipariş oluşturulunca uygulama sunucusu Graph API’ye POST atarOffline/CRM olayları (iade, tekrar sipariş) gönderilebilirGeliş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)

  1. 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.
  2. Consent default’u sayfanın en üstüne koyun (yukarıdaki kod). GTM konteyneri bundan sonra yüklenmeli.
  3. GTM’de izin ayarlarını açın: Admin → Container settings → Enable consent overview. GA4 etiketine analytics_storage, Google Ads ve Meta etiketlerine ad_storage + ad_user_data zorunluluğu tanımlayın.
  4. sGTM konteynerini kurun. Google Cloud Run ya da yönetilen bir sağlayıcıda; gtm.magazaniz.com gibi birinci taraf alt alan adı verin. Tarayıcıdaki GA4 etiketinin server_container_url alanına bu adresi yazın.
  5. 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.
  6. Meta CAPI etiketini sGTM’e ekleyin (Meta’nın resmi “Conversions API Tag” şablonu). event_id için tarayıcı Pixel’indeki değerle aynı değişkeni kullanın; user_data alanlarını veri katmanından (hash’leyerek) doldurun. CAPI etiketini yalnızca ad_storage ve ad_user_data izinli isabetlerde tetikleyin.
  7. Veri katmanını standartlaştırın. view_item, add_to_cart, begin_checkout, purchase olaylarını GA4 e-ticaret şemasıyla gönderin; Meta olay adlarına sGTM’de eşleyin (ViewContent, AddToCart, InitiateCheckout, Purchase).
  8. 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_id ile “Deduplicated” görünmesi gerekir.
  9. İ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

KontrolHedefNerede bakılır
Consent default, GTM’den önce çalışıyorİlk isabet “denied” sinyalliTag Assistant → Consent sekmesi
Dört sinyal de güncelleniyorKabulde hepsi “granted”Tag Assistant / dataLayer
Pixel ve CAPI tekilleştirme%95–100 eşleşen olayEvents Manager → olay → Tekilleştirme
Event Match Quality (Purchase)≥ 6, tercihen 8+Events Manager → olay → EMQ
Purchase değeri ve para birimiSipariş toplamı, TRYGA4 DebugView, Test events
GA4 ve platform sipariş sayısı farkı< %10GA4 Monetization raporu ↔ mağaza paneli
Birinci taraf çerez_ga sunucudan set ediliyorDevTools → 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.liquid kalktı; 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 default GTM’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 + deterministik event_id ile 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

  1. Google Tag Platform – Consent Mode kurulumu ve sinyaller
  2. Google Analytics Help – Davranış modellemesi için gereksinimler
  3. Google Ads Help – Consent Mode ile dönüşüm modellemesi
  4. Meta for Developers – Conversions API
  5. Meta for Developers – Tarayıcı ve sunucu olaylarının tekilleştirilmesi
  6. Meta for Developers – Müşteri bilgisi parametreleri ve hash’leme
  7. Meta Business Help – Event Match Quality
  8. Meta for Business – Conversions API ve Pixel birlikte kullanım (%13 sonuç başına maliyet)
  9. Shopify.dev – checkout.liquid kullanımdan kaldırma takvimi
  10. Shopify.dev – Web Pixels API ve Customer Events
  11. Google Tag Manager Help – Sunucu taraflı etiketleme
  12. KVKK – Çerez Uygulamaları Hakkında Rehber (2022)
  13. WebKit – Intelligent Tracking Prevention (çerez ömrü)