Gratis startenDashboard
Documentatie

Scripts en embeds blokkeren

Een banner betekent pas iets als trackers op het antwoord wachten. Op deze pagina lees je wat Cookiemark zelf tegenhoudt, hoe je de rest markeert en wat het niet kan tegenhouden.

Automatisch blokkeren

Cookiemark kent de scripts en embeds van veelgebruikte diensten. Verschijnt er een op je pagina, dan houdt het script hem tegen tot de bezoeker de categorie ervan toestaat. Je hoeft niets in te stellen. Het werkt zodra het script als eerste in je head staat.

Het script houdt de pagina op twee manieren in de gaten, omdat geen van beide in zijn eentje alles opvangt.

  • Het onderschept scripts die door andere code worden aangemaakt. Krijgt zo'n script het adres van een bekende dienst, dan verandert Cookiemark het type voordat het script wordt toegevoegd. De browser voert het dan nooit uit.
  • Het volgt alles wat de browser aan de pagina toevoegt terwijl die je HTML leest. Een bekend script krijgt een type dat de browser niet uitvoert, en een bekend frame raakt zijn adres kwijt tot de bezoeker toestemming geeft.

Staat de bezoeker de categorie toe, dan voert Cookiemark de tegengehouden scripts alsnog uit, in hun oorspronkelijke volgorde. Een extern script is klaar met laden voordat het volgende begint, dus code die ervan afhangt, blijft werken.

De diensten die Cookiemark herkent

