De voorbeelden op de publieke site tonen de site met ruimte binnen het browservenster. Een lange voorbeeldbanner kan binnen zijn eigen vlak scrollen.
Een cookiebanner voor een site die niet in Website Studio staat. Je stelt hem hier in, plakt één regel op je site en je ziet daarna wat je bezoekers kozen. Een site uit Website Studio draagt zijn eigen banner; die heb je dit niet nodig.
Voor cookies die niet strikt nodig zijn, zoals voorkeuren, statistiek en marketing, vraagt de Telecommunicatiewet (artikel 11.7a) eerst toestemming. De teksten van de banner volgen dat. Een banner is hulp bij het regelen; of je site verder aan alle regels voldoet, blijft jouw afweging.
Een banner maken
Onder Cookiebanner (in Website Studio) kies je Banner maken. Geef hem een naam en vul de domeinen van je site in, één per regel (bijvoorbeeld https://www.voorbeeld.nl). Alleen die sites mogen de banner laden en een keuze opsturen. Een andere site die jouw regel overneemt, krijgt niets.
Eén banner is één site. De www-variant en je subdomeinen (zoals shop.voorbeeld.nl) horen bij dezelfde site en dezelfde banner; een ander domein (zoals voorbeeld.be) is een andere site en krijgt een eigen banner. Je pakket dekt één site; meer banners dan sites kun je niet maken. Er zit geen grens op het aantal pagina's of bezoekers.
Eén instelling voor al je sites
Onder Cookiebanner heb je drie tabbladen: Sites, Instelling en Logboek.
Bij Instelling kies je één keer de categorieën, de teksten in het Nederlands en het Engels, de kleuren (uit je merk), de cookieverklaring, de standaardtaal en de bewaartermijn van het bewijs. Dat geldt voor al je sites. Maak je een nieuwe banner, dan begint hij met die instelling. Wijzig je de instelling, dan krijgt elke banner die haar volgde de wijziging; verandert daarbij wat je bezoeker ziet (de categorieën, de teksten of de taal), dan vragen we je bezoekers opnieuw.
Een banner mag afwijken, maar dat is altijd te zien. Op het tabblad Sites staat bij een banner waarin hij afwijkt ("Wijkt af van de instelling: Teksten, Bewaartermijn"), en op het scherm van de banner staat per onderdeel een knop Volg de werkruimte om de afwijking los te laten. Een afwijking blijft staan als je de instelling wijzigt: wat jij voor één site anders hebt gekozen, overschrijven we niet. Had je al banners met verschillende instellingen, dan is er bij de overgang niets veranderd: de oudste banner werd de instelling, en elke andere banner houdt zijn eigen waarde en staat als afwijking in de lijst.
Een site uit Website Studio staat in de lijst met zijn stand (live, concept of gepauzeerd). Zijn banner zit in de site zelf en neemt de instelling van de werkruimte nog niet over. Een banner voor een site elders heeft de stand Live, Uit of, als je proef voorbij is zonder machtiging, Strikt: dan toont het script geen venster, laat het alleen noodzakelijke cookies toe en legt het niets vast. Met een machtiging werkt alles meteen weer.
Instellen
- Categorieën. Noodzakelijke cookies staan altijd aan. Voorkeuren, statistiek en marketing kun je aanbieden of uitzetten; een categorie die uit staat komt niet in de banner.
- Teksten in vijf talen. Nederlands, Engels, Frans (voor België en Frankrijk), Duits (voor Duitsland en Oostenrijk) en Spaans. Je kiest bij Teksten per taal welke taal je bewerkt. Een leeg veld volgt onze standaardtekst, die als voorbeeld in het veld staat; in elke taal zijn Accepteren en Weigeren even zwaar. De standaardteksten in het Frans, Duits en Spaans noemen geen wet van een land: wil je dat, zet het dan in je eigen tekst. De banner volgt de taal van je pagina (
nl,en,fr,deofes); iets anders krijgt de standaardtaal van de banner. - Vormgeving. Zie hieronder.
- Kleuren uit je merk. Laat je de kleuren leeg, dan volgt de banner de huisstijl van je merk. Is een kleur niet leesbaar op zijn vlak, dan kiest de banner zwart of wit.
- Cookieverklaring. Een link naar je eigen cookiepagina, met
https. - Bewaartermijn. Hoe lang het bewijs van een keuze blijft staan: 30 tot 730 dagen, standaard 395.
- Geldigheid van de keuze. Hoe lang de keuze van een bezoeker geldt voordat de banner opnieuw vraagt: 30 tot 365 dagen, standaard
- Dit stel je per banner in (niet voor de hele werkruimte) en staat los van de bewaartermijn van het bewijs. Langer dan een jaar kan niet: ook als een oudere kopie van het script iets anders zou doen, gebruikt het script hoogstens 365 dagen. Een andere looptijd vraagt je bezoekers niet opnieuw; hij geldt voor de keuzes die daarna worden gemaakt, en een bestaande keuze telt zodra hij ouder is dan de nieuwe looptijd niet meer.
Veranderen de categorieën of de teksten, dan vragen we je bezoekers opnieuw. Een andere kleur of vorm doet dat niet.
Een voorbeeld terwijl je instelt
Naast het formulier staat een voorbeeld: de echte banner (hetzelfde script en dezelfde opmaak) op een nagebouwde site, op desktop of mobiel en in elke taal. Het voorbeeld volgt wat je intikt. Het draait in een afgeschermd kader: er gaat niets naar ons en er wordt niets bewaard, ook niet als je op Accepteren klikt. Een logo uit je merk of een nieuw gekozen logo zie je pas nadat je hebt opgeslagen, en de letter van je merk toont het voorbeeld niet.
Vormgeving
Elke keuze komt uit een vaste lijst en geldt voor deze ene banner (niet voor de hele werkruimte).
- Positie. Een balk onderaan over de volle breedte, een kaart onder in het midden (de standaard), een kaart linksonder of rechtsonder (hoogstens 420 pixels breed), of een venster in het midden met een lichte overlay. In elke positie zijn Accepteren en Weigeren even groot en staan ze op dezelfde laag. Een klik naast het venster in het midden kiest niets.
- Logo. Geen, het logo van je merk, of een eigen logo. Het staat links naast de titel, hoogstens 32 pixels hoog, met je bannernaam als alt-tekst. Een eigen logo is een png, jpeg of webp tot 200 kB (geen svg: dat is een document dat script kan dragen); we controleren de bytes en niet de bestandsnaam. Je kiest of uploadt het met de Mediakiezer en vinkt bij een upload Ik mag deze beelden gebruiken aan. Een gekozen logo wordt meteen opgeslagen en gekozen. Haalt de site het beeld niet op, bijvoorbeeld door een eigen beveiligingsbeleid, dan verdwijnt het logo en blijft de titel staan.
- Letter. De systeemletter (standaard), de letter van je site (het script neemt de letter van de pagina over), of de letter van je merk. Die laatste werkt alleen als je site die letter al laadt: de banner vraagt nooit zelf een lettertype op bij ons of bij een ander.
- Afronding. 0, 6, 12 (standaard) of 20 pixels, of een pil (ronde knoppen).
- Keuze opnieuw openen. Drie manieren. Een icoon: een klein rond icoon van 44 pixels, linksonder of rechtsonder, dat na een keuze verschijnt en het instellingenpaneel opent (het label is de titel van dat paneel, in de taal van de pagina). Een eigen link (de standaard): geen icoon, jij zet een link of knop met
data-denkploeg-cookies="open"ofdata-cookie-instellingenop je site. Of uit: dat raden we af, want intrekken moet even makkelijk zijn als toestemmen. In code roep jewindow.DenkploegCookies.open()aan; dat werkt altijd, ook als de instellingen nog onderweg zijn (dan opent het paneel zodra ze er zijn).
Taal en toegankelijkheid
- Live meewisselen. Verandert de taal van je pagina zonder herladen (
<html lang>, bijvoorbeeld door een taalkiezer), dan haalt de banner zijn teksten in de nieuwe taal op en tekent een open banner of paneel opnieuw. Hoogstens één wissel per seconde. Een gemaakte keuze en de vinkjes die je bezoeker al zette blijven. Lukt het ophalen niet, dan blijft de huidige taal staan. - Focus. Bij het openen komt de focus in de banner, op de titel. Escape sluit het instellingenpaneel en nooit de eerste laag; zonder keuze komt dan de banner terug. Het venster in het midden en het paneel houden Tab binnen het venster.
- Contrast. Een kleur die niet leesbaar is op zijn vlak (minder dan 4,5), vervangt de banner door zwart of wit.
Op je site
Onder Op je site staat één regel. Plak hem in de <head> van je pagina's, zo hoog mogelijk, boven Google Tag Manager, gtag en andere scripts van derden:
<script src="https://…/cookies.js" data-sleutel="dpc_…"></script>Laat defer en async weg (of kies hieronder voor Snel laden). Alleen zo draait het script voordat een Google-tag laadt en staat Google Consent Mode v2 op geweigerd (ad_storage, analytics_storage, ad_user_data en ad_personalization op denied). Heeft je bezoeker eerder gekozen, dan past het script die keuze meteen toe, zonder te wachten op het netwerk. Een oude regel met defer blijft werken, maar dan wordt Consent Mode pas bijgewerkt na de keuze: te laat voor een Google-tag die al geladen is. Zet de nieuwe regel dus zonder defer.
- Voor de keuze zet de banner geen cookie en laadt hij niets van een ander. Bekende scripts van derden houdt hij zelf tegen (zie hieronder), en scripts die jij markeert wachten op de keuze. Google-tags volgen Consent Mode.
- Accepteren en Weigeren zijn even groot en even opvallend. Instellingen opent een paneel met een schakelaar per categorie.
- Een script van een derde markeer je met
type="text/plain"endata-categorie="statistiek"(ofvoorkeuren,marketing). Het loopt pas na toestemming voor die categorie. Een Google-tag hoef je niet te markeren: die volgt Consent Mode, dat de insluitregel zelf opdeniedzet en na de keuze bijwerkt.
Een gemarkeerd script ziet er zo uit:
<script type="text/plain" data-categorie="statistiek" src="https://voorbeeld.nl/tracker.js"></script>Scripts tegenhouden zonder markering (optioneel)
Met data-autoblokkeren="aan" op de scriptregel houdt het script zelf scripts van een derde tegen die je niet markeert, tot er toestemming is. De regel die je bij een nieuwe plaatsing krijgt, heeft dat attribuut; een regel die je al had, werkt zoals hij werkte. Het gaat om scripts die met code worden aangemaakt (de lader van Google Tag Manager, de pixel van Meta) en om scripts in de pagina die na ons script komen. Een bekend adres (Google Analytics, Meta, Hotjar, LinkedIn en enkele andere) wacht op toestemming voor zijn eigen categorie; Stripe, Mollie, PayPal, Klarna, Adyen en de captcha's van Google en hCaptcha laden altijd. Een onbekend script van een ander domein telt als niet-noodzakelijk en wacht op marketing; wil je dat het toch altijd laadt, zet dan data-categorie="noodzakelijk" op het script. Scripts van je eigen site laden altijd. Een algemeen cdn (zoals cdnjs of jsDelivr) is niet automatisch noodzakelijk.
Dit is geen volwaardige scanner. Een script dat de browser al ophaalde voordat ons script draaide houden we niet tegen, en een script met inline tekst blijft alleen dicht met type="text/plain" en data-categorie. Wat we tegenhouden, laadt met zijn attributen (zoals integrity en crossorigin) en zijn onload, maar niet met luisteraars die met addEventListener waren gezet. Staat er geen banner (uit), valt ons adres uit of is de proef voorbij zonder machtiging, dan laadt wat wij zelf tegenhielden gewoon, zodat een checkout niet breekt; scripts die je zelf markeerde blijven dicht.
Een script met inline tekst werkt ook: zet type="text/plain" en data-categorie op het script en laat de tekst staan.
Snel laden (async)
De gewone regel is synchroon: de browser wacht even op het script, en daardoor staat Consent Mode op geweigerd voordat een Google-tag laadt. Wil je dat het script je pagina niet blokkeert, zet dan onder Op je site, bij Zo plaats je hem, de schakelaar Snel laden (async) aan. Je krijgt dan twee delen, in deze volgorde:
<script>
window.dataLayer = window.dataLayer || [];
function gtag(){ dataLayer.push(arguments); }
gtag('consent', 'default', {
'analytics_storage': 'denied', 'ad_storage': 'denied', 'ad_user_data': 'denied',
'ad_personalization': 'denied', 'functionality_storage': 'denied', 'personalization_storage': 'denied',
'wait_for_update': 500
});
</script>
<script async src="https://…/cookies.js" data-sleutel="dpc_…"></script>De stub zet de zes sleutels van Consent Mode zelf op geweigerd, voordat iets anders laadt; het script past daarna de keuze van je bezoeker toe zodra het is geladen. De gewone, synchrone regel blijft de standaard. Eén ding is anders: met async komt een eerdere keuze pas door als het script klaar is, en niet al bij het begin van de pagina. Google wacht op de update die in wait_for_update staat (500 milliseconden); een tag die eerder afgaat, doet dat met de standaard geweigerd. Test mijn site herkent de stub vóór een async-regel en keurt die goed.
Heb je een strikte Content-Security-Policy met een nonce, zet dan dezelfde nonce op beide scripts (<script nonce="…">). Het script geeft die nonce door aan de scripts die het na toestemming activeert.
Zo plaats je hem
Onder Op je site staat een handleiding per manier van plaatsen, elk met de regel om te kopiëren (en met de schakelaar Snel laden):
- Gewone site en statische HTML. Plak de regel direct na de
<head>, boven alle andere scripts. - WordPress en WooCommerce. Zet de regel in het veld Header van een plugin voor headercode (zoals WPCode), of in
header.phpvan je (child)thema, vóórwp_head(). WooCommerce gebruikt dezelfde header voor winkel, winkelwagen en afrekenen. Heb je een cacheplugin (WP Rocket, LiteSpeed Cache, W3 Total Cache) of Cloudflare, sluit dancookies.jsuit van het uitstellen, combineren en verkleinen van JavaScript, zet Rocket Loader uit of voegdata-cfasync="false"aan de regel toe, en leeg de cache. Zet een andere cookiebanner-plugin uit. - Shopify. Plak de regel in
layout/theme.liquid, direct na de<head>, boven{{ content_for_header }}. Zie De Shopify-brug hieronder. - Magento. Plak de regel onder Content, Design, Configuration, (je scope), HTML Head, Scripts and Style Sheets, en leeg daarna de cache. Magento zet dit veld onderaan de head; staat er eerder in de head al een Google-tag of Tag Manager, verplaats die dan hierheen, onder onze regel.
- Next.js en React. Next.js laadt een script via de
Script-component asynchroon, dus gebruik de variant met de stub: de stub in de<head>van de root-layout, en het script metstrategy="beforeInteractive". De keuze van je bezoeker komt dan client-side door: in de browser nadat het script is geladen, niet in de HTML die je server stuurt. Een app met een vasteindex.html(Vite, Create React App) gebruikt de gewone regel in die<head>. Een script van een derde dat pas na toestemming moet draaien, laad je zelf na de gebeurtenisdenkploeg-cookies(event.detail.categorieen). - Google Tag Manager. Onze regel (of stub en regel) staat erboven. Zie hieronder.
De Shopify-brug
Staat window.Shopify op de pagina, dan geeft het script de keuze van je bezoeker door aan de Customer Privacy API van Shopify: het laadt de functie consent-tracking-api en roept setTrackingConsent aan met analytics (statistiek), marketing, preferences (voorkeuren) en sale_of_data (gelijk aan marketing). Wie zijn keuze intrekt, geeft overal false door. Op een site zonder Shopify doet het script hier niets.
Zo kunnen apps en pixels van Shopify de keuze volgen die onze banner vastlegt, en kun je de eigen cookiebanner van Shopify uitzetten. Zet die pas uit nadat je hebt gezien dat de keuze bij Shopify aankomt: kijk in de console van je browser met Shopify.customerPrivacy.currentVisitorConsent(). De afrekenpagina's van Shopify laden het thema niet; onze banner staat daar niet.
Let op: we hebben de Shopify-brug nog niet op een echte winkel geverifieerd. Hij volgt de documentatie van Shopify, maar is in onze toetsen alleen gecontroleerd tegen een nagebootste Shopify-API. Controleer hem op je eigen winkel voordat je op hem vertrouwt.
Als ons adres even uitvalt
- Een keuze die niet aankomt. Lukt het melden van een keuze niet (een netwerkfout, een serverfout of een rem), dan probeert het script het na enkele seconden nog eens. Blijft het mislukken, dan markeert het script de keuze in het eigen cookie (
p), en meldt het bij het volgende paginabezoek met een geldige keuze opnieuw. Een antwoord van onze server dat opnieuw sturen niet helpt (400, 403 of 404) sluit het af. Zo gaat het bewijs niet verloren; onze server telt een keuze die twee keer binnenkomt één keer. - De instellingen die niet aankomen. Het script probeert het ophalen nog twee keer, met uitstel. Lukt het dan nog niet, dan toont het de laatste goede instellingen uit de opslag van de browser van je bezoeker (hoogstens zeven dagen oud; alleen teksten, kleuren, categorieën en de versie, nooit gegevens van een bezoeker). Is er niets bewaard, dan staat er een waarschuwing in de console en volgt de gebeurtenis
denkploeg-cookies-fout, die je site kan opvangen. Scripts die je markeerde blijven dan dicht: bij uitval gaat er nooit een tracker open. Consent Mode blijft op de standaard geweigerd. - Een adres dat niet bij de banner hoort (een andere sleutel of domein, of een banner die uit staat) krijgt een definitief nee: het script probeert niet opnieuw en toont ook niets uit de opslag.
Test mijn site
Onder Op je site staat per domein een knop Test mijn site. We lezen één keer de HTML van je voorpagina en zeggen of de regel van deze banner erin staat, in de <head>, zonder defer of async (of met async achter de stub van Snel laden) en boven Tag Manager en andere scripts. We noemen ook de scripts en iframes van derden die voor de keuze laden en niet zijn gemarkeerd (Google-tags niet: die volgen Consent Mode). We lezen alleen de HTML zoals je server hem stuurt: een script dat een ander script later toevoegt, zien we niet. Je kunt hoogstens tien keer per uur testen, en we bewaren niets van je pagina.
Met Google Tag Manager
- Zet onze regel (zonder
defer) boven de Tag Manager-snippet in de<head>. - De regel zet Consent Mode op geweigerd en werkt hem bij na de keuze van je bezoeker.
- Zet in Tag Manager bij elke tag de ingebouwde toestemmingscontroles aan (
analytics_storagevoor statistiek,ad_storagevoor marketing) en laat een tag zonder toestemming niet afgaan. Tags van Google doen dit vaak vanzelf; bij andere tags zet je het zelf aan.
Een kant-en-klaar Tag Manager-sjabloon hebben we nog niet. Ook een script dat je niet markeert en dat geen Consent Mode kent, blokkeren we niet vanzelf.
- Een link of knop met het attribuut
data-cookie-instellingenopent de instellingen opnieuw, zodat een bezoeker zijn keuze kan wijzigen. Wie zijn keuze intrekt, krijgt de pagina opnieuw geladen. - Een nieuwe sleutel maakt de oude scriptregel waardeloos. Doe dat als de regel op een plek staat waar hij niet hoort.
Je domein aantonen
We scannen alleen een site waarvan je hebt aangetoond dat hij van jou is. Anders kon iemand onze scanner op de site van een ander richten door diens domein bij zijn banner in te vullen. Om je site te laten scannen zet je een DNS-record. Onder Cookies op je site zie je per site (het hoofddomein, dus www en subdomeinen horen erbij) of het is aangetoond:
- Maak bij je DNS-beheer een TXT-record op je hoofddomein met de waarde die het scherm toont,
denkploeg-verificatie=<jouw token>. Het token hoort bij deze banner en dit domein. - Kies Controleer het DNS-record. DNS kan een kwartier tot een paar uur duren voor het zichtbaar is.
- We controleren het record elke week opnieuw. Is het weg, dan vervalt het bewijs en scannen we niet meer.
Een script alleen is geen bewijs. Staat de scriptregel van de banner op je site, dan zien we dat en tonen we een hint (we zien je script op dit domein; zet het DNS-record om de scan aan te zetten), want wie de sleutel van een banner kent kan een verzoek van een ander domein nabootsen. Het script telt wel voor de passieve waarneming: wat je bezoekers zelf melden.
Zonder DNS-record scannen we niet en staat de knop Scan nu uit. Cookies met de hand invullen en je lijst bevestigen kan altijd. Heb je meer dan één domein in je banner, dan scannen we alleen de domeinen die zijn aangetoond.
Wat er op je site staat: de scan
Onder Cookies op je site lezen we je site uit en tonen we wat er staat. Zo kun je een cookieverklaring maken zonder de cookies zelf op te sporen.
- Zo scannen we. We lezen de sitemap van je site (
sitemap.xml, of de verwijzing in jerobots.txt, ook met een sitemapindex) en laden hoogstens 50 pagina's, in een afgeschermde browser die alleen voor dit werk bestaat. Per pagina schrijven we op welke cookies er komen, welke opslag de pagina gebruikt en van welke bekende diensten scripts komen. We schrijven nooit een waarde op, alleen namen en domeinen. De scan duurt hoogstens een paar minuten. - Een steekproef per soort pagina. Heeft je site meer dan 50 pagina's, dan kiezen we per sjabloon (het eerste deel van het adres, zoals
/blog/of/product/) een paar pagina's in plaats van de eerste 50. Laat de grens van 50 of jerobots.txtpagina's weg, dan is de scan gedeeltelijk en zegt de melding hoeveel we lazen: we lazen 50 van de 400 pagina's. De lijst telt dan niet als volledig gescand; de melding heeft zelf de knop Mijn lijst klopt, waarmee je haar bevestigt. - Alleen jouw site. We laden alleen pagina's van de domeinen die je bij de banner hebt ingevuld. Een verwijzing in je sitemap naar een ander domein negeren we.
- Wie we zijn. De scanner meldt zich als
Denkploeg-Scanner/1.0 (+https://denkploeg.nl/docs/cookiebanner). Zo kun je hem in je logboek herkennen en in je firewall toestaan. - Wanneer. Eerst zet je het DNS-record (zie Je domein aantonen): zonder dat scannen we niet en staat Scan nu uit. Daarna kan het meteen met de knop Scan nu (hoogstens eens per uur), en we scannen elke maand opnieuw en na een wijziging van je sitemap (we kijken eens per week of die veranderd is, en lezen daarbij eerst je
robots.txt). - Nieuwe cookies. Staat er bij een volgende scan een cookie dat er eerder niet was, dan krijg je een melding.
- Indeling. Een cookie dat we kennen delen we in bij noodzakelijk, voorkeuren, statistiek of marketing, met leverancier en bewaartermijn. Een cookie dat we nog niet kennen telt voor je bezoeker als marketing totdat Denkploeg hem heeft ingedeeld. Dat doen we eenmaal voor alle klanten: een indeling geldt daarna op elke site.
- Eigen cookies. Staat er een cookie van jezelf bij dat je anders wilt indelen, of mist er een, dan voeg je het zelf toe. Wat jij indeelt, blijft staan; een scan overschrijft het niet.
Als de scan niet lukt
De banner zegt tegen je bezoekers: De lijst met cookies op deze site is nog niet volledig gescand. Dat blijft zo na een scan die geweigerd werd, mislukte of maar een deel las, en bij een banner die nog nooit gescand is. We doen niet alsof een lijst klopt als we dat niet weten.
Een site die scanners weigert, scannen we niet met een omweg. Verbiedt je robots.txt scanners, geeft je site de scanner een 401, 403 of 429, of zit er een firewall of captcha voor, dan stoppen we en leggen we uit waarom. Je hebt drie wegen:
- Zet onze scanner op de allowlist. Laat verkeer toe met de user agent hierboven (in je firewall, in Cloudflare, in een beveiligingsplugin). Staat de scanner liever op IP-adres in je lijst, vraag ons dan om de adressen. Vraag daarna een nieuwe scan aan. Wil je de scanner niet toelaten, laat
robots.txtdan staan: wij houden ons eraan. - Laat de banner zelf meekijken. Heb je de scriptregel op je site, dan meldt de banner bij ongeveer een op de tien bezoeken de namen van de cookies die hij op de pagina ziet, na de keuze van de bezoeker. Alleen namen en je domein, nooit een waarde, een id of een persoon, hoogstens 50 namen per melding en een rem per site. Wat een script meldt is bewering: het komt in je lijst als gemeld door een bezoeker en Denkploeg controleert het voor het voor alle klanten geldt. Je kunt zo'n rij zelf weghalen, en hij vervalt na 90 dagen zonder nieuwe melding. Cijfer- en hexreeksen in een naam (een gebruikers-id of een hash) laten we weg. Een waarneming alleen geeft je geen melding over een nieuw cookie. Een naam die alleen bezoekers meldden gaat pas naar de keuring van Denkploeg als hij op minstens drie werkruimtes met een met DNS aangetoond domein staat; die rijen bewaren we 180 dagen.
- Vul de cookies zelf in en kies dan Mijn lijst klopt. Daarmee sta je er zelf voor in dat de lijst volledig is, en de banner zegt dat niet langer.
Een scan van je eigen site: wat we kunnen en niet kunnen
We zien wat een bezoeker zonder inloggen krijgt, op de pagina's uit je sitemap. Cookies die pas na een inlog, een aankoop of een bepaalde handeling komen, zien we niet; de passieve waarneming vult dat deels aan. Een scan is dus geen garantie dat je lijst compleet is, en een cookieverklaring blijft jouw verantwoordelijkheid.
Het bewijs van de keuzes
Onder Keuzes van bezoekers zie je per bezoeker de laatste keuze: hoeveel bezoekers alles accepteerden, alles weigerden en hoeveel statistiek toestonden. Download het bewijs geeft een csv met per keuze het tijdstip, een willekeurig id van de bezoeker, de keuze per categorie, de bannerversie en een grove apparaatklasse.
Wat we niet bewaren: het IP-adres en de user agent. Het bezoekers-id is een willekeurig getal in een cookie van je eigen site, maar het blijft een gepseudonimiseerd persoonsgegeven en is niet anoniem: jij kunt het met je eigen gegevens koppelen aan een bezoeker, bijvoorbeeld aan een ingelogde klant. Behandel de export dus als persoonsgegevens. Na de bewaartermijn verdwijnt het bewijs. Verwijder je de banner, dan verdwijnt het bewijs mee.
Het bewijs toont wat de banner vastlegde toen een bezoeker koos, en niet meer. Het komt van de browser van de bezoeker; wie bewust ruis opstuurt, kan het vervuilen. Daarom bewaren we per banner hoogstens 20.000 keuzes per dag als losse regel. Daarboven blijft de banner gewoon werken en geldt de keuze van je bezoeker; we tellen die keuzes dan alleen, en het platform krijgt een melding.
Eén logboek voor al je sites
Het tabblad Logboek toont het bewijs van alle sites samen, nieuwste eerst: wanneer een bezoeker koos, op welke site of banner, welke keuze per categorie en welke bannerversie. Je kunt filteren op een site, een periode of één bezoeker. Voor een verzoek van een bezoeker (AVG) zoek je op zijn id: dat staat in het cookie dp_toestemming of dp_cookies van zijn browser. Download het bewijs (csv) volgt het filter en bevat hoogstens de laatste 50.000 keuzes. Het logboek leest de bestaande vastlegging: een tweede registratie is er niet. Alleen de eigenaar en beheerders kunnen het downloaden, en niet in de proef.
Wat je eigen beveiligingsbeleid moet toestaan
Het script draait vanaf ons adres op je site. Gebruik je een Content-Security-Policy, laat dan ons adres toe in script-src (het script) en in connect-src (het ophalen van de instellingen en het opsturen van de keuze). Scripts van derden die je achter type="text/plain" zet, draaien na toestemming alleen als je beleid inline scripts of het adres van die derde toestaat; zonder dat blokkeert je browser ze, ook na een ja.
Installatiehulp
Liever dat wij meekijken? Bij elk pakket met de cookiebanner kun je installatie- en controlehulp nemen: wij plaatsen samen met jou de banner en de assistent (of kijken mee), controleren vóór en na Accepteren en Weigeren dat de gemarkeerde scripts wachten, nemen een eerste scan met je door en zetten de bronnen van de assistent klaar. Binnen 5 werkdagen volgt een afspraak. Het kost eenmalig € 79 excl. btw en is gratis als je jaarlijks betaalt. Je kiest het bij het afrekenen of achteraf bij Abonnement; zie Je abonnement. De hulp helpt je de banner goed te plaatsen en te controleren, maar of je site voldoet blijft afhangen van je markeringen, je cookieverklaring en je plaatsing; de verantwoordelijkheid daarvoor blijft bij jou.
Wie wat mag
Iedereen van binnen de werkruimte ziet de banners, maar alleen de eigenaar en beheerders (recht cookies.beheren) wijzigen ze, scannen en downloaden het bewijs. De module Cookiebanner komt met het pakket Cookiebanner, en zit ook in Website, Website met klantenservice, Bedrijf, Alles en de bundel Assistent met cookiebanner. Elk van die pakketten geeft één site met een banner. Het pakket Cookiebanner heeft geen credits: er is in de module niets om ze aan uit te geven. Had je abonnement ze al, dan houd je ze tot het eind van je lopende periode. Alles wat je instelt, vernieuwt of exporteert staat in de Historie.
Via MCP en de regisseur
Een externe agent met een sleutel van de werkruimte kan de cookiebanners lezen en een wijziging voorstellen. De regisseur krijgt dezelfde tools, met het recht van de gebruiker die hem vraagt. Wat een bezoeker te zien krijgt, gaat altijd langs een mens.
- Lezen:
cookiebanners_lezengeeft per banner de categorieën, kleuren, vorm, taal en termijnen, en de cijfers van de laatste 30 dagen (alleen getallen). Nooit de sleutel van de banner en nooit de keuze van een bezoeker. De naam, de teksten en het adres van de cookieverklaring zijn tekst van buiten: de agent leest ze als gegeven. - Een wijziging voorstellen (recht
cookies.beheren, eigenaar en beheerder):cookiebanner_wijzigen_voorstellenlegt een kaart bij Goedkeuringen en verandert pas iets als een mens tekent. Het kan voor de naam, aan of uit, de categorieën, de teksten per taal, de kleuren, de standaardtaal, de bewaartermijn, hoe lang een keuze geldt en de vorm (positie, letter, afronding, heropenen). Alleen wat je noemt verandert. Verandert de keuze of een tekst, dan vraagt de banner elke bezoeker opnieuw. - Bewust niet via MCP: de domeinen, de cookieverklaring, het merk en het logo, de sleutel van de banner, een banner maken, scannen of verwijderen. Een domein is een bestemming en het verwijderen wist het bewijs van de keuzes; dat doet een mens in het scherm.
Zie Aansluiten via MCP.