Bu makalede7 bölüm
- Teknoloji
- Google Tag Manager, Google Consent Mode v2, GA4, CMP, KVKK
- Konu
- Analitik ve pazarlama etiketlerinin onaya bağlı yüklenmesi ve doğrulanması
- Seviye
- Orta
- Ön koşullar
- Google Tag Manager kapsayıcısına yönetici erişimi
- Tarayıcı geliştirici araçlarını kullanabilme
- Sitedeki etiketlerin listesine erişim
Banner sayfada düzgün görünüyor, “Reddet” düğmesi de var. Ama geliştirici araçlarını açtığınızda ziyaretçi henüz hiçbir şeye tıklamadan _ga çerezi yazılmış, Meta Pixel isteği gitmiş oluyor. Çerez onayı denetimlerinde sahada en sık gördüğümüz tablo budur. Bu rehber web ekiplerine, pazarlama teknolojisi sorumlularına ve IT yöneticilerine etiketleri gerçekten onaya bağlamanın ve bunu tarayıcıda kanıtlamanın teknik adımlarını anlatır. Hukuki değerlendirme değildir; hangi kategorinin hangi dayanakla işleneceğine hukuk danışmanınızla karar verin.
Çerez kategorileri ve envanter
Sitede neyin çalıştığını bilmeden onay yönetimi kurulmaz. İlk iş envanter: tüm çerezler, yerel depolama anahtarları ve üçüncü taraf istekleri. Yalnız ana sayfaya bakmak yetmez. İletişim formu, ürün sayfası, sepet, blog yazısı ve gömülü video olan sayfaları da tarayın; birçok betik yalnızca belirli şablonlarda yüklenir ve ana sayfa taramasında hiç görünmez.
Envanterde her kayıt için şu sütunlar yeterli: çerez veya kaynak adı, alan adı (birinci mi üçüncü taraf mı), saklama süresi, yükleyen betik, amaç ve kategori. Çoğu sitede kategoriler dört gruptur:
| Kategori | Örnek | Onay öncesi |
|---|---|---|
| Zorunlu | Oturum, sepet, CSRF, yük dengeleyici, onay tercihi çerezi | Çalışır |
| İşlevsel | Dil tercihi, canlı destek penceresi | Tasarıma göre, genelde onayla |
| Analitik | Google Analytics 4, Matomo, ısı haritası araçları | Çalışmamalı |
| Pazarlama | Google Ads, Meta Pixel, LinkedIn Insight Tag | Çalışmamalı |
En çok suistimal edilen kategori “zorunlu”dur. Bir çerezin zorunlu sayılması için sitenin ziyaretçinin istediği hizmeti sunabilmesine gerçekten gerekli olması beklenir. “Pazarlama ekibi için çok önemli” olması bu anlama gelmez. Kategori ayrımı için birincil kaynak, Kişisel Verileri Koruma Kurumu’nun çerez uygulamaları rehberidir; güncel metin kvkk.gov.tr üzerinde.
Onaydan önce ve sonra yüklenen kaynaklar
Bir etiketi onaya bağlamanın üç teknik yolu var. Hangisini seçtiğiniz, testi nasıl yapacağınızı da belirler:
- Betiği hiç yüklememek: Onay gelene kadar etiket sayfaya eklenmez. En katı yöntemdir, doğrulaması da en kolayıdır.
- Betiği etkisiz tipte yüklemek: Birçok onay yönetim aracı (CMP)
<script type="text/plain" data-category="analytics">kalıbını kullanır. Tarayıcı bu bloğu çalıştırmaz; onay gelince araç bloğutext/javascriptolarak yeniden ekler. - Betiği yükleyip davranışını kısıtlamak: Google Consent Mode’un gelişmiş modu böyle çalışır; aşağıda ayrıca anlatılıyor.
Kurumsal WordPress sitelerinde asıl sızıntı, aynı etiketin birden fazla kapıdan girmesidir. Tema ayarlarındaki “header kodu” alanı, SEO eklentisinin analitik modülü, WooCommerce pazarlama eklentisi ve Tag Manager aynı anda GA4 yükleyebilir. CMP bunlardan yalnız birini kontrol ediyorsa diğerleri onaysız çalışır. Kural basit: tüm etiketler tek noktadan, tercihen Google Tag Manager (GTM) üzerinden yönetilir, diğer ekleme noktaları kapatılır. Sayfa kaynağında gtag/js?id= araması yapın. İki sonuç çıkıyorsa sorun bulunmuştur.
Tam sayfa önbelleği kullanan sitelerde ikinci bir tuzak var. Onay durumu sunucuda okunup HTML’e farklı betik basılıyorsa, önbellekteki sayfa bir ziyaretçinin onay durumunu diğerine servis eder. Onay kararı istemci tarafında, tarayıcıdaki tercih çerezine bakılarak verilmeli. Önbellek ile kişiye özel içerik çakışmalarını WooCommerce cache hataları yazısında ayrıntılı anlattık.
Tag Manager ile onaya bağlı tetikleme
GTM’de doğru kurgu, onay varsayılanını her şeyden önce tanımlamakla başlar. Bunun için Consent Initialization – All Pages tetikleyicisi var; diğer tüm tetikleyicilerden önce çalışır. CMP’nin GTM şablonu (Community Template Gallery’de çoğu CMP’nin resmi şablonu bulunur) bu tetikleyiciye bağlanır ve varsayılanı “reddedildi” yapar.
Şablon kullanmıyorsanız varsayılan durumu GTM kapsayıcı kodundan önce şöyle tanımlarsınız:
<script>
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',
'functionality_storage': 'denied',
'personalization_storage': 'denied',
'security_storage': 'granted',
'wait_for_update': 500
});
</script>
Ziyaretçi tercihini kaydettiğinde CMP seçilen kategorilere göre güncelleme gönderir:
gtag('consent', 'update', {
'analytics_storage': 'granted',
'ad_storage': 'denied',
'ad_user_data': 'denied',
'ad_personalization': 'denied'
});
dataLayer.push({'event': 'consent_update'});
GA4 ve Google Ads onay türlerini yerleşik olarak tanır. Meta Pixel, LinkedIn Insight Tag, Hotjar gibi Google dışı etiketler bu sinyali kendiliğinden okumaz. Sahada en sık atlanan adım burasıdır. Bu etiketler için GTM’de etiketin Consent Settings bölümünde “Require additional consent for tag to fire” seçilir ve ilgili onay türü (örneğin ad_storage) eklenir. Böylece tetikleyici çalışsa bile onay yoksa etiket ateşlenmez. Onay sayfa açıldıktan sonra verildiğinde etiketin aynı sayfada çalışması için etikete consent_update özel olay tetikleyicisi de eklenmeli; yoksa etiket ancak bir sonraki sayfa görüntülemede çalışır ve açılış sayfasının dönüşüm verisi kaybolur.
Kapsayıcı ayarlarında onay genel bakışı etkinleştirildiğinde Consent Overview ekranı hangi etiketin hangi onay kontrolüne sahip olduğunu tek listede gösterir. Her yayından önce bu listeye bakın. Unutulan etiket orada görünür.
Consent Mode ne yapar, ne yapmaz
Google Consent Mode, Google etiketlerinin onay durumuna göre davranışını değiştiren bir API’dir. Banner değildir, onay yönetimi de değildir: onayı CMP toplar, Consent Mode sonucu Google etiketlerine taşır. v2 ile ad_user_data ve ad_personalization parametreleri eklendi; Avrupa Ekonomik Alanı’ndaki kullanıcılar için Google reklam özelliklerinde bu sinyallerin gönderilmesini Google şart koşuyor.
| Mod | Onay yokken | Not |
|---|---|---|
| Temel (basic) | Google etiketleri yüklenmez, veri gönderilmez | Davranış öngörülebilir, doğrulaması kolay |
| Gelişmiş (advanced) | Etiketler yüklenir, çerez yazmadan çerezsiz ping gönderir | Google modelleme yapar; hukuki değerlendirme gerektirir |
Gelişmiş modda analytics_storage reddedilmişken GA4 _ga çerezini yazmaz, ama sayfa görüntüleme bilgisini çerezsiz ping olarak Google’a iletir. Bunun onaysız veri aktarımı sayılıp sayılmayacağı tartışmalıdır ve teknik ekibin tek başına vereceği bir karar değildir. Kurum içinde karar çıkana kadar temel modla başlamak daha savunulabilir varsayılandır. Parametrelerin resmi tanımı için Google Tag Platform onay modu dokümantasyonuna bakın.
Onay kaydı ve tercih değiştirme
Onayın verildiğini sonradan gösterebilmek için tercih yalnız tarayıcıda değil, sunucu tarafında da kayda geçmeli. Kurumsal CMP’ler bunu kendi bulutlarında yapar. Kendi çözümünüzü kuruyorsanız KVKK odaklı veri yönetimi gereği kayıtta şu alanlar olmalı:
- Rastgele üretilmiş onay kimliği (tarayıcıdaki tercih çerezinde de tutulur, kişiyi doğrudan tanımlamaz)
- Zaman damgası (UTC)
- Kabul ve red edilen kategoriler
- Banner ve politika metninin sürüm numarası
- Onayın verildiği sayfa adresi
Tam IP adresini saklamak çoğu durumda gerekmez ve kaydın kendisini kişisel veri yüküne çevirir. Sürüm numarasını atlamayın. Kategori veya etiket listesi değiştiğinde sürüm artırılır ve eski sürüme onay vermiş ziyaretçiye banner yeniden gösterilir. Sürüm alanı olmayan kayıt, yeni eklenen bir pikselin hangi onaya dayandığını açıklayamaz.
Tercihi değiştirmek, onay vermek kadar kolay olmalı. Pratikte bu, her sayfanın alt bilgisinde CMP’nin tercih panelini açan bir “Çerez tercihleri” bağlantısı demektir. Onay geri çekildiğinde iki iş yapılır: gtag('consent', 'update', ...) ile ilgili türler denied yapılır ve daha önce yazılmış birinci taraf çerezler (_ga, _ga_<ID>, _fbp gibi) silinir. Üçüncü taraf alan adlarına yazılmış çerezleri siteniz silemez; bu sınır politika metninde açıkça yazmalı.
Onay kaydını, iletişim formlarında toplanan verinin saklama kurgusuyla aynı disiplinle yönetin; form tarafını KVKK uyumlu iletişim formu rehberinde anlattık.
Tarayıcıda doğrulama: kontrol sırası
Kurulumun doğruluğunu CMP panelindeki yeşil işaretler değil, tarayıcıda gözlenen davranış kanıtlar. Testleri gizli pencerede, eklentiler kapalıyken yapın. Reklam engelleyici açıkken “istek gitmiyor” sonucu yanıltıcıdır; engelleyici sizin yerinize bloklamıştır.
- İlk yükleme, etkileşim yok: Geliştirici araçları > Application > Cookies altında yalnız zorunlu çerezler görünmeli.
_ga,_gcl_au,_fbpolmamalı. - Network sekmesi:
collect,facebook,linkedin,hotjarfiltreleriyle istekleri arayın. Temel modda Google’a hiç istek gitmemeli; gelişmiş modda giden isteklerdegcs=G100parametresi görülmeli (reklam ve analitik depolama reddedildi). - Yalnız analitiği kabul edin:
_gaoluşmalı, GA4 isteklerindegcs=G101görülmeli; reklam pikselleri hâlâ çalışmamalı. - Tümünü kabul edin:
gcs=G111ve pazarlama etiketlerinin istekleri görülmeli. - Tercihi geri çekin: Birinci taraf analitik ve pazarlama çerezleri silinmeli, sonraki sayfa görüntülemede istekler durmalı.
- GTM Önizleme (Tag Assistant): Her olayda “Consent” sekmesinde varsayılan ve güncel durum doğru görünmeli; onay gerektiren etiketler “Not Fired” listesinde olmalı.
- Farklı şablonlar: Aynı testleri blog yazısı, iletişim sayfası ve gömülü video içeren sayfada tekrarlayın. YouTube gömmeleri için
youtube-nocookie.comalan adını veya onaya kadar küçük resim gösteren bir yer tutucu kullanın.
Bu test bir kez yapılıp rafa kalkmaz. Pazarlama ekibi GTM’e yeni etiket eklediğinde onay ayarı eksik kalabilir; kurulumdan aylar sonra açılan sızıntıların çoğu böyle doğar. Her GTM yayınından önce Consent Overview kontrolünü, çeyrek dönemde bir de envanter taramasını bakım takvimine yazın. Üçüncü taraf betiklerin performans etkisi için JavaScript bütçesi yazısına bakın; onaydan sonra yüklenen etiketler de INP ve yükleme süresini etkiler.
Çerez envanteri, CMP ile GTM entegrasyonu ve doğrulama testlerinin raporlanması için web analitik ve dönüşüm ölçümü hizmetimizden destek alabilirsiniz.
Sık sorulan sorular
Çerez bannerı kurulu olduğu halde Google Analytics neden onaysız çalışıyor?
Çünkü GA4 büyük ihtimalle banner aracının görmediği ikinci bir yerden de yükleniyor: tema başlık kodu, SEO eklentisinin analitik modülü veya e-ticaret eklentisi. Etiketleri tek noktadan, tercihen Tag Manager üzerinden yönetin; diğer ekleme noktalarını kapatın.
Consent Mode kurmak çerez onayı almak yerine geçer mi?
Hayır. Consent Mode onay toplamaz; CMP’nin topladığı tercihi Google etiketlerine taşır. Tercihi almak, kaydetmek ve geri çekmeyi sağlamak yine onay yönetim aracının işidir.
Zorunlu çerezler için de onay almak gerekir mi?
Zorunlu çerezler, sitenin ziyaretçinin istediği hizmeti sunabilmesi için gereken çerezlerdir ve genellikle onaydan önce çalışır. Yine de çerez politikasında listelenip açıklanmaları gerekir. Bir çerezi bu kategoriye koymadan önce tanıma gerçekten uyduğunu belgeleyin.
Onay geri çekildiğinde mevcut çerezler otomatik silinir mi?
Silinmez. İlgili birinci taraf çerezleri CMP’nin veya sizin kodunuzun silmesi gerekir. Üçüncü taraf alan adlarına yazılmış çerezleri siteniz silemez; bu sınır politika metninde açıkça yazmalıdır.
- Teknoloji
- Google Tag Manager, Google Consent Mode v2, GA4, CMP, KVKK
- Konu
- Analitik ve pazarlama etiketlerinin onaya bağlı yüklenmesi ve doğrulanması
- Seviye
- Orta
- Ön koşullar
- Google Tag Manager kapsayıcısına yönetici erişimi
- Tarayıcı geliştirici araçlarını kullanabilme
- Sitedeki etiketlerin listesine erişim
Kurumsal Web ve E-Ticaret