Çerez İzin / Rıza (Cookie Consent) Yönetim Araçları

GDPR başta olmak üzere çerez (cookie) kullanımı ile ilgili olarak çeşitli yazılar yayınlamaya çalıştım.

AA

Ekosistem için önemli yükümlülükler getiren yönetmeliklerle ilgili benim de son dönemde kem kişisel hem de kurumsal olarak süreçleri gözlemleme ve notlar tutma imkanım oldu. Bu amaçla da pek çok araç inceledim ve geliştiriciler ile görüşmeye çalıştım. Yazının geri kalanında, süreç içerisinde edindiğim notlarımın özetini aktarmaya çalışacağım.

Çerez İzni - Banner Örneği

Cookie Consent

Google Analytics, consent mode (izin/rıza modu) özelliği ile Google servisleri (şimdilik Google Ads, Floodlight, Google Analytics1 tarafından desteklenmekte) ile ilişkili etiketlerin web sitesini veya uygulamasını kullanan kullanıcıların izin durumuna bağlı olarak nasıl davranacağını belirlemek mümkün. Bu sayede belirli amaçlar doğrultusunda (reklam, yeniden pazarlama, analiz, performans, oturum, vb.) kullanıcılar çerez kullanımına izin verebilirler2.

Çerez izni (cookie consent) ile ilgili kısa bir hatırlatma yapmak gerekirse; kullandığınız web sayfasının, uygulamanın veya bu web sayfası ve/veya uygulamalar üzerinden ya da doğrudan reklam ve izleme araçlarının bilgisayarınıza yükledikleri çerezler (cookies) ile ilgili sizden açık bir onay / rıza alma sürecini ifade eder. Bu websitesleri, servisler ve diğer ilgili araçlar çerezleri pazarlama, performans, zorunluluk, oturum gibi belirli kategoriler içerisinde size sunarlar ve kullanıcı bu çerezlerin / kategorilerin hepsine ya da bir kısmına onay veya red verebilirler ve istedikleri zaman bu izinleri güncelleyebilirler.

Reklam platformları temelinde notlarımı Çerezler, Kullanıcı ve Etkinliklerin İzlenmesi başlıklı özel yazıda paylaşmıştım. Bu yazıya ek olarak, izleme (tracking) sürecinde neler yapılabileceğine ve bu amaçla hangi araçlardan faydalanılabileceğine değinmeye çalışacağım.

Bu yazı izin modunun (consent mode) nasıl çalıştığı ile ilgili genel bir fikir vermek amacıyla hazırlanmıştır ve bir tavsiye niteliği taşımaz. Uygulama sürecinde, kuruluşunuz ve ilgili web sitesi ve/veya uygulamaları bağlı kullanıcı izinlerini bağlı bulunduğunuz yönetmelikler ve hukuki yükümlülüklere göre ele almalısınız. Google ve diğer kuruluşlar tarafından yayınlanan resmi yazılar yazının kaynakça bölümünde açık bir şekilde listelenmiştir.

Google Analytics (UA ve GA4)

İzin modu (beta) ile Google etiketlerinin, kullanıcıların izin durumuna göre nasıl davranacağını ayarlamak mümkün3. Analytics ve Ads çerezleri için izin verilip verilmediğini belirterek Google etiketlerinin yalnızca kullanıcı izinlerine (reklam, analiz, oturum gibi belirli amaçlar için izin verilen çerezler ile ilişkili olarak) göre dinamik bir şekilde hareket etmesi sağlanabilmekte4.

Çerezler, Kullanıcı ve Etkinliklerin İzlenmesi başlıklı yazıda da örneklendirdiğim consent mode kod düzenlemesi en temelde şu şekilde ifade edilmekte.

window.dataLayer = window.dataLayer || [];
function gtag() { window.dataLayer.push(arguments); }

gtag('consent', '<consent_command>', {
  <consent_type_settings>
});

<consent_command> değer olarak default veya update alabilir. update ilgili iznin güncellendiğini Google Analytics'e bildirir ve buna göre verilerin ele alınması gerektiğini belirtir.

<consent_type_settings> ise değeri olarak denied ve granted tanımlarını alabilir; denied ilgili iznin verilmediğini, granted ise iznin verildiğini gösterir. Bu bilgileri kod aracılığı ile şu şekilde ifade edebiliriz.

ad_storage için denied değeri verildiğinde4;

  • Yeni reklam çerezleri oluşturulmaz.
  • Sistemde mevcut olarak reklam çerezleri okunmaz.
  • Üçüncü taraf çerezler sadece spam ve dolandırıcılık tespiti amacıyla kullanılır.
  • Google Analytics, reklam çerezlerini okumaz, oluşturmaz ve Google Sinyalleri için kullanmaz.
  • IP adresleri yalnızca coğrafi konum (geo-location) belirleme için kullanılır. Daha önce maskeleme özelliğinden bahsetmiştim. Dilerseniz Google Analytics'in ayrıca bu IP adreslerini maskelemesini de sağlayabilirsiniz5.

