Wanneer een patiënt de cookiebanner op uw website beantwoordt en daarna doorklikt naar uw boekingspagina, krijgt hij dezelfde vraag een tweede keer. Zet dit aan en uw website geeft het antwoord mee, zodat de boekingspagina het toepast in plaats van opnieuw te vragen.
Wie doet wat: u beslist en zet het aan, uw webmaster voegt enkele regels code toe (deel 2), en voor patiënten die de boekingspagina op een andere manier bereiken verandert er niets.
U hebt nodig | Waarom |
Een Google Tag Manager-container in Crossuite | Zonder container heeft de boekingspagina geen cookiebalk en valt er niets te hergebruiken |
De gekozen cookiecategorieën | Alleen categorieën die u op de boekingspagina aanbiedt, kunnen worden hergebruikt |
Toegang tot uw eigen website | Uw webmaster voegt de code toe aan uw cookiebanner |
Uw bannertekst uitgebreid | Deel 3 — dat is wat het hergebruik rechtsgeldig maakt |
Het werkt alleen voor patiënten die op een link op uw website klikken. Vanuit een e-mail, een QR-code, een zoekresultaat of een bladwijzer valt er niets mee te geven; die patiënten houden hun eerdere antwoord of krijgen onze cookiebalk zoals gewoonlijk.
Er moet precies één ding waar zijn:
Op het moment dat de browser de boekingspagina opent, moet de URL de parameters al bevatten.
Wij lezen ze uit onze eigen URL terwijl de pagina laadt. Er is achteraf niets meer aan te roepen: geen callback, geen postMessage, geen API — een antwoord dat later binnenkomt kan niet meer worden toegepast, omdat de cookiebalk dan al beslist heeft of hij zichzelf toont.
https://booking.crossuite.app/<uw-link-id>?cc_v=1&cc_ts=1789123044&cc_analytics=1&cc_marketing=0Hoe die URL tot stand komt, bepaalt u volledig zelf. Deel 2.4 zet de gebruikelijke manieren met hun voor- en nadelen op een rij; kies wat bij uw site past.
Parameter | Verplicht | Waarde | Betekenis |
| ja |
| Versie van het formaat. Al het andere wordt genegeerd |
| ja | unix-seconden | Wanneer de patiënt beslist heeft. Ouder dan 182 dagen wordt genegeerd |
| nee | max. 64 tekens | Uw eigen toestemmings-id, zodat uw log en het onze te koppelen zijn |
| nee |
| Statistieken |
| nee |
| Advertenties |
| nee |
| Functionaliteit en personalisatie |
Twee dingen om goed te doen, welke manier u ook kiest:
Stuur het actuele antwoord, niet dat van de eerste toestemming. cc_ts is het moment waarop de patiënt beslist heeft, dus wie van gedacht verandert moet bij de volgende klik een nieuwe waarde meekrijgen.
Laat een categorie weg als uw banner er nooit naar gevraagd heeft. Een 0 is een weigering; een ontbrekende parameter betekent "niet gevraagd" en laat onze balk de vraag stellen.
Alles wat geen 1 of 0 is, telt alsof de parameter er niet stond. Een tijdstempel meer dan vijf minuten in de toekomst wordt geweigerd. Een id langer dan 64 tekens wordt weggelaten; de rest van de link blijft gelden.
De link zegt over een categorie | Wat er op de boekingspagina gebeurt |
| Toegestaan — tenzij de patiënt die categorie op onze eigen balk geweigerd heeft |
| Geweigerd, altijd, wat er ook eerder bewaard was |
niets | Het antwoord op de boekingspagina blijft gelden; onze balk vraagt het als er niets is |
Drie regels bepalen de rest:
Een 0 geldt altijd. Wat er ook bewaard was en door wie, een weigering in de link wordt toegepast — ook over een toestemming die de patiënt op onze eigen cookiebalk gegeven heeft. Intrekken wordt nooit geblokkeerd.
Een 1 geldt, tenzij de patiënt die categorie op onze eigen balk geweigerd heeft. Die weigering is het enige wat een link niet kan omkeren; alleen de patiënt zelf kan dat, via "Cookievoorkeuren" onderaan. Een weigering die van uw website kwam is niet definitief — uw website mag ze later opnieuw toestaan.
Alleen categorieën die u aanbiedt op de boekingspagina worden toegepast. Een cc_marketing voor een praktijk die geen advertenties aanbiedt, wordt genegeerd; de rest van de link blijft gelden.
Zijn alle categorieën die de boekingspagina aanbiedt beantwoord, dan verschijnt er geen cookiebalk. Blijft er iets onbeantwoord, dan verschijnt de balk en vraagt hij naar alles.
Wij verwijderen de cc_-parameters uit het adres zodra wij ze gelezen hebben, zodat de patiënt een propere boekings-URL ziet.
Aanpak | Goed wanneer | Let op |
De link aanpassen bij het klikken | Elke site, ook links die pas later verschijnen, geen backend nodig | Werkt alleen voor de kliks waarnaar u luistert; de aangepaste |
Aanpassen wanneer de toestemming wijzigt | Weinig, vaste boekingslinks | Mist links die later worden opgebouwd; de parameters staan in de paginabron |
De parameters serverzijdig meegeven | Uw pagina's worden per aanvraag opgebouwd en kunnen uw eigen cookie uitlezen | Veroudert zodra de patiënt zijn keuze wijzigt zonder de pagina te herladen |
Een eigen redirect-endpoint | U wilt elk instappunt dekken, ook middelklik en gekopieerde links | Eén route extra om te onderhouden |
Aanpassen bij het klikken. De gebruikelijke keuze. Eén gedelegeerde listener, niets per link in te stellen:
document.addEventListener(
'click',
(e) => {
const link = e.target.closest('a[href*="booking.crossuite.app"]');
if (!link || !window.__cs) return;
const url = new URL(link.href);
url.searchParams.set('cc_v', '1');
url.searchParams.set('cc_ts', String(window.__cs.ts));
if (window.__cs.id) url.searchParams.set('cc_id', window.__cs.id);
for (const category of ['analytics', 'marketing', 'functionality']) {
if (window.__cs[category] !== undefined) {
url.searchParams.set(`cc_${category}`, String(window.__cs[category]));
}
}
link.href = url.toString();
},
true, // capture: loopt vóór een router of ander script het event kan stoppen
);window.__cs is gewoon een plek om het actuele antwoord te bewaren — vul het vanuit de callback van uw toestemmingsplatform, telkens wanneer de patiënt beslist. Gebruik gerust een andere opslag.
Merk op dat click alleen afgaat voor de primaire muisknop. Wilt u ook middelklik en "openen in nieuw tabblad" dekken, registreer dezelfde handler dan ook voor auxclick.
Aanpassen wanneer de toestemming wijzigt. Loop de links één keer af in uw callback:
document.querySelectorAll('a[href*="booking.crossuite.app"]').forEach(rewrite);Redirect-endpoint. Laat uw boekingslinks naar een eigen route wijzen, lees daar uw toestemmingscookie uit en stuur door naar de boekings-URL met de parameters erbij. Dit is de enige aanpak die ook middelklik, links in een nieuw tabblad en gekopieerde links dekt.
De boekingshost is booking.crossuite.app. Vergelijkt u die als gewone tekst, zoals in het voorbeeld hierboven, dan komt elke andere schrijfwijze nergens mee overeen en doet de hele functie stil niets — vergelijk ze met een echte boekingslink uit uw Crossuite-instellingen vóór u live gaat.
Dit is het deel dat het hergebruik rechtsgeldig maakt: uw banner moet de patiënt zeggen dat zijn keuze ook voor de boekingspagina geldt.
Tekst om toe te voegen aan uw banner of cookiebeleid:
Online afspraken boeken verloopt via
booking.crossuite.app, voor ons beheerd door Crossuite BV.
De keuze die u hier maakt, wordt doorgegeven aan die pagina: de statistiek- en advertentiecookies die u toestaat, worden daar geplaatst in onze eigen Google Tag Manager-container. De boekingspagina plaatst daarnaast enkele strikt noodzakelijke cookies voor uw afspraak, uw taal en uw aanmelding. U kunt uw keuze op elk moment wijzigen via "Cookievoorkeuren" onderaan de boekingspagina. Zie het Bookings.
Rijen om toe te voegen aan uw cookietabel:
Doel | Geplaatst door | Type | Bewaartermijn |
cookiekeuze | Crossuite (boekingspagina) | strikt noodzakelijk | 6 maanden (182 dagen) |
boekingsvoortgang, reservatie | Crossuite (boekingspagina) | strikt noodzakelijk | sessie / tot de reservatie vervalt |
taal | Crossuite (boekingspagina) | strikt noodzakelijk | sessie |
aanmelding, alleen als de patiënt zich in Held aanmeldt | Crossuite (boekingspagina) | strikt noodzakelijk | tot hij zich afmeldt |
| Google, via de boekingspagina | strikt noodzakelijk | 6 maanden |
uw GA4- / Ads-cookies | uw eigen GTM-container | statistiek / adverteren | zoals op uw site |
reCAPTCHA beschermt het boekingsformulier tegen spam en kan niet worden uitgezet, dus hoort hij in uw tabel, ook al plaatst noch u noch wij hem rechtstreeks.
De laatste rij blijft bewust algemeen: die cookies komen uit uw container, dus hun namen en bewaartermijnen staan al in uw eigen cookietabel.
Instellingen → Webbooking → Analytics → Configureren → Toestemming van uw eigen website
Standaard staat het uit. Bij het aanzetten wordt u gevraagd twee zaken te bevestigen:
Uw banner dekt de boekingspagina — hij noemt Crossuite en de boekingspagina als een aparte bestemming, somt de cookies op met doel en bewaartermijn, en verwijst naar ons cookiebeleid.
Een intrekking op uw website bereikt ons pas wanneer de patiënt opnieuw doorklikt. Tot dan, en maximaal 182 dagen lang, blijft zijn eerdere antwoord gelden op de boekingspagina. Dat is geen instelling die wij kunnen wijzigen: zijn antwoord staat in een cookie op uw domein en de browser laat onze code die niet lezen. De patiënt kan altijd rechtstreeks intrekken via "Cookievoorkeuren" onderaan de boekingspagina.
U hebt de code niet nodig om te testen — plak de parameters met de hand achter uw boekingslink.
cc_ts is een unix-tijdstempel in seconden, geen datum. Het is een gewoon getal, vandaag tien cijfers lang:
| Is | Resultaat |
| 14 september 2026, 07:00 UTC | aanvaard |
| 16 maart 2026 — precies 182 dagen eerder | het oudste dat nog aanvaard wordt |
| één seconde eerder | te oud, de link wordt genegeerd |
| milliseconden in plaats van seconden | ver in de toekomst, genegeerd |
| een datum als tekst | geen getal, genegeerd |
Een actuele waarde krijgt u met Math.floor(Date.now()/1000) in de console van uw browser. De getallen hierboven zijn van 14 september 2026 — neem een verse waarde in plaats van ze te kopiëren, anders begint uw test te falen vanaf maart 2027.
Verwijder de cookie cc_cookie_* vóór elke test (DevTools → Application → Cookies), anders test u het antwoord dat al bewaard is.
Een volledige testlink ziet er zo uit:
https://booking.crossuite.app/<uw-link-id>?cc_v=1&cc_ts=1789369239&cc_id=test-1&cc_analytics=1&cc_marketing=1&cc_functionality=1Link | Verwacht |
| Geen cookiebalk, alles toegestaan, geen |
| Geen cookiebalk, alles geweigerd |
| De cookiebalk verschijnt — twee categorieën zijn onbeantwoord |
| De cookiebalk verschijnt — geen |
Weiger op de boekingsbalk, open daarna de eerste link | Geen balk, nog steeds geweigerd — een keuze hier weegt zwaarder |
In de preview-modus van Google Tag Manager stuurt de boekingspagina een crossuite_consent_update-event met crossuite_consent_analytics, crossuite_consent_marketing en crossuite_consent_functionality.
Als er niets gebeurt
Loop het in deze volgorde na:
Staat de instelling aan in Crossuite?
Komt de selector in de code teken voor teken overeen met uw echte boekingslink?
Is cc_ts aanwezig en jonger dan 182 dagen?
Is de categorie die u stuurde er een die de boekingspagina ook aanbiedt?
Hebt u de cookie cc_cookie_* verwijderd?
Uw analytics-instellingen opslaan vraagt het aan elke patiënt opnieuw. Een categorie toevoegen, het privacybeleid aanpassen of deze functie uitzetten verhoogt telkens de versie van het toestemmingsbeleid, waardoor elk bewaard antwoord vervalt, ook de hergebruikte. Verwacht dus dat de balk na zo'n opslag bij iedereen opnieuw verschijnt — dat is de beleidswijziging, geen defect.
Intrekken blijft mogelijk via "Cookievoorkeuren" onderaan de boekingspagina. Een wijziging daar geldt alleen voor de boekingspagina; er wordt niets teruggeschreven naar uw website.
Elk hergebruikt antwoord wordt gelogd met uw toestemmings-id en het tijdstempel dat u meestuurde, zodat uw gegevens en de onze regel per regel te vergelijken zijn.
booking.crossuite.app is een ander domein dan uw website. Voeg het toe aan de cross-domain lijst van uw GA4- en Google Ads-configuratie, anders gaat de gclid onderweg verloren en wordt een boeking die uit een advertentie kwam er niet aan toegewezen.