DienstWacht opHerkend aan
Google Tag ManagerStatistiekengoogletagmanager.com/gtm.js, googletagmanager.com/ns.html
Google AnalyticsStatistiekengoogletagmanager.com/gtag/js, google-analytics.com
Google AdsMarketinggoogleadservices.com, googlesyndication.com, doubleclick.net
Meta PixelMarketingconnect.facebook.net, facebook.com/tr
HotjarStatistiekenstatic.hotjar.com, script.hotjar.com
Microsoft ClarityStatistiekenclarity.ms
LinkedIn Insight TagMarketingsnap.licdn.com, px.ads.linkedin.com, _linkedin_partner_id
TikTok PixelMarketinganalytics.tiktok.com
Pinterest TagMarketings.pinimg.com/ct, ct.pinterest.com
HubSpotMarketingjs.hs-scripts.com, js.hs-analytics.net, js.hsforms.net
QuriobotMarketingbotsrv2.com, quriobot.com
YouTubeMarketingyoutube.com/embed, youtube-nocookie.com/embed, youtube.com/iframe_api
VimeoMarketingplayer.vimeo.com
Google MapsMarketinggoogle.com/maps/embed, maps.google.com/maps, maps.googleapis.com/maps/api
X (Twitter)Marketingplatform.twitter.com, platform.x.com
InstagramMarketinginstagram.com/embed
SpotifyMarketingopen.spotify.com/embed
MatomoStatistieken/matomo.js, /piwik.js, cdn.matomo.cloud
Piwik PROStatistieken.containers.piwik.pro, .piwik.pro/ppms.js
Adobe AnalyticsStatistiekenassets.adobedtm.com, /appmeasurement.js, .omtrdc.net, .2o7.net
MixpanelStatistiekencdn.mxpnl.com, cdn4.mxpnl.com, api-js.mixpanel.com
AmplitudeStatistiekencdn.amplitude.com
HeapStatistiekencdn.heapanalytics.com, heapanalytics.com/js
SegmentStatistiekencdn.segment.com, cdn.segment.io
MouseflowStatistiekencdn.mouseflow.com
Crazy EggStatistiekenscript.crazyegg.com
Lucky OrangeStatistiekentools.luckyorange.com, tools.luckyorange.net
FullStoryStatistiekenedge.fullstory.com, fullstory.com/s/fs.js
SmartlookStatistiekenweb-sdk.smartlook.com, rec.smartlook.com
ContentsquareStatistiekent.contentsquare.net
Datadog RUMStatistiekendatadoghq-browser-agent.com
Yandex MetricaStatistiekenmc.yandex.ru/metrika, mc.yandex.com/metrika
VWOStatistiekendev.visualwebsiteoptimizer.com, visualwebsiteoptimizer.com/j.php
OptimizelyStatistiekencdn.optimizely.com
AB TastyStatistiekentry.abtasty.com
KameleoonStatistieken.kameleoon.eu, .kameleoon.io
UsabillaStatistiekenw.usabilla.com
MopinionStatistiekendeploy.mopinion.com
QualtricsStatistiekensiteintercept.qualtrics.com
SurvicateStatistiekensurvey.survicate.com
WooCommerce order attributionStatistieken/woocommerce/assets/js/frontend/order-attribution, /sourcebuster/sourcebuster
Microsoft AdvertisingMarketingbat.bing.com
X AdsMarketingstatic.ads-twitter.com, analytics.twitter.com
Snap PixelMarketingsc-static.net/scevent, tr.snapchat.com
Reddit PixelMarketingredditstatic.com/ads, alb.reddit.com
Quora PixelMarketinga.quora.com/qevents.js, q.quora.com
CriteoMarketingstatic.criteo.net, dynamic.criteo.com, sslwidget.criteo.com
TaboolaMarketingcdn.taboola.com, trc.taboola.com
OutbrainMarketingwidgets.outbrain.com, amplify.outbrain.com
AdRollMarketings.adroll.com, d.adroll.com
The Trade DeskMarketingjs.adsrvr.org, insight.adsrvr.org
XandrMarketingacdn.adnxs.com, ib.adnxs.com, secure.adnxs.com
AdformMarketingtrack.adform.net, s2.adform.net, s1.adform.net
Amazon AdsMarketingamazon-adsystem.com
AwinMarketingdwin1.com, zenaps.com
TradeTrackerMarketingtm.tradetracker.net, ts.tradetracker.net
DaisyconMarketing.daisycon.io
impact.comMarketingutt.impactcdn.com, impactradius-event.com
LeadinfoMarketingcdn.leadinfo.net, collector.leadinfo.net, leadinfo.net, api.leadinfo.com
Dealfront (Leadfeeder)Marketingsc.lfeeder.com, lftracker.leadfeeder.com
AlbacrossMarketingserve.albacross.com
SnitcherMarketingcdn.snitcher.com
KlaviyoMarketingstatic.klaviyo.com, static-tracking.klaviyo.com, a.klaviyo.com
MailchimpMarketingchimpstatic.com/mcjs-connected
ActiveCampaignMarketingdiffuser-cdn.app-us1.com, trackcmp.net
BrevoMarketingsibautomation.com, cdn.brevo.com/js/sdk-loader
Salesforce Account Engagement (Pardot)Marketingpi.pardot.com, cdn.pardot.com
MarketoMarketingmunchkin.marketo.net
ShareThisMarketingplatform-api.sharethis.com, buttons-config.sharethis.com
AddToAnyMarketingstatic.addtoany.com
OptinMonsterMarketinga.omappapi.com
Facebook embedsMarketingfacebook.com/plugins, web.facebook.com/plugins
TikTok embedsMarketingtiktok.com/embed
WistiaMarketingfast.wistia.com, fast.wistia.net
VidyardMarketingplay.vidyard.com
LoomMarketingloom.com/embed
DailymotionMarketingdailymotion.com/embed, geo.dailymotion.com
JW PlayerStatistiekencdn.jwplayer.com, content.jwplatform.com
SoundCloudMarketingw.soundcloud.com/player
DisqusMarketing.disqus.com/embed.js, disquscdn.com
IntercomVoorkeurenwidget.intercom.io, js.intercomcdn.com
ZendeskVoorkeurenstatic.zdassets.com, ekr.zdassets.com, v2.zopim.com
DriftVoorkeurenjs.driftt.com
CrispVoorkeurenclient.crisp.chat
tawk.toVoorkeurenembed.tawk.to
LiveChatVoorkeurencdn.livechatinc.com
OlarkVoorkeurenstatic.olark.com
Zoho SalesIQVoorkeurensalesiq.zoho.eu, salesiq.zoho.com, salesiq.zohopublic
SmartsuppVoorkeurensmartsuppchat.com, smartsupp-widget
TidioVoorkeurencode.tidio.co
TrengoVoorkeurenstatic.widget.trengo.eu
FreshchatVoorkeurenwchat.freshchat.com, snippets.freshchat.com
UserlikeVoorkeurenuserlike-cdn-widgets
CalendlyVoorkeurenassets.calendly.com, calendly.com/
TypeformVoorkeurenembed.typeform.com, form.typeform.com
JotformVoorkeurenform.jotform.com, cdn.jotfor.ms

Staat Google Consent Mode op geavanceerd, dan worden de drie Google-diensten hierboven niet tegengehouden. Ze laden meteen en volgen zelf de toestemmingsstatus. In Google Consent Mode v2 lees je wat het verschil is.

Een dienst uitzetten

Open de site, ga naar Cookies en kijk onder Diensten. Elke dienst heeft een schakelaar. Zet je er een uit, dan laden de scripts en frames ervan zonder te vragen. Doe dat alleen voor een dienst die geen cookies plaatst en niets verzamelt, of een dienst die je op een andere manier tegenhoudt.

Je eigen regels

Voor een dienst die we niet kennen, voeg je een regel toe onder Cookies, Je eigen regels. Een regel bestaat uit een stukje tekst en een categorie. Elk script of frame waarvan het adres die tekst bevat, wacht op die categorie. Gebruik een deel dat uniek is voor de dienst, zoals widget.example-chat.com, zodat je niet per ongeluk andere scripts tegenhoudt.

