Handleiding voor integratie van cookieconsent voor Heap Auto-Capture productanalytics: Playbook 2026 voor uitgevers
Heap is ongewoon in het ecosysteem van productanalytics vanwege wat het standaard doet. Waar Mixpanel, Amplitude en PostHog de uitgever vragen om de relevante gebeurtenissen te instrumenteren, legt Heap alles automatisch vast en laat de analist achteraf gebeurtenissen definiëren vanuit de vastgelegde stroom. Dat auto-capture model is het bepalende kenmerk van het product en de reden waarom teams het kiezen; het is ook de reden waarom een standaard Heap-implementatie een van de breedste gedragsgegevensvlakken heeft van alle tools die een uitgever waarschijnlijk installeert. Elke klik, tik, scroll, formulierinteractie, paginaovergang en woede-klik wordt vastgelegd tegen een persistente identifier binnen milliseconden na het laden van de pagina — wat betekent dat elk van die bewerkingen een toestemmingsverplichting met zich meebrengt. Het goede nieuws is dat Heap, sinds de overname door Contentsquare, wordt geleverd met een van de meer gedetailleerde toestemmings-API's in de productanalytics-ruimte; het werk is om het correct te koppelen aan het auto-capture oppervlak, de identiteitslaag en de sessie-replay module die de Contentsquare-integratie toevoegt.
Waarom Heap toestemming vereist — en waarom het antwoord breder is dan typische analyses
Een standaard Heap-initialisatie doet bij de eerste rendering van de pagina meerdere dingen. Het plaatst een first-party cookie onder _hp2_id.{envId} met de persistente gebruikersidentifier, een sessiecookie onder _hp2_ses_id.{envId} met de sessie-identifier, een steekproeffrequentiecookie onder _hp2_props.{envId}, en een markering _hp2_loaded die aangeeft dat de SDK is geïnitialiseerd. Het genereert de unieke identifier als die nog niet bestaat, legt de eerste paginaweergave vast met verwijzende pagina, UTM-parameters en klikidentifiers, en begint onmiddellijk elke volgende interactie te registreren tegen die identifier — klikken, tikken, formulierwijzigingen, routewijzigingen, aangepaste gebeurtenissen, en wanneer de Contentsquare-integratie is ingeschakeld, de volledige weergegeven DOM-diff voor sessie-replay.
Elk van die activiteiten brengt een afzonderlijk toestemmingspoort met zich mee. Het bewaren van de gebruikersidentifier is een opslag- en toegangsbewerking onder Artikel 5(3) van de ePrivacy-richtlijn en vereist voorafgaande, vrij gegeven, specifieke, geïnformeerde en ondubbelzinnige toestemming in de EER, het Verenigd Koninkrijk en elke jurisdictie die dezelfde standaard heeft overgenomen. Het vastleggen van de auto-capture-gebeurtenisstroom is verwerking van persoonsgegevens onder de AVG omdat de combinatie van identifier, IP-adres en gedragsspoor voldoende is om een individu te onderscheiden. Sessie-replay valt in een afzonderlijke, strengere categorie onder de sessie-replaybegeleiding van de EDPB — replay legt de weergegeven DOM en eventuele niet-gemaskeerde invoervelden vast en vereist expliciete, gedetailleerde toestemming die verschilt van generieke analyticstoestemming. De CCPA en CPRA behandelen dezelfde verwerking als een verkoop of deling, tenzij de uitgever het relevante contract van de dienstverlener met Heap heeft — wat Heap aanbiedt, maar het contract treedt alleen in werking wanneer de integratie is geconfigureerd voor de dienstverlenermodus.
Wat Heap schrijft vóór toestemming — en wat moet worden onderdrukt
De standaard quickstart die wordt geleverd bij het Heap-dashboard installeert het trackingfragment direct in de <head> van de pagina. Dit werkt zoals gedocumenteerd en is de bron van de meest voorkomende nalevingsfout bij Heap-implementaties: het fragment wordt uitgevoerd voordat de cookiebanner is weergegeven, de _hp2_-cookies worden binnen milliseconden geschreven en de auto-capture stroom begint naar heapanalytics.com te stromen ongeacht wat de gebruiker later besluit. Elke Europese toezichthouder die over dit patroon heeft geoordeeld, heeft hetzelfde geoordeeld: cookies die vóór toestemming zijn geplaatst zijn onrechtmatig, en de uitgever draagt de aansprakelijkheid.
Een conforme integratie moet daarom voorkomen dat het Heap-fragment wordt geladen totdat de relevante toestemmingscategorie is verleend. De twee patronen die in productie werken zijn voorwaardelijke scriptinjectie — het fragment wordt alleen aan de DOM toegevoegd nadat het CMP toestemming signaleert — en het vooraf laden van het fragment met heap.load(appId, { disableTextCapture: true, secureCookie: true, autocapture: false }) als een uitgestelde bootstrap en vervolgens heap.startAutoCapture() aanroepen zodra toestemming is vastgelegd. Het voorwaardelijke injectiepatroon is schoner en het patroon dat de Heap-documentatie nu aanbeveelt. Het uitgestelde bootstrappatroon is de juiste keuze wanneer de uitgever een stabiele globale referentie nodig heeft voor identiteitsstitching maar auto-capture niet kan laten activeren vóór toestemming.
De cookies en opslag die Heap schrijft
Het Heap-fragment schrijft de volgende identifiers bij initialisatie, die allemaal niet-essentieel zijn en toestemming vereisen: _hp2_id.{envId} met een vervaltijd van 14 maanden met de gebruikersidentifier, _hp2_ses_id.{envId} met een sessievervaltijd van 30 minuten, _hp2_props.{envId} voor steekproeffrequentie en eigenschapspropagatie, en _hp2_loaded als laadmarkering. De Contentsquare-geïntegreerde sessie-replaymodule voegt een opnamebuffer in het geheugen toe die elke paar seconden naar het Heap-eindpunt spoelt en kan afzonderlijk een kleine replay-sessie-identifier bewaren. Het intrekken van toestemming moet daarom zowel de _hp2_-cookies laten verlopen als een verzoek tot verwijdering signaleren via de GDPR-API van Heap voor de eerdere opnames en gebeurtenisstroom van de gebruiker.
Heap koppelen aan toestemmingskaders
Heap implementeert niet standaard IAB TCF of het IAB Global Privacy Platform — het is een first-party productanalytics platform, geen advertentietechnologieleverancier — maar integreert wel met Google Consent Mode v2 via uitgeversijdige bruggenbouw, stelt een native opt-in en opt-out API beschikbaar, en ondersteunt een gevoelige-eigenschap redactielaag die werkt ongeacht de toestemmingsstatus. Het patroon dat een beoordeling door een toezichthouder doorstaat, behandelt elke Heap-module als een afzonderlijke poort gekoppeld aan een specifiek CMP-signaal.
- Auto-capture en de kerngebeurtenisstroom zijn gebonden aan het analysedoel. In TCF-termen is dit het meest doorgaans doel 8 (prestaties van inhoud meten) gecombineerd met doel 1 (informatie opslaan en/of openen). Voor Consent Mode wordt dit gekoppeld aan analytics_storage.
- Sessie-replay via de Contentsquare-integratie zit achter een strengere, afzonderlijke poort omdat replay de weergegeven DOM en eventuele niet-gemaskeerde invoervelden vastlegt, en de sessie-replaybegeleiding van de EDPB het behandelt als een categorie die expliciete en gedetailleerde toestemming vereist die verschilt van generieke analyses.
- Gebruikersidentificatie via heap.identify() kan worden uitgevoerd met een tijdelijke sessie-identifier op basis van gerechtvaardigde belangen wanneer de gebruiker anoniem is, maar het koppelen van identificatie aan een persistente first-party identifier over sessies heen vereist dezelfde toestemming als analyses, omdat dat het moment is waarop de identifier een traceerbaar gebruikersniveau-gegevenspunt wordt.
- Cross-site of cross-product identiteitspropagatie via de identiteits-API vereist de marketingpoort omdat dit de grens overschrijdt van productanalytics naar marketingattributie op gebruikersniveau.
Het integratiepatroon dat werkt
De referentie-implementatie heeft vier delen: een CMP die een toestemmingswijzigingsgebeurtenis in realtime blootstelt, een uitgestelde bootstrap die Heap laadt met auto-capture uitgeschakeld, een toestemmingsluisteraar die auto-capture inschakelt en de sessie-replaybuffer start wanneer de relevante poorten opengaan, en een intrekkingspad dat heap.resetIdentity() aanroept, auto-capture stopt, de _hp2_-cookies laat verlopen en een verwijderingsverzoek verstuurt via het GDPR-eindpunt van Heap.
Webimplementatie
Op het web is het schoonste patroon het voorwaardelijk laden van het Heap-fragment — de <script>-tag wordt alleen geïnjecteerd nadat de analyticsacategorie is verleend. Abonneer op de toestemmingswijzigingsgebeurtenis van het CMP. Wanneer de analyticsacategorie overgaat naar true, injecteer het Heap-fragment met secureCookie: true, disableTextCapture: false voor volledige auto-capture en eventuele omgevingsspecifieke configuratie. Wanneer de toestemming voor sessie-replay overgaat naar true en de Contentsquare-integratie is ingeschakeld, activeert de replaybuffer automatisch. Wanneer een poort wordt ingetrokken, roep heap.resetIdentity() aan gevolgd door het verwijderen van het Heap-scriptelement, laat de _hp2_-cookies verlopen via document.cookie en roep de GDPR-verwijderings-API aan voor de identifier van de gebruiker.
Redactie van gevoelige eigenschappen
Heap wordt geleverd met een redactielaag die werkt ongeacht de toestemmingsstatus en die uitgevers moeten gebruiken ook wanneer toestemming is verleend. Het attribuut data-heap-redact-text op een formulierveld onderdrukt de vastgelegde tekstinhoud; het attribuut data-heap-redact-attributes onderdrukt de elementattributen. Onder de bijzondere-categorieregels van de AVG en de definitie van gevoelige persoonsinformatie van de CCPA moet elk veld dat gezondheidsinformatie, financiële details, overheidsnummers, biometrische gegevens, nauwkeurige geolocatie of inhoud van privécommunicatie kan vastleggen, de redactieattributen gebruiken ongeacht de toestemmingsstatus van de gebruiker. Het instellen van de attributen op formulierniveau is het veiligste patroon — het onderdrukt het volledige formulier zelfs wanneer een ontwikkelaar een nieuw veld toevoegt dat ze vergeten individueel te markeren.
Regioselectie: EU versus VS-gegevensresidentie
Heap beheert afzonderlijke EU- en VS-opname-eindpunten. Voor EER- en VK-verkeer is het EU-eindpunt de juiste standaard; het houdt opname, verwerking en opslag binnen de EER en vermindert de Schrems II-blootstelling die elke VS-regio-analyseimplementatie met zich meebrengt. Het eindpunt wordt ingesteld via de fragmentconfiguratie en kan niet achteraf worden gewijzigd — bestaande gegevens blijven waar ze voor het eerst zijn opgenomen. Voor uitgevers die een Heap-uitrol plannen, is het daarom de moeite waard om de regio te bevestigen vóór opschaling en de keuze te documenteren in de privacyverklaring zodat de rechtsgrondketen helder is van verzameling tot opslag.
De integratie en het auditspoor valideren
De validatiestap is wat toezichthouders controleren en wat uitgevers het vaakst overslaan. Een correct geïntegreerde Heap-implementatie moet vier tests in volgorde doorstaan. Ten eerste moet een schone browsersessie met de banner weergegeven maar geen keuze gemaakt, nul verzoeken aan heapanalytics.com produceren buiten de SDK-bestandsophaling en nul _hp2_-cookies in document.cookie. Ten tweede moet het weigeren van analyses die toestand handhaven — geen auto-capture, geen identifier, geen opname. Ten derde moet het accepteren van analyses de verwachte _hp2_id-cookie produceren met de juiste SameSite-attributen en gebeurtenisverkeer dat naar het geconfigureerde regio-eindpunt stroomt. Ten vierde moet het intrekken van toestemming onmiddellijk verdere auto-capture en replay stoppen, de _hp2_-cookies laten verlopen en een verwijderingsverzoek activeren via de GDPR-API van Heap.
De verwachting van het auditspoor onder de EDPB-cookiebannerrichtlijnen van 2023 en de vernieuwde prioriteiten van de taakgroep 2026 is dat de uitgever voor elke gegeven gebeurtenis in het Heap-project kan bewijzen dat de gebruiker die het genereerde geldige toestemming had gegeven op het moment van vastlegging. Het standaardpatroon is om de toestemmingsversie en tijdstempel in te stellen als gebruikerseigenschappen op de unieke ID via heap.addUserProperties({ consent_version: 'v3', consent_ts: ts }) zodat elke afzonderlijke gebeurtenis terug te traceren is naar een specifieke toestemmingslogboekvermelding. Een correct beveiligd deployment, gecombineerd met redactieattributen die gevoelige velden standaard onderdrukken en een verwijderingspad dat bij intrekking activeert, is wat het auto-capture model van Heap transformeert van een regelgevend concentratierisico naar een van de krachtigste en meest verdedigbare onderdelen van de productanalytics-stack van een uitgever.