Ek olarak, ad_storage için denied değeri atandıktan sonra reklam verilerinizi daha fazla kontrol altına alınmasını isterseniz isteğe bağlı olarak ads_data_redaction parametresine true değerini atayabilirsiniz.

gtag('set', 'ads_data_redaction', true);

Bu sayede, Google Ads ve Floodlight tarafından gönderilen ağ istekleri içerisinde yer alan reklam tıklama tanımlayıcıları da 'ad_storage': 'denied' ile çıkarılır ve ağ istekleri çerezsiz bir şekilde gerçekleştirilir. Eğer değer olarak granted verilirse ads_data_redaction herhangi bir etki göstermez4.

analytics_storage için denied tanımı yapıldığında ise;

  • Google Analytics, birinci taraf çerezlerini okuyamaz veya yazamaz.
  • Sayfa temelinde gönderilecek hit içerikleri sayfalar bağlamında ele alınır. Yani, Google Analytics _ga içeriğini okuyamayacağı veya yazamayacağı için kullanıcı bir sayfa görüntülendiğinde o sayfa bir kullanıcı kimliği ile veriler gönderilir. Kullanıcı başka bir sayfaya geçtiğinde sayfaya ait bilgiler izin durumunu içeren gcs parametresi ve yeni bir kullanıcı kimliği ile gönderilecektir.

analytics_storage için denied değerinin verilmesi hit sayımını engellemez, sadece çerez kullanımına bağlı olarak içeriğini kısıtlar.

Google Analytics Çerez İzinlerinin Yönetimi

İzinlerin Yönetilmesi

window.dataLayer = window.dataLayer || [];
function gtag() { window.dataLayer.push(arguments); }

gtag('consent', 'default', {
  'ad_storage': 'denied',
  'analytics_storage': 'denied'
});

İlgili kod, ön tanımlı olarak ad_storage ve analytics_storage için izin verilmediğini göstermektedir. İlgili kod parçacığı tüm şartlarda geçerlidir. Bu şartları kısıtlayabiliriz. Örneğin, ülke temelinde izinlerin yapılandırılmasını sağlamak mümkün.

window.dataLayer = window.dataLayer || [];
function gtag() { window.dataLayer.push(arguments); }

gtag('consent', 'default', {
  'ad_storage': 'denied',
  'region': ['ES', 'US-AK']
});
gtag('consent', 'default', {
  'analytics_storage': 'denied',
  'region': ['GB']
});

region parametresini sadece default ile ilişkili olarak kullanabiliriz6.

Yukarıdaki tüm bilgileri örnek bir kullanım içerisinde inceleyelim.

<script>
  window.dataLayer = window.dataLayer || [];
  function gtag(){dataLayer.push(arguments);}

  // Öntanımlı conset ayarları
  gtag('consent', 'default', {
    'ad_storage': 'denied'
  });

  // Opsiyonel. Query parametresinin sayfadan sayfaya aktarılmasını sağlar.
  // gclid, dclid, gclsrc, _gl, vb.
  gtag('set', 'url_passthrough', true);
</script>

<script async src="https://www.googletagmanager.com/gtag/js?id=GA_MEASUREMENT_ID"></script>
<script>
  window.dataLayer = window.dataLayer || [];
  function gtag(){dataLayer.push(arguments);}
  gtag('js', new Date());

  gtag('config', 'GA_MEASUREMENT_ID');
  gtag('config', 'AW-CONVERSION_ID');
</script>

<script>
  // Bu aşamadan sonra consent tanımı kullanıcı tarafından değiştirilmişse değişikliği tekrar iletiriz.
  // Örneğin `ad_storage` kullanımı için kullancının izin verdiğini düşünelim. Bu durumda `granted` değerini verebiliriz.
  // İzinde bir değişiklik yok ise `update` komutunu tekrar iletmemize gerek kalmaz.
  // Ancak, işlemlerden emin olmak adına `update` ile tekrar iletmenizde bir sorun olmayacaktır.
  gtag('consent', 'update', {
    'ad_storage': 'granted'
  });
</script>

Aynı örneği hem async hem de izinler bağlamında yapılandırılabilir şekilde oluşturalım.