Zelf een script markeren

Je kunt elk script in je HTML markeren, zodat het op toestemming wacht. Verander het type in text/plain en voeg data-cookiemark toe met de categorie. De browser voert een script met dat type niet uit, en Cookiemark voert het uit zodra de categorie is toegestaan.

<script type="text/plain" data-cookiemark="statistics"
  src="https://analytics.example.com/tracker.js"></script>

Inline scripts werken op dezelfde manier. Automatisch blokkeren kijkt alleen naar adressen, dus een inline snippet heeft deze markup altijd nodig.

<script type="text/plain" data-cookiemark="marketing">
  // This code runs once the visitor allows marketing.
  startMyPixel('1234567');
</script>

Moet een script als module draaien, voeg dan data-cmk-type="module" toe. Cookiemark geeft het script dat type als het hem uitvoert.

<script type="text/plain" data-cookiemark="statistics"
  data-cmk-type="module" src="/js/stats.js"></script>

Categorieën combineren

In het attribuut zet je één categorie of een combinatie van categorieën.

WaardeHet script draait als
statisticsStatistieken zijn toegestaan.
statistics,marketingBeide zijn toegestaan.
statistics|marketingMinstens één van de twee is toegestaan.

De categorieën zijn preferences, statistics en marketing. Een script dat als necessary is gemarkeerd, draait meteen.

Markup van de plugin en van Cookiebot

Cookiemark leest ook data-cookieconsent in plaats van data-cookiemark. Dat is het attribuut van de plugin CookieConsent en van Cookiebot. Scripts en frames die je voor een van beide hebt gemarkeerd, blijven werken als je overstapt.

Iframes en andere embeds

Een ingesloten video, kaart of post van een bekende dienst wordt net zo behandeld als een script. Cookiemark haalt het adres weg, verbergt het frame en toont op die plek een placeholder. De placeholder noemt de categorie en heeft een knop om die toe te staan.

Wil je een frame tegenhouden dat Cookiemark niet kent, zet het adres dan in data-src in plaats van src en voeg de categorie toe.

<iframe data-src="https://www.youtube-nocookie.com/embed/VIDEO-ID"
  data-cookiemark="marketing" data-cmk-label="YouTube"
  width="560" height="315" title="Our product in two minutes"></iframe>

Met het optionele data-cmk-label zet je de naam van de dienst op de placeholder. Geef het frame een width en een height, dan krijgt de placeholder dezelfde vorm. De pagina verspringt dan niet als de video laadt. Afbeeldingen met data-src en hetzelfde attribuut worden op dezelfde manier vrijgegeven, zonder placeholder.

De placeholder

De knop op de placeholder staat de categorie van die embed toe en laat de rest van de keuze van de bezoeker zoals die was. Het is een echte keuze, dus die wordt opgeslagen en vastgelegd zoals elke andere. Frames die niemand kan zien, zoals een trackingpixel van één bij één pixel, krijgen geen placeholder. Die blijven zonder placeholder tegengehouden.

De teksten van de placeholder pas je aan onder Teksten. In de tekst staat %s op de plek waar de naam van de categorie komt.

Als een bezoeker toestemming intrekt

Een script dat al is uitgevoerd, kun je niet meer stoppen. Zet een bezoeker een categorie uit die eerder was toegestaan, dan herlaadt Cookiemark daarom standaard de pagina. Vóór het herladen verwijdert het de cookies uit die categorie die in je cookielijst staan, op je domein en de bovenliggende domeinen. Het herladen kun je uitzetten onder Instellingen.

Cookies die een derde partij op een eigen domein heeft geplaatst, zijn voor geen enkel script op je site bereikbaar. Die verlopen vanzelf.

Wat blokkeren in de browser niet kan tegenhouden

Cookiemark draait in de browser van de bezoeker en kan dus alleen ingrijpen op wat er gebeurt nadat het is gestart. Houd rekening met deze grenzen.

  • Een script boven de regel van Cookiemark draait voordat Cookiemark bestaat. Zet de regel dus altijd als eerste in de head.
  • Een inline script zonder src wordt nooit automatisch herkend. Markeer het zelf.
  • Een verzoek dat een script al heeft verstuurd, kun je niet terughalen. Daarom herlaadt de pagina als iemand toestemming intrekt.
  • Een tag die in Tag Manager draait, is geen script op je pagina. Tag Manager bepaalt wanneer hij draait, dus geef hem een trigger voor toestemming.

Een scan laat zien wat er nog doorheen glipt. Die toont elke cookie die je pagina's plaatsen voordat een bezoeker kiest, en wie hem plaatst.