section_view: event_spec
How this site is measured.
The full list of what this site measures and how it treats privacy, published in the open. Every client gets their own version of this document for their own site.
01
The event spec
Every event fired on this site, what triggers it, the parameters it carries, and the GA4 event it maps to. The console panel on the home page prints these live during a visit.
| Event | Trigger | Params | GA4 event |
|---|---|---|---|
consent_update | Banner accept or decline | consent_state | consent_update (custom) |
cta_click | Any primary or secondary CTA | cta_id, cta_location | cta_click (custom) |
section_view | A labelled section scrolls into view (once each) | section_id | section_view (custom) |
scroll_depth | 50 and 90 percent of page height | percent, page_path | scroll (custom, params percent + page_path) |
form_start | First interaction with audit form | form_id | form_start (custom) |
form_submit | /thanks page load after submit | form_id | generate_lead (marked as a key event) |
outbound_click | Click on external link | link_url | click (outbound, param link_url) |
form_submit maps to generate_lead, marked as a key event in GA4.
02
Consent
Before a choice is made, nothing is sent, because nothing is loaded. Consent Mode v2 defaults every storage type to denied, and Google Tag Manager itself is not injected until the banner is accepted. A decline means Google's scripts never load at all, not even for anonymous pings.
The banner is small, not a wall. There are two buttons, accept and decline, and both are real choices. Acceptance only ever grants analytics, because this site runs no ad pixels and the advertising signals stay denied permanently. A decline changes nothing about how the site works. The choice is stored in a first-party cookie for twelve months.
The console panel on the home page shows this in real time. Before
acceptance, events read queued: consent pending. After,
they read pushed. Nothing is hidden and nothing fires
early.
03
The tools
Google Tag Manager
The single tag pipe. It is not loaded until the banner is accepted; after that, every tag on this site runs through GTM and nothing else.
Google Analytics 4
Traffic and events, configured inside GTM rather than hardcoded in the site. Loads only after acceptance, under Consent Mode v2.
Microsoft Clarity
Heatmaps and session replay, used to improve the pages. Also gated behind consent. Nothing records before acceptance.
HubSpot
The CRM. It receives what is typed into the audit form, plus a note of the page and source behind the visit, and only on submission. It is not used for passive tracking.
04
Not collected
- No data of any kind before you accept. Google's scripts are not even loaded until then; decline and they never load at all.
- No cross-site advertising cookies. This site runs no ad pixels, and accepting only ever grants analytics, never advertising signals.
- No form field contents in analytics. Your audit details, plus the page and source that brought you here, go only to HubSpot and my email.
- No session recordings or heatmaps until you accept. Clarity is gated on consent.
- No fingerprinting, no data brokers, no selling anything to anyone.
Questions about any of this go to mail@forrestblade.com.