← Yazılara Dön

Blog

Google Consent Mode v2'ye Geçiş: Google'ın Varsayılanına Neden Tam Uymadım

Google, Mart 2024'ten beri Avrupa Ekonomik Alanı'ndan (AEA) trafik alan ve reklam yürüten siteler için Consent Mode v2'yi zorunlu tutuyor. Bu site hiç Google Ads kullanmıyor ve AEA'ya reklam vermiyor, ama spesifikasyonu okurken kendi kurduğum onay sistemiyle ilginç bir kesişim fark ettim. İlk KVKK yazımda anlattığım mimarinin, Google'ın kendi terminolojisinde zaten bir adı olduğunu keşfettim. Bu yazıda o kesişimi, eksik kalan parçayı ve Google'ın önerdiği daha veri toplayıcı moda neden geçmediğimi anlatıyorum.

Google'ın İki Kurulum Modu: Basic ve Advanced

Google, Consent Mode'u iki ayrı kurulum biçiminde tanımlıyor. Advanced modda etiket (gtag.js) sayfa yüklenir yüklenmez çalışmaya başlıyor; onay reddedilse bile devre dışı kalmıyor, bunun yerine çerezsiz bir sinyal göndererek Google'ın dönüşümleri istatistiksel olarak modellemesine izin veriyor. Basic modda ise tam tersi geçerli: etiket, ziyaretçi onay banner'ıyla etkileşime geçene kadar hiç yüklenmiyor, reddedilirse Google'a hiçbir veri gitmiyor. Aradaki fark küçük bir yapılandırma detayı değil, temelde farklı bir gizlilik önceliği.

Bu Site Zaten Basic Modundaydı

İlk KVKK yazımda gösterdiğim kurulum, bunu bilmeden Google'ın Basic Consent Mode dediği şeyin ta kendisiydi: script tamamen DOM dışında tutuluyor, onay verilene kadar tarayıcının Network sekmesinde Google'a giden tek bir istek bile görünmüyordu. Bu, spesifikasyonu okumadan önce de bilinçli bir karardı, sadece resmi bir adı olduğunu bilmiyordum.

Eksik Olan: Sinyal Sözleşmesi

Ama eksik bir parça vardı. Consent Mode v2, hangi mod seçilirse seçilsin, sayfanın dört depolama sinyalini (ad_storage, ad_user_data, ad_personalization, analytics_storage) açıkça bildirmesini bekliyor: script yüklenmeden önce varsayılan durumu, onay verildiğinde ise güncellenmiş durumu. Eski kurulumumda bu sinyaller hiç tanımlı değildi, script zaten yüklenmediği için ihtiyaç da duyulmamıştı. Ama Basic modda bile bu sinyalleri tanımlamak, GA4'ün ve ileride eklenebilecek başka Google etiketlerinin onay durumunu doğru okumasını garantiliyor. Şimdi her sayfanın <head> bölümünde dördü de reddedilmiş bir varsayılan durum tanımlı; bu çağrı, script hiç yüklenmediği sürece hiçbir yere iletilmiyor, sadece tarayıcının kendi dataLayer dizisinde bekliyor. Onay verildiğinde, script DOM'a eklenmeden hemen önce yalnızca analytics_storage sinyali granted'e güncelleniyor.

Consent Mode v2 dört depolama sinyalinin onay öncesi ve sonrası durumu Dört depolama sinyalinin de varsayılan durumu reddedilmiş. Ziyaretçi onay verdiğinde yalnızca analytics_storage sinyali izin verilmiş duruma geçiyor; ad_storage, ad_user_data ve ad_personalization reddedilmiş kalmaya devam ediyor. SİNYAL VARSAYILAN ONAY SONRASI ad_storage DENIED DENIED ad_user_data DENIED DENIED ad_personalization DENIED DENIED analytics_storage DENIED GRANTED
Basic modda bu varsayılan çağrı, etiket yüklenene kadar hiçbir yere iletilmiyor
// <head>'de, gtag.js hiç yüklenmeden önce
window.dataLayer = window.dataLayer || [];
function gtag() { dataLayer.push(arguments); }
gtag('consent', 'default', {
  ad_storage: 'denied',
  ad_user_data: 'denied',
  ad_personalization: 'denied',
  analytics_storage: 'denied'
});

// Onay verildiğinde, script DOM'a eklenmeden hemen önce
function loadAnalytics() {
  gtag('consent', 'update', { analytics_storage: 'granted' });
  const s = document.createElement('script');
  s.async = true;
  s.src = `https://www.googletagmanager.com/gtag/js?id=${GA_ID}`;
  document.head.appendChild(s);
  gtag('js', new Date());
  gtag('config', GA_ID);
}

Neden Reklam Sinyallerini Hiç Açmadım

ad_storage, ad_user_data ve ad_personalization sinyallerini onay verildiğinde bile granted'e çevirmedim, çünkü bu site hiçbir reklam ya da yeniden pazarlama etiketi çalıştırmıyor. Kullanılmayan bir sinyali açmak, karşılığında hiçbir işlevsel fayda getirmeden Google'a gönderilebilecek veri kategorisini genişletmekten başka bir şey yapmıyor. Kural basit: yalnızca gerçekten kullandığım depolama türünü açık tutuyorum.

Bunun Gerçek Değeri Kimin İçin

Bu sitenin hiçbir Google Ads kampanyası yürütmediğini düşünürsek, bu değişikliğin burada pratik bir karşılığı olmamasını bekliyordum, ama beklenmedik bir yan etkisi çıktı: daha önce bir CSP teşhis yazısında "whack-a-mole" olarak kabul ettiğim Google Signals pikselleri, bu sinyaller reddedilince kendiliğinden sessiz kaldı. Asıl değeri ise Google Ads üzerinden finansal hizmet reklamı veren kurumlar için: Basic mod seçildiğinde bile sinyal sözleşmesi eksik bırakılırsa, GA4 ile Google Ads arasındaki dönüşüm verisi tutarsız ölçülebiliyor. Google Ads'te doğrulanmış hesap açmak zaten başlı başına bir süreçti (bkz. Google Ads'te Mali Hizmetler Doğrulaması yazım); Consent Mode kurulumunu eksik bırakmak, o sürecin sonunda ölçümü baştan sakatlamak demek.

Sonuç

Google Consent Mode v2, tek doğrusu olan bir kurulum değil, bir sinyal sözleşmesi: hangi modu seçtiğinizi Google'a açıkça bildirmeniz gerekiyor. Bu sitede Basic modu, daha önce bilmeden de olsa zaten uyguluyordum; eksik olan, o kararı spesifikasyonun beklediği sinyallerle resmileştirmekti. Benzer bir karar sürecinde yardım isterseniz, iletişime geçebilirsiniz →.

İlgili Yazılar