← Keencrest cookie consent audits · PDF version

Keencrest cookie consent leak audit · Sample report: UK digital agency, Cookiebot banner. A real scan with the site's identity removed; not an audit commissioned by the site.

What uk-agency-a.example does before the visitor says yes

Page: https://uk-agency-a.example/ · scanned 2026-11-01 15:08 UTC · fresh browser, no clicks, 8 s wait

Trackers ran before consent: 5 vendor(s) that need opt-in consent loaded or set cookies before the visitor made any choice (Google Analytics, HubSpot analytics, HubSpot collected forms, LinkedIn, LinkedIn Insight Tag).

Consent banner detected: Cookiebot. Google Consent Mode default: not set in dataLayer.

After we clicked the banner's reject button (selector #CybotCookiebotDialogBodyButtonDecline) and reloaded: 4 consent-requiring vendor(s) still ran (HubSpot analytics, HubSpot collected forms, LinkedIn, LinkedIn Insight Tag). A reject that does not stop tracking is the most serious finding here.

21cookies before consent
21third-party cookies
20third-party hosts contacted
5consent-requiring vendors

1. Before consent (no interaction)

SeverityVendorWhat it isEvidence
highGoogle AnalyticsAnalytics1 request(s) to www.google-analytics.com
cookies: _ga, _ga_XXXXXXX
highHubSpot analyticsMarketing automation / visitor ID2 request(s) to js-eu1.hs-analytics.net, track-eu1.hubspot.com
cookies: __hssc, __hssrc, __hstc, hubspotutk
highHubSpot collected formsMarketing automation / visitor ID2 request(s) to forms-eu1.hscollectedforms.net, js-eu1.hscollectedforms.net
highLinkedInAdvertising / retargetingcookies: AnalyticsSyncHistory, UserMatchHistory, bcookie, bscookie, li_sugr, lidc
highLinkedIn Insight TagAdvertising / retargeting5 request(s) to px.ads.linkedin.com, snap.licdn.com
mediumHubSpot ads pixelAdvertising / retargeting1 request(s) to js-eu1.hsadspixel.net
Only the vendor's script was downloaded: no tracking hit and no cookie was seen in this scan. The vendor still received the visitor's IP address, and the tag may be waiting in a consent-hold mode; confirm it stays idle until consent.
mediumHubSpot tracking codeMarketing automation / visitor ID1 request(s) to js-eu1.hs-scripts.com
Only the vendor's script was downloaded: no tracking hit and no cookie was seen in this scan. The vendor still received the visitor's IP address, and the tag may be waiting in a consent-hold mode; confirm it stays idle until consent.
infoGoogle Tag Manager / gtag.jsTag manager (loads other tags)2 request(s) to www.googletagmanager.com
infoHubSpot formsFunctional third party1 request(s) to perf-eu1.hsforms.com
okConsent banner (stores the choice)Consent bannercookies: CookieConsent
okCookiebotConsent banner5 request(s) to consent.cookiebot.com, consentcdn.cookiebot.com
okHubSpot cookie bannerConsent banner1 request(s) to js-eu1.hs-banner.com
okLoad balancer / bot protectionLikely strictly necessarycookies: __cf_bm

2. After rejecting, on the next page load

SeverityVendorWhat it isEvidence
highHubSpot analyticsMarketing automation / visitor ID2 request(s) to js-eu1.hs-analytics.net, track-eu1.hubspot.com
cookies: __hssc, __hssrc, __hstc, hubspotutk
highHubSpot collected formsMarketing automation / visitor ID2 request(s) to forms-eu1.hscollectedforms.net, js-eu1.hscollectedforms.net
highLinkedInAdvertising / retargetingcookies: AnalyticsSyncHistory (left over), UserMatchHistory (left over), bcookie, bscookie (left over), li_sugr, lidc (left over)
highLinkedIn Insight TagAdvertising / retargeting4 request(s) to px.ads.linkedin.com, snap.licdn.com
mediumGoogle AnalyticsAnalytics2 request(s) to www.google-analytics.com
Consent Mode signal on hits: denied
Google Consent Mode v2 in advanced mode: hits were sent with storage denied (cookieless pings). No cookie was set, but the request still reached Google before any choice; some EU regulators treat this as needing consent too.
mediumHubSpot ads pixelAdvertising / retargeting1 request(s) to js-eu1.hsadspixel.net
Only the vendor's script was downloaded: no tracking hit and no cookie was seen in this scan. The vendor still received the visitor's IP address, and the tag may be waiting in a consent-hold mode; confirm it stays idle until consent.
mediumHubSpot tracking codeMarketing automation / visitor ID1 request(s) to js-eu1.hs-scripts.com
Only the vendor's script was downloaded: no tracking hit and no cookie was seen in this scan. The vendor still received the visitor's IP address, and the tag may be waiting in a consent-hold mode; confirm it stays idle until consent.
infoGoogle Tag Manager / gtag.jsTag manager (loads other tags)2 request(s) to www.googletagmanager.com
infoHubSpot formsFunctional third party1 request(s) to perf-eu1.hsforms.com
okConsent banner (stores the choice)Consent bannercookies: CookieConsent (left over)
okCookiebotConsent banner5 request(s) to consent.cookiebot.com, consentcdn.cookiebot.com
okHubSpot cookie bannerConsent banner1 request(s) to js-eu1.hs-banner.com
okLoad balancer / bot protectionLikely strictly necessarycookies: __cf_bm (left over)

How to fix

  1. Google Analytics. Load GA4 only after consent: in GTM, give the GA4 tags an 'analytics_storage' consent requirement, or set Google Consent Mode v2 defaults to denied before gtag/GTM loads: gtag('consent','default',{ad_storage:'denied',analytics_storage:'denied',ad_user_data:'denied',ad_personalization:'denied'}). The CMP then sends the 'update' on accept.
  2. HubSpot analytics. Turn on HubSpot's consent setting (Settings > Privacy & Consent > Cookies) or load js.hs-scripts.com only after consent.
  3. HubSpot collected forms. Visitor-identification and marketing-automation scripts need prior consent. Gate them behind the marketing category.
  4. LinkedIn. LinkedIn cookies came from the Insight Tag or an embed; gate both behind marketing consent or replace embeds with a click-to-load placeholder.
  5. LinkedIn Insight Tag. Fire the Insight Tag only after marketing consent (GTM consent requirement or CMP category).
  6. HubSpot ads pixel. Advertising and retargeting tags need prior opt-in consent in the EU and UK. Move them behind the marketing category of the consent banner.
  7. HubSpot tracking code. HubSpot's code sets __hstc/hubspotutk on load unless its own cookie banner or 'Require consent' setting is on. Turn on HubSpot's consent banner setting or load the script from the CMP's marketing category.

General rule: set every tag's consent requirement in the tag manager, load the banner script first, and set Consent Mode defaults to denied before any Google tag. Re-scan after each change.

Cookies we could not classify

Not on our list. Each one is either strictly necessary (fine without consent) or needs to move behind the banner. Your developer should know which.

CookieDomainPartyExpires in
preferred-localea third-party domain (withheld)third365 days

Other third-party hosts contacted before consent

CDNs, fonts and APIs that are not on our tracker list. Usually harmless, listed so nothing is hidden.

6 other host(s): CDNs, fonts and APIs; names withheld in this public sample

localStorage keys written before consent

li_adsId

Method and limits

Keencrest is an AI-run business owned by Alex Lin; this report was produced by automation.