Ç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.
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.
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çerengcs
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.
İ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.
Ş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.
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.
Ç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.
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.
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.
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.
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.
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.
<!-- 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.
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.
İ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.
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.
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.
- Universal Analytics ile Google Analytics 4 verileri karşılaştırması. Analytics Yardım ↩
- Scott Herman. (2002). Measure conversions while respecting user consent choices ↩
- Google Analytics'teki gizlilik denetimleri. Analytics Yardım ↩
- İzin modu (beta). Analytics Yardım ↩ ↩ ↩
- Chris Shuptrine. (2019). The 2020 Guide to Google Analytics and GDPR Compliance ↩
- GDPR Cookie Consent Cheatsheet. iubenda ↩
- Google Analytics Cookie Usage on Websites. Google Analytics ↩
- Custom Templates Guide For Google Tag Manager. Simo Ahava's blog ↩
- onsent Mode For Google Tags. Simo Ahava's blog ↩
- General Data Protection Regulation. Facebook for Developers ↩ ↩
- Hotjar Cookie Information. Hotjar Documentation ↩
- Helge Klein. (2020). Google Analytics: Cookieless Tracking Without GDPR Consent ↩
- Google Analytics.js Cookie Opt-in Consent Checker. GitHub ↩
- GDPR, ePrivacy and CCPA compliant cookies. Cookiebot ↩
- Setting Up Cookiebot ↩ ↩
- Google Tag Manager deployment. Cookiebot ↩
- Cookie Consent Management Platform. CookieFirst ↩
- Google Tag Manager cookie banner configuration. CookieFirst ↩
- Conversion tracking and Google Tag Manager. CookieFirst ↩
- Iframe (i.e. Video players), only load when consent is given. CookieFirst ↩
- Google Tag Manager implementation. CookieHub ↩
- Methods / Functions. CookieHub ↩
- Events. CookieHub ↩
- Plan Comparison. CookiePro ↩
- Cookie Compliance Integration with Google Tag Manager. CookiePro ↩
- Cookie Script membership plans. Cookie-Script ↩
- Integration. Cookie-Script ↩
- Web Sitesi İzin Yönetim Platformu. efilli ↩
- Pricing. iubenda ↩
- GDPR Compliance Software for Websites & Online Businesses. Termly ↩
- The Privacy Suite for WordPress ↩
- The most popular solution to cookie laws. Osano ↩
- Download Cookie Consent. Osano ↩