When every client's GA4 is configured differently, multi-site reporting becomes a per-client tweak job and alerts must be hand-tuned for each setup. Standardize the events, parameters, and conversion definitions across every property and the whole operation stays sane at 20+ clients.
The standard event set
GA4 ships with automatic events (page_view, session_start, scroll). For agencies the additional must-have events across every client are:
1. page_view
Automatic. Fires on every page load. Use the page_location and page_title parameters as default.
2. form_submit (or form_start + form_submit)
GA4 has enhanced measurement for form interactions. Enable it via Admin → Data Streams → Web → Enhanced measurement → Form interactions. For better control, fire your own form_submit via Google Tag Manager with a parameter form_id identifying which form on the page submitted.
3. generate_lead
The canonical GA4 lead event. Fire when a primary lead form submits successfully (not just visits the thank-you page). Include parameters: currency (USD), value (estimated lead value), form_id.
4. click (outbound + CTA)
Enable outbound click tracking via enhanced measurement. Add a custom cta_click event for primary CTAs (button on the hero, pricing-page CTA, demo-booking link). Parameters: cta_id, cta_location (header / hero / pricing / footer), cta_destination.
5. scroll (depth)
Enhanced measurement covers 90% scroll. For agencies, the 90% scroll proxy correlates well with "user actually read the page". Useful for content-heavy lead-gen sites.
The standard conversion set
Configure these as Conversions in Admin → Events → mark as conversion. Three conversions per client is the sweet spot. More than five = signal gets diluted.
- Primary conversion:
generate_lead. The main thing the site is supposed to do. - Secondary conversion:
contact_form_submitordemo_booked. The next-best signal. - Soft conversion:
cta_clickon pricing or booking page. Tracks intent even before form fills.
The standard parameter convention
Use the same parameter names across every client. This is what makes cross-client reporting work without custom field mappings per site.
| Parameter | Type | Used on | Example |
|---|---|---|---|
form_id | string | form_submit, generate_lead | "contact-hero", "demo-modal" |
cta_id | string | cta_click | "hero-primary", "pricing-cta" |
cta_location | string | cta_click | "header" / "hero" / "pricing" / "footer" |
value | number | generate_lead, purchase | 50 (estimated USD lead value) |
currency | string | generate_lead, purchase | "USD" |
page_section | string | cta_click, scroll | "pricing" / "features" / "blog" |
Custom dimensions to register
For each custom parameter you want available in GA4 reports, register a Custom Dimension in Admin → Custom definitions. Register the same set on every client property:
form_id(event-scoped)cta_id(event-scoped)cta_location(event-scoped)page_section(event-scoped)
Cross-domain and subdomain
Many client sites have a marketing subdomain plus an app subdomain. Configure cross-domain tracking once per client so the funnel is not split.
- Admin → Data Streams → Web → Configure tag settings → Configure your domains.
- Add both
example.comandapp.example.com. - Verify the
_galinker is passing in the URL when crossing.
What NOT to track
- Every button click. Tag only meaningful CTAs. Tracking every click creates noise and hits event count quotas.
- PII. Never send email, phone, name, or full URL with query params as event parameters. GA4 will flag and reject; worse, you risk policy violations.
- Internal traffic. Filter your agency IPs and the client team IPs via Admin → Data Filters.
The 10-minute audit for any new client property
When onboarding a new client, run this audit before doing anything else:
- Is GA4 receiving data (real-time report shows current activity)?
- Is enhanced measurement enabled (Form interactions, Outbound clicks, Scrolls)?
- Are conversions configured (at least one primary conversion event marked)?
- Is internal traffic filtered?
- Are cross-domain settings correct if applicable?
- Are the agency's custom dimensions registered?
- Is the data retention setting at the maximum allowed (14 months for free GA4)?
- Is Google Signals on or off per the client's privacy policy?
How standardization unlocks multi-site monitoring
When every property fires generate_lead as the primary conversion with the same parameter convention, a multi-site monitor like Parafunnel can show every client's primary conversion rate on one screen, set one alert threshold across all of them, and produce consistent client reports. Without standardization you wire each client manually.
Related reading
- How to set up GA4 alerts for conversion drops
- The one GA4 alert every agency should set up today
- How to monitor 20 client funnels without opening 20 tabs
Standardize GA4. Monitor every client.
Parafunnel auto-discovers every GA4 property in your account and applies your conversion definitions across all of them.
Try Parafunnel Free