<script>
window.dataLayer = window.dataLayer || [];
  function gtag(){dataLayer.push(arguments)};

  // Öntanımlı ayarları yükleyelim.
  // Örneke `ad_storage` için red, `analytics_storage` için onay verilmiş durumda.
  gtag('consent', 'default', {
    'ad_storage': 'denied',
    'analytics_storage': 'granted',
    'wait_for_update': 500 // Async bölüm `wait_for_update`
  });

  // İzin aracı (consent tool) tarafından iletilen izinleri alalım.
  ConsentTool.on('consent-tool-initialized', function(consentObject) {
    gtag('consent', 'update', {
      'ad_storage': consentObject.ADVERTISING == 'ACCEPT' ? 'granted' : 'denied',
      'analytics_storage': consentObject.ANALYTICS == 'ACCEPT' ? 'granted' : 'denied',
    });
  });

  // İzin aracı (consent tool) üzerinden kullanıcı tarafından verilen izin tanımlarını alalım.
  ConsentTool.on('consent-saved', function(consentObject) {
    gtag('consent', 'update', {
      'ad_storage': consentObject.ADVERTISING == 'ACCEPT' ? 'granted' : 'denied',
      'analytics_storage': consentObject.ANALYTICS == 'ACCEPT' ? 'granted' : 'denied'
    });
  });
</script>

<script async src="https://www.googletagmanager.com/gtag/js?id=GA_MEASUREMENT_ID"></script>

<script>
  window.dataLayer = window.dataLayer || [];
  function gtag(){dataLayer.push(arguments);}
  gtag('js', new Date());

  gtag('config', 'GA_MEASUREMENT_ID');
  gtag('config', 'AW-CONVERSION_ID');
</script>

Consent mode Google etiketlerinin nasıl davranması gerektiğini belitir ancak izinlerin yönetimini sağlayan bir consent tool değildir7. Yukarıdaki örnekte ConsentTool olarak yer aldığı üzere, izinlerin yönetimi için doğrudan ya da dolaylı olarak bir izin (consent) aracının kullanılması gerekecektir. Yazının alt bölümünde, Consent Tools başlığı altında inceleme fırsatı bulduğum araçlardan birkaçını görebilirsiniz.

Google Tag Manager (GTM)

Google Tag Manager için şimdilik ilgili işlemler şablonlar ve Custom HTML etiketi ile ele alınabilmekte. Yukarıda bahsi geçen kod tanımlamasını Google Analytics etiketinden önce çalışacak şekilde ayarlayarak Google sunucularına hangi bilgilerin ne şekilde iletilmesi gerekdiğini belirtmek mümkün.

Google Tag Manager üzerinden Google Ads Conversion Tracking ve Google Ads Remarketing etiketleri için Enable Restricted Data Processing ile kısıtlama getirebilirsiniz.

Google Tag Manager ve Cookie Araçları

Şablonlar (Templates)

Google Tag Manager consent mode işlemlerini şablonlar aracılığı ile gerçekleştirmek mümkün8. Bu işlem için Google Tag Manager > Tags > New > Tag Configuration > Template Gallery veya sidebar bölümünde yer alan Templates başlığını tıklamak yeterli. Ardından, çeşitli izin araçları (consent tools) için oluşturulmuş şablonlarden uygun olanını yapılandırabilirsiniz. Ek olarak, yine şablonlardan biri olan Consent Mode (Google tags) ile Simo Ahava'nın yaynladığı consent etiketini kullanmak mümkün9.

Facebook Analytics

Facebook da Google Analytics gibi kullanıcı tanımlarına göre çerez yönetimini mümkün kılmakta. Bu işlem için revove ve grant parametreleri kullanılmakta10.

fbq('consent', 'revoke');
fbq('init', '<your pixel ID>');
fbq('track', 'PageView');

Elbette yine bu işlemin pixel kullanılan tüm sayfalarda gerçekleştirilmesi gerekmekte.

Maalesef Facebook tarafındaki dokümantasyon oldukça sınırlı ve kırık bazı bağlantılara sahip10.

HubSpot

HubSpot veya benzeri CRM sistemler doğrudan ya da dolaylı olarak kullanıcı / müşteri ile ilgili işlemler gerçekleştirebilmek için bazı davranış verilerine ihtiyaç duyarlar. Örneğin, eğer HubSpot Pages ürünlerinden birini kullanıyorsanız veya harici bir sayfaya izleme kodunu yüklediyseniz, HubSpot, izleme kodunun çalıştığı sayfalar aracılığı ile sayfayı görüntüleyen kullanıcı ile ilgili davranış verilerinin yer aldığı bir dizi izleme çerez oluşturur.

Hubspot cookie yönetimi

Bazı CRM sistemleri kendi izleme yöntemlerine bağlı olarak kullanıcı izinlerini yönetmeyi sağlayan ayarlar sunabilirler. Ancak, bu izleme ve izin işlemleri çoğu zaman görüntülenen sayfalar CRM bünyesinde barındırılıyorsa işe yarayacaktır.

Gerekli Çerezler

__hs_opt_out çerezi ziyaretçilere çerezleri devre dışı bırakma seçeneği verildiğinde ayarlanır ve kullanıcıların çerez kullanımına izin vermeme kararını hatırlamak amacıyla kullanılır. 13 ay boyunca saklanan bu çerez sadece yes veya no değerini barındırır.

