document: tracking_plan

applies_to: forrestblade.com

status: public

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.

listening… : live event log. Read how this site is measured