# Analytics and Google Ads — launch checklist

Updated 14 October 2026 for https://jackcousins.com. No ads or account settings were changed by this website update.

## What the website now does

- Uses the existing GA4 ID `G-4G07Y3GTZP`. Confirm this is your property before deployment.
- Loads Google Analytics only on `jackcousins.com` / `www.jackcousins.com`, after analytics consent. Draft Netlify URLs and local previews do not send production analytics.
- No Google tag, analytics events or campaign session storage before consent. Rejecting keeps them off. Withdrawing consent stops subsequent collection and clears the website's stored campaign attribution; it does not erase data previously sent to Google.
- Keeps advertising storage, advertising user data, personalisation and Google Signals off. No remarketing, enhanced conversions, Google Ads tag or invented conversion ID has been installed.
- Accepts only named custom event fields; does not deliberately send contact details, form messages, mortgage amounts or calculator inputs. Non-campaign query parameters and referrer queries are removed from the configured pageview URL.
- Stores approved campaign parameters for the browser session only after consent. Use non-personal campaign names. Do not put customer details into any URL, UTM, event or page title.

## Events and what they mean

| Event | Meaning | Suggested role |
| --- | --- | --- |
| `generate_lead` | Netlify accepted the website or game callback submission | Primary lead conversion after end-to-end testing |
| `form_start` | Visitor started the enquiry form | Diagnostic only |
| `lead_form_fallback` | Delivery failed and a fallback was offered | Diagnostic only, never a lead |
| `click_to_call`, `click_whatsapp`, `click_email` | Clicked a contact route; not a completed conversation | Secondary |
| `book_appointment` | Clicked the Lockhart Murphy booking page or a Calendly booking link; not a confirmed booking | Secondary |
| `credit_report_partner_click` | Clicked the approved Checkmyfile partner link; not a signup, commission, credit check or mortgage lead | Secondary/reporting only |
| `rate_lock_start`, `rate_lock_replay`, `rate_lock_game_over` | Game engagement | Secondary/reporting, not mortgage leads |
| `rate_lock_leaderboard_post`, `rate_lock_promo_play` | Game interaction | Secondary/reporting |

A successful HTTP form response does not prove notification email delivery or lead quality. A denied analytics choice means the event is intentionally not collected.

The credit-report event matches only the approved partner URL. Its optional `credit_placement` parameter is restricted to `hero` or `report-options`; it excludes credit-planner answers, scores, destination URLs, queries and personal information. Create an event-scoped custom dimension for `credit_placement` if placement reporting is wanted. Keep this event separate from `generate_lead`; signups and any commission must be confirmed through the partner reporting system, not inferred from clicks.

## Before spending — account-owner steps

1. Deploy this version to the existing Netlify project. Keep the previous deploy for rollback. Enable Forms detection and notifications for `website-enquiry` and `rate-lock-callback`.
2. On the production domain, use your own details for a clearly labelled contact test, one campaign-form test and a game callback. Check Netlify submissions AND the inbox. Failed submissions must not appear as leads.
3. In the intended GA4 property, confirm the web stream ID. Disable Enhanced Measurement **Form interactions** so automatic `form_submit` events cannot be mistaken for confirmed enquiries. Review URL/email redaction and avoid adding tags that collect form values.
4. Use Google Tag Assistant and GA4 Realtime/DebugView to verify: fresh visitor has no Analytics request until accept; accept produces one pageview; contact clicks have their own event; a partner-link click records one `credit_report_partner_click` with only an approved placement; one accepted enquiry produces one `generate_lead`; reject/withdraw stops further collection. No live property access or event reception was verified during this update.
5. Mark `generate_lead` as a key event. Link the correct GA4 and Google Ads accounts, then create the Ads conversion from that event. Review Primary/Secondary settings and select **One** for lead counting where appropriate. Do not count the same enquiry again using a thank-you-page conversion or an additional Ads tag.
6. Keep game engagement separate from mortgage-lead optimisation. Game adverts may attract players who do not need advice. Review qualified enquiries as well as traffic.
7. Obtain responsible-firm written approval for the final pages, warnings, claims and ads, and complete the applicable Google UK financial-services verification route. Technical checks are not FCA, firm or Google approval.
8. Import the 16 ad drafts from `google-search-ads.csv` with campaigns AND ads paused. Preserve Headline 1 position 1 (identity) and Description 1 position 1 (risk warning). Review every served-format preview and any truncation with the approving firm. Review automatic text assets and URL expansion before enabling anything.
9. Check final URLs, mobile rendering, country/location targeting, negative keywords, schedule and budget. Test campaign tracking with a non-personal URL, for example `?utm_source=google&utm_medium=cpc&utm_campaign=london_mortgages&utm_content=ad_1`.
10. Only start spend after the above checks pass. Check search terms, qualified enquiries and cost per qualified enquiry after launch. Reporting will be incomplete for visitors who decline analytics. Advertising data permissions remain denied; do not enable remarketing or enhanced conversions without a separate reviewed consent implementation.

## Official references checked for this update

- [Google consent modes](https://developers.google.com/tag-platform/security/concepts/consent-mode)
- [Create Ads conversions from Analytics key events](https://support.google.com/analytics/answer/10632359?hl=en)
- [Google UK financial-services verification](https://support.google.com/adspolicy/answer/15332527?co=GENIE.CountryCode%3DGB&hl=en)

This is an implementation handover, not legal advice or a guarantee of ad approval, rankings or lead volume.