__hs_do_not_track çerezi izleme kodunun HubSpot'a anonim veriler dışında herhangi bir tanımlayıcı veri göndermemesini sağlamak amacıyla ayarlanır. 13 ay boyunca saklanan bu çerez sadece yes değerini barındırır.

__hs_initial_opt_in çerezi banner'in sürekli görüntülenmemesini sağlamak amacıyla kullanılır. 7 gün boyunca saklanan bu çerez sadece yes veya no değerini barındırır.

__hs_cookie_cat_pref çerezi ziyaretçinin izin verdiği çerez kategorilerini hatırlamak amacıyla kullanılır. 13 ay boyunca saklanan bu çerez kategori bilgilerini barındırır.

hs_ab_test çerezi eğer a/b testi yapılıyorsa kullanıcıya aynı sayfanın gösterilmemesini sağlamak amacıyla kullanılır. a/b test sayfası ve ziyaretçi için seçilen varyasyonun kimliğini içerir. Oturum sonlanana kadar saklanır.

<id>_key çerezi eğer kullanıcı şifre korumalı bir sayfa görüntülemişse kullancıdan tekrar şifre sorulmasını engellemek amacıyla ayarlanır. Çerez adı her korumalı sayfa için benzersiz bir ad alır ve içeriğinde şifrelenmiş bir şekilde kullanıcının kullandığı şifre saklanır. Çerezin geçerlilik süresi 14 gündür.

Yukarıdaki başlıca çerezler ve hs-messages-is-open, hs-messages-hide-welcome-message, __hsmem gibi diğer çerezler gerekli çerez tanımlarıdır ve sistemin başarılı bir şekilde işlevini gerçekleştirilmesi için gereklidir. Bu çerezlerin yanı sıra HubSpot __hstc, hubspotutk, __hssc ve __hssrc gibi analitik ve messagesUtk gibi fonksiyon amaçlı çerezlerden de faydalanmaktadır.

Görüldüğü üzere, izinlerin yönetimi için de çerez veya benzeri veri saklama yöntemlerinden birini kullanmamız gerekebilmektedir. Ancak, oluşturulan bu çerezler kullanıcı verilerini içermez ve 3. taraf servisler tarafından kullanılmazlar.

HubSpot için çerez işlemlerini Settings > Cookies adımlarını izleyerek kontrol edebilirsiniz. Ayrıca, yine bu sayfada yer alan çerez kaldırma kodunu da web sayfa(ları)nıza ekleyebilirsiniz.

<!-- Start of HubSpot code snippet -->
<button type="button" id="hs_remove_cookie_button"
  style="background-color: #425b76; border: 1px solid #425b76;
         border-radius: 3px; padding: 10px 16px; text-decoration: none; color: #fff;
         font-family: inherit; font-size: inherit; font-weight: normal; line-height: inherit;
         text-align: left; text-shadow: none;"
  onClick="(function(){
    var _hsp = window._hsp = window._hsp || [];
    _hsp.push(['revokeCookieConsent']);
  })()">
  Remove cookies
</button>
<!-- End of HubSpot code snippet -->

Çerez araçları da yine bu işlemleri kendi platformları (çerez ile ilişkili ya da etiket özelliği sayesinde) aracılığı ile yönetme imkanı verebilmekteler.

Hotjar

Hotjar kullanıcı etkileşiminin analiz edilmesi amacıyla _hjShownFeedbackMessage, _hjDonePolls, _hjid, _hjRecordingLastActivity, _hjptid, _hjOptOut, segment_id gibi Hotjar ürünleri, oturumlar ve entegrasyonlarla ilişkili pek çok çerez kullanır11. Çerez kullanımının yanı sıra, kullanıcı etkileşiminin kayıt edilmesi sürecinde de form girdilerinin kayda yansıması mümkün olabilmektedir. Bu konu ile ilgili CF7 Form Elemanını Hotjar Whitelisting Olarak Tanımlamak başlıklı yazıma göz atabilirsiniz.

Hotjar izin yönetimi için güncel durumda aktif bir parametre tanımı sunmamakta. Ancak, etkinlik temelinde kayıt işleminin tetiklenmesini tavsiye etmekte.

Consent Tools (İzin / Rıza Araçları)

Yukarıda sıklıkla kullanılan örnek birkaç servis bağlamında çerez izin sürecinin nasıl ele alındığını özetlemeye çalıştım. Son kullanıcılar modern internet tarayıcıları ve/veya eklentiler aracılığı ile tüm bu izin yönetimlerinin ötesinde, merkezi bir tavır (izin verme veya engelleme) belirleyebilmekteler. Ancak, yayıncılar için şu an net bir yaklaşımdan bahsetmek güç.

