Blog
Google Consent Mode v2'ye Geçiş: Google'ın Varsayılanına Neden Tam Uymadım
1 Ağustos 2026 · 3 dk okuma
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.
// <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 →.