Örneğin, kullandığınız izleme ve reklam araçlarına ait kurulum kodlarına doğrudan müdahale ederek -elbette mümkünse ilgili araç tarafından özel olarak sunulan fonksiyonlar ve/veya parametreleri kullanmanızı önerilir- işlemler gerçekleştirebilirsiniz12. Bu durumda, tarayıcı aracılığı ile site / sayfa temelinde çerezleri listelemeli, oluşturacağınız bildirim sayfası aracılığı ile çerezlerin hangi amaçla ve ne kadar süre boyunca kullanılacağını belirtmeli ve kullanıcılara banner aracılığı ile çerez izinlerini yönetme / istedikleri zaman güncelleme imkanı sunmalısınız13.

Diğer yandan, bu teknik çözümlerin sağlanmasını kolaylaştırmak amacıyla ortaya çıkan yeni çözümler de mevcut. Örneğin, bu site ile ilişkili çerezlerin yönetimi Cookiebot aracılığı ile gerçekleştirilmekte. Araçlar, taranan sayfa, alan adı sayısı, görüntülenen sayfa ve benzeri kriterlere göre fiyatlandırmalar yapmakta. Fiyatlandırmanın yanı sıra, banner ve kod özelleştirme, otomatik bildirim oluşurma, kodun uygulanız biçimi, etiket yönetimi imkanı, dil desteği gibi özellikler de yine araştan araca farklılık göstermekte.

Aşağıda bahsi geçen araçlar alfabetik olarak sıralanmıştır.

CookieBot

Cookiebot, 1 alan adı altında 100 sayfa taramaya kadar ücretsiz kullanılabilmekte, bir üst paket olan Premium Small ise 500 sayfa sınırına sahip. Diğer yandan, kullanım içerisinde banner özelleştirme, beyan düzenleme, çoklu dil desteği, e-posta raporlama, veri aktarma, coğrafi konum belirleme, toplu işlemler, istatistikler, geliştirme ortamı için alan tanımlama gibi özellikler ücretli-ücretsiz paketler dahilinde kullanılabilmekte. Bunun yanı sıra, Cookiebot maalesef alan adlarını (non-www ve www hariç) da ayrı bir alan adı tanımı olarak ele almakta14.

<script id="Cookiebot" src="https://consent.cookiebot.com/uc.js" data-cbid="<cookiebot-id>" data-blockingmode="auto" type="text/javascript"></script>

Artık izinlere bağlı olarak kodlarımızı organize edebiliriz15.

<script type="text/javascript">
window.addEventListener('CookiebotOnAccept', function (e) {
  if (Cookiebot.consent.marketing) {
    // Marketing işlemleriyle ilgili kod bu alana gelebilir.
  } 
}, false);
</script>

Üyelik işlemi ile birlikte alan adı tanımı yapılabilmekte ve ardından ilk tarama gerçekleştirilmekte. Taranan sayfalar temelinde çerezler listelenmekte. Sayfalarla ilişkili olarak görüntülenen her çerez için bir kategori tanımı yapılabiliyor15 16. Ayrıca, yine çerez ile ilişkili olarak bildirim içerisinde yer alacak açıklamalar da eklenebilmekte. Çerezleri sayfa veya çerez adına göre arama imkanı olmaması bir eksiklik. Sıralanan çerezler dışında da eklemeler yapılabilmekte.

Cookiebot Çerez Tanımlama İşlemleri

Çerezlerle ilgili işlemlerin keydedilmesinin ardından belirtilen dil(ler)de bildirimler istenen sayfa üzerinden JavaScript aracılığı ile dinamik bir şekilde sunulabilmekte ve kullanıcıların bu sayfa aracılığı ile çerez izinlerini yönetebilmesi sağlanabilmekte.

<script id="CookieDeclaration" src="https://consent.cookiebot.com/<cookiebot-id>/cd.js" type="text/javascript" async></script>

Özetle, Cookiebot tarama ve etiket yönetimini başarılı bulduğum seçeneklerden biri.

CookieFirst

Cookiebot'a göre daha modern bir UI ile işlemler gerçekleştirebilmektetisiniz. Ancak, ücretsiz hesap ile sunulan özellikler karşılaştırıldığında CookieFirst'in çok da makul bir seçenek olmadığını söylenebilir17. Ancak, Basic plan karşılaşırması yapıldığında CookieBot tarafından sunulan özelliklere ek olarak, alt alan adı ekleme, sayfa sınırı olmaksızın tarama ile CookieFirst daha avantajlı hale gelmekte.

Cookiefirst Etiket Yönetimi

Diğer yandan, CookieFirst platform üzerinden kod / etiket yönetimini mümkün kılıyor. Olumsuz tarafı şu ki, platform üzerinden eklenen etiketler bir div etiketi içerisinde body etiketi içerisine yerleştirilmekte. Bu durum pek çok izleme / reklam aracı tarafından geçerli kabul edilmediği için hatalar almanıza neden olabilmekte.

Ancak, elbette bu bir zorunluluk değil. CookieFirst'e ait JavaScript dosyası web sitesi / uygulamaya eklendiğinde artık cf_functional_enabled, cf_necessary_enabled, cf_advertising_enabled, cf_performance_enabled veri katmanı değişkenleri ve etkinlikleri de kullanılabilir hale gelmekte18. Dolayısıyla, etiket organizasyonunu Google Tag Manager ve/veya EventListener ile de ele almak mümkün19.

<iframe
  width="640"
  height="360"
  frameborder="0"
  allowfullscreen="allowfullscreen"
  data-src="https://www.youtube.com/embed/..."
  data-cookiefirst-category="advertising"></iframe>
<div class="cookiefirst-disabled-resource">
 Please <button onclick="CookieFirst.acceptCategory('advertising')">Accept marketing cookies</button> to watch this video.
</div>

CookieFirst başarılı bir tarama yeteneğine sahip. Sadece çerezlerle sayfalar ilişkili olarak listelenmediği için bir çerez için tanım / sınıflandırma belirtmek durumunda olduğunuzda, çerezin oluşma nedenini ve ilgili servisi kendiniz araştırmak durumunda kalıyorsunuz. Diğer yandan, CookieFirst iframe kullanımları için de sınırlandırma yapılabilmesini mümkün kılıyor20.

Cookiefirst Çerez Kategorileri

Platform dinamik bildirim oluşturma, dil desteği, çerezler için geniş kategori seçeneği gibi güzel özellikler sunmakta. Çerez işlemleri için üyelik sonrasında tanımlanan alan adları ile ilgili taramanın başlatılmasının gerekiyor. Tarama sürecinin tamamlanmasının ardından Cookies sekmesi aktif hale geliyor. Doğrudan el yordamı ile tanımlama yapmak tarama öncesine mümkün değil.

CookieHub

CookieHub, Cookiebot gibi ücretli ve ücretsiz paketler dahilinde taranacak sayfa limitine sahip. Bunun yanı sıra aylık sayfa görüntüleme için de bir sınırlandırma var. Fiyatlandırma Cookiebot ve Cookiefirst'e göre daha makul görünse eğer az sayfanız ve yüksek trafiğiniz varsa sorun olabilmekte. Aylık sayfa görüntüleme sınırı aşıldığında, abonelik planı otomatik olarak bir sonraki ay için gerekli sayfa görüntüleme limitine bağlı pakete yükseltilmekte.

CookieHub

Bunun dışında, çerez doğrulama, Facebook ve Google consent mode desteği, GTM entegrasyonu, alan adı ekleme, çoklu dil gibi özellikler de ücretli paketler dahilinde kullanılabilmekte21 22 23.

<script type="text/javascript">
var cpm = {
  onAllow: function(category) {
    if (category == 'marketing') fbq('consent', 'grant');
  },
  onRevoke: function(category){
    if (category == 'marketing') fbq('consent', 'revoke');
  }
}

(function(h,u,b){
var d=h.getElementsByTagName("script")[0],e=h.createElement("script");
e.async=true;e.src='https://cookiehub.net/c2/xxxxxxxx.js';
e.onload=function(){u.cookiehub.load(b);}
d.parentNode.insertBefore(e,d);
})(document,window,cpm);
</script>

CookieHub tarama özelliğinin çok başarılı olduğunu düşünmüyorum. Genelde taramaları birkaç sayfa ile sınırlandırmakta ve bu nedenle limitli sayıda çerezi listelemekte. Diğer yandan, UI ve özellik yönetiminin, banner / popup özelleştirmelerinin oldukça pratik olduğunu eklemeliyim. Çerez kullanımları ile ilgili bildirimler de yine bu banner / popup'lar aracılığı ile kullanıcılara iletilmekte.

CookiePro

CookiePro bir OneTrust ürünü. Ücretsiz kullanım için sayfa görüntüleme ve tarama limiti olsa da ücretli paketlerde alan adı ekleme de dahil herhangi bir sınırlandırma söz konusu değil24.

CookiePro diğer servislerden farklı olarak pek çok framework için uyum belirleme ve buna yönelik geri bildirimler almayı mümkün kılmakta. Ek olarak, platform içerisinde de ilgili pek çok çözüm ek ücret karşılığında kullanılabilmekte. Platform ile ilgili temel işlemlerin (coğrafi konum belirleme, vb.) tamamlanmasının adından website ekleme sürecine geçilebilmekte.

CookiePro Çerez Yapılandırma İşlemleri

Tarama sonrasında izleme biçimleri (çerezler, HTML storage), çerez sınırları, etiketler (script, iframe), formlar gibi farklı kriterlere göre raporlama yapılmakta. Ancak, tarama ile dönen çerez sayısının diğer çözümlere kıyasla düşük olduğunu söyleyebilirim. Diğer yandan, çerezlerin sayfa temelinde listelenmesi oldukça başarılı. Bunların yanı sıra, oturumlarla ilişkili çerezler için de oturum tanımlama ve bu şekilde tarama gerçekleştirme imkanı mevcut.

CookiePro Çerez Yapılandırma İşlemleri

Yine diğer çerez çözümlerinden farklı olarak tarama için yapılandırma ve sitemap üzerinden sayfa erişimi sağlama gibi ek özellikler kullanılabilmekte. Tarama başta olmak üzere diğer tüm özellikler belirtilen coğrafi konuma bağlı kurallar çerçevesinde ele alınmakta ve buna yönelik olarak raporlanmakta.

<!-- CookiePro Cookies Consent Notice start for ceaksan.com -->
<script
  src="https://cookie-cdn.cookiepro.com/scripttemplates/otSDKStub.js"
  type="text/javascript" charset="UTF-8"
  data-domain-script="<cookiepro-id>-test" ></script>
<script type="text/javascript">
  function OptanonWrapper() {
    //...
  }
</script>
<!-- CookiePro Cookies Consent Notice end for ceaksan.com -->

Otomatik çerez engelleme, dil denetimi ve entegrasyonlarla ilgili diğer (test ve yayınlama) işlemleri de yine ayrıca yönetmek ve uygulamak mümkün25.

CookieScript

Sınırsız alan adı tanımına imkan verse de her alan adı için 10 sayfa tarama sınırının olması elbette çok makul değil. Diğer yandan, sınırsız sayfa görüntüleme ücretli-ücretsiz tüm paketler için geçerli. Ancak, özellikler karşılaştırıldığında en makul paket seçeneğinin Plus olduğunu söyleyebilirim. 2 alan adı tanımına izin veren bu paket dahilinde 3.000 sayfaya kadar tarama imkanı ile birlikte tüm özelliklere erişilebilmekte. Tüm bunlar göz önüne alındığında fiyatlandırmanın oldukça makul olduğunu söyleyebilirim26.

Eklentiler ve diğer entegrasyonlarla ilgili seçenekler oldukça zengin27. Platformun Türkçe dil desteği bulunmamakta. Ancak, metinler ve bildirim dokümanı yeni dil ekleme özelliği sayesinde özelleştirilebilmekte.

Platform başarılı bir tarama özelliğine sahip ve tarama sonucunda çerezleri türlerine gçre raporlamakta.

<script
  type="text/javascript"
  charset="UTF-8"
  src="//cdn.cookie-script.com/s/<cookie-script-id>.js"></script>

Banner özelleştirme işlemleri sadece ücretli paketler kapsamında gerçekleştirilebilmekte. Bunun yanı sıra, diğer davranış özellikleri (scroll ile onay, vb.) ayrıca GDPR ilişkili olarak yönetilebilmekte.

CookieYes

CookieYes en başarılı yönetim ekranına sahip bir çerez yönetim çözümü. Türkçe dil desteği bulunmamakta ve yeni dil tanımı yapılamamakta. Ancak, var olan metinleri düzenlemek mümkün. Banner davranışları için özelleştirilebilir seçenekler mevcut değil. Çerez bildirimleri popup aracılığı ile kullanıcılara dinamik bir şekilde iletilmekte.

CookieYes Banner Yapılandırma İşlemleri
<!-- Start cookieyes banner -->
<script
  id="cookieyes"
  type="text/javascript"
  src="https://cdn-cookieyes.com/client_data/9480f5c189b375b91ea50bff.js"></script>
<!-- End cookieyes banner --> 

Websitesi işlemleri için banner kodunun websitesine eklenmesi ve doğrulanması gerekiyor.

CookieYes

Tarama sonrasında bulunan çerezlerle ilgili tanımları / sınıflandırmaları düzenlemek ve yeni çerezler tanımlamak mümkün. Tarama özelliği çok detaylı işlemiyor.

Efilli

Efilli yerli bir girişim. Kendileri ile geçtiğimiz günlerde tanışma imkanım oldu ve yeni eklenecek özellikler konusunda bilgilendirildim. Platform diğer alternatiflere kıyasla daha genç olmasına karşın sunulan özellikler global alternatiflerle boy ölçüşebilir bir noktada. Maalesef üyelik ile birlikte bir deneme özelliği mevcut değil. Deneme işlemleri, üyelik ve ücretlendirme bilgileri için talep gönderilmesi gerekmekte28.

Efilli Rıza

İletilen bilgiler üzerinden özellikleri tanımlı alan adı aracılığı ile gözlemliyorsunuz. Dolayısıyla, tarama başarısı ile ilgili bir karşılaştırma yapmak mümkün olmadı.

<script
  src="https://cdn.efilli.com/efl.js"
  data-key="<efilli-key>"></script>

Fiyatlandırma tek alan adı ve dil üzerinden gerçekleştirilmekte. Alan adı altında farklı alan adları tanımlanabilmekte. Paketler ayrıca aylık sayfa görüntüleme sayısı ile sınırlandırılmakta.

Efilli

Dil ve alt alan adı bağlamında banner / popup ve JavaScript özelleştirmeleri yapılabilmekte. Platform çerezlerle ilgili olarak cihaz, çerez sınıfı, ilgili sayfaların yüklenme süresi, coğrafi konum istatistikleri ve tarayıcı bilgileri gibi bilgileri sunmakta.

Diğer Araçlar

Aşağıda ayrıca alternatif olarak denk geldiğim ancak sınırlı bir inceleme imkanı bulduğum araçları da kısaca iletiyorum.

iubenda

iubenda standart olarak gizlilik ve çerez kullanım bildirimleri ve entegrasyon çözümleri sunan, bunun yanı sıra çerez izin yönetimi ve şartlar / koşullar gibi dokümantasyon oluşturmayı da mümkün kılan bir platform olarak düşünülebilir.

iubenda

Ancak, fiyatlandırma tüm bu seçenekler dahilinde sunulduğu için diğer alternatiflere göre oldukça yüksek bir noktada yer alıyor. Ek olarak, paketlerde yine sayfa görüntüleme sınırlandırması olduğu için makul bir seçenek olduğunu söylemek güç29.

Termly

Termly, Basic ve Pro olmak üzere 2 paket aracılığı ile kullanım imkanına sahip. Basic paket tek alan adı için tek politika bildirimini mümkün kılıyor. Pro paketinde ise her alan adı için sınırsız bildirim oluşturmak mümkün. Yine Basic için aylık 100 sayfa görüntüleme sınırı varken Pro için herhangi bir sınırlandırma söz konusu değil. Acnak, her iki paket için de çerez tarafa frekansı değiştirilememekte30.

Termly tarama sonrasında en düşük çerez sayısını veren ve sınırlı dil seçeneğine sahip çözümlerden biri.

Complianz

WordPress özelinde çözümler sunan Complianz en yüksek fiyatlandırmaya sahip çerez yönetim araçlarından biri. Deneme erişimi sunulmadığı için panel ve tarama başarısını karşılaştırma imkanım olmadı31.

Osano

Üyelik ve alan adı tanımı dışındaki tüm işlemler için paket seçeneklerinden birinin değerlendirilmesi gerekmekte. Özellikler arasında çerez yönetimi, script ve iframe kontrolü, sitemap üzerinden tarama gibi seçenekler yer almakta32. Diğer yandan, Osana açık kaynak olarak sunduğu çerez yönetim çözümüne de sahip33.


Yukarıdaki çözümlerin dışında önerebileceğiniz alternatif çözümleri yorum olarak paylaşabilirseniz dahil etmekten memnuniyet duyarım.


  1. Universal Analytics ile Google Analytics 4 verileri karşılaştırması. Analytics Yardım 
  2. Scott Herman. (2002). Measure conversions while respecting user consent choices 
  3. Google Analytics'teki gizlilik denetimleri. Analytics Yardım 
  4. İzin modu (beta). Analytics Yardım 
  5. Chris Shuptrine. (2019). The 2020 Guide to Google Analytics and GDPR Compliance 
  6. GDPR Cookie Consent Cheatsheet. iubenda 
  7. Google Analytics Cookie Usage on Websites. Google Analytics 
  8. Custom Templates Guide For Google Tag Manager. Simo Ahava's blog 
  9. onsent Mode For Google Tags. Simo Ahava's blog 
  10. General Data Protection Regulation. Facebook for Developers 
  11. Hotjar Cookie Information. Hotjar Documentation 
  12. Helge Klein. (2020). Google Analytics: Cookieless Tracking Without GDPR Consent 
  13. Google Analytics.js Cookie Opt-in Consent Checker. GitHub 
  14. GDPR, ePrivacy and CCPA compliant cookies. Cookiebot 
  15. Setting Up Cookiebot 
  16. Google Tag Manager deployment. Cookiebot 
  17. Cookie Consent Management Platform. CookieFirst 
  18. Google Tag Manager cookie banner configuration. CookieFirst 
  19. Conversion tracking and Google Tag Manager. CookieFirst 
  20. Iframe (i.e. Video players), only load when consent is given. CookieFirst 
  21. Google Tag Manager implementation. CookieHub 
  22. Methods / Functions. CookieHub 
  23. Events. CookieHub 
  24. Plan Comparison. CookiePro 
  25. Cookie Compliance Integration with Google Tag Manager. CookiePro 
  26. Cookie Script membership plans. Cookie-Script 
  27. Integration. Cookie-Script 
  28. Web Sitesi İzin Yönetim Platformu. efilli 
  29. Pricing. iubenda 
  30. GDPR Compliance Software for Websites & Online Businesses. Termly 
  31. The Privacy Suite for WordPress 
  32. The most popular solution to cookie laws. Osano 
  33. Download Cookie Consent. Osano