A lead generation site has one job: identify potential customers and initiate a conversation. The events that matter are the ones that represent that initiation — not engagement proxies, not scroll depth for its own sake, not time on page. The 5 events below are the conversion-signal events that, when implemented correctly, give you everything you need to attribute leads to sources, optimise campaigns, and understand your funnel.

Form_submit (enhanced measurement) is not in this list. Enhanced measurement's form_submit fires when the submit button is clicked — including on failed submissions. It is not a conversion event. It's an engagement signal at best, and a misleading one at that. Use it for awareness; don't rely on it for conversion tracking.

The 5 Events

01
Contact Form Success contact_form_success

Fires after the server confirms a form submission was received successfully — not when the submit button is clicked. The implementation distinction matters: fire this event on the thank-you page load, on a successful API response from your form handler, or when HubSpot/Salesforce confirms the lead was created. Not on button click.

Parameters to include: form_type (contact, demo, quote, enquiry), lead_source_page (the URL where the form was submitted), and optionally form_id if your site has multiple forms that should be tracked distinctly.

Mark this as a conversion in GA4 (Admin → Conversions) and import it into Google Ads. This is the primary conversion event that your campaigns should optimise against.

02
Phone Click phone_click

Fires when a user clicks a tel: link. For many service businesses — law firms, contractors, medical practices, financial advisors — phone is the primary conversion channel, and most GA4 setups don't track it at all. A phone click is a strong buying intent signal even if the call isn't tracked end-to-end.

Parameters to include: phone_number (to identify which number was clicked if you have multiple), page_location (automatically included by GA4).

Enhanced measurement's outbound click tracking will pick up phone clicks if they're formatted as tel: links — but with the link_url parameter set to tel:+1555... rather than a web URL, it's cleaner to track phone clicks explicitly with a GTM trigger on clicks where the link URL contains tel:.

Mark as a conversion. Phone clicks convert at a higher rate than contact form submissions on most service sites — knowing which channels drive calls vs form fills is strategically important for campaign allocation.

03
Chat Initiated chat_started

Fires when a user initiates a live chat conversation — not when the chat widget opens, not when the window expands, but when the user sends their first message. Most live chat platforms (Intercom, Drift, Zendesk Chat, LiveChat) expose a JavaScript API or a callback you can listen to for the conversation start event.

Check your chat platform's developer documentation for the event to listen to. For Intercom, it's typically the onShow or onMessage callback. For Drift, it's the startConversation event.

This is a high-intent signal — users who initiate chat are significantly more likely to convert than users who only browse. Tracking it alongside form submissions gives you a complete picture of lead volume and allows campaign attribution to include chat-initiated leads.

04
Content Download content_download

Fires when a user downloads a lead magnet — a whitepaper, case study, pricing guide, or checklist — typically after submitting an email address to access gated content. This is a micro-conversion: not a direct sales enquiry, but a clear intent signal that separates casual browsers from users willing to identify themselves.

Parameters to include: content_title (the name of the resource), content_type (whitepaper, case_study, pricing_guide), download_method (gated vs ungated).

For gated content, fire this event after the email is confirmed — not just when the download button is clicked. For ungated content (PDFs that download directly), enhanced measurement's file download event covers this automatically — no separate implementation needed unless you want custom parameters.

Mark ungated downloads as engagement events, not conversions. Mark gated content downloads (email captured) as conversions, since you've received an identifiable lead.

05
Booking / Calendar Click booking_initiated

Fires when a user clicks to book a call, schedule a demo, or access a calendar tool (Calendly, HubSpot Meetings, Cal.com). This is distinct from a form submission — the user is committing to a specific time slot, which represents higher intent than a contact form.

If your booking tool is embedded on your site, fire the event when the user clicks the booking link or when the embedded calendar loads (the widget load is a strong proxy for booking intent). If the booking tool opens in a new tab or window, fire on the outbound click to the booking URL.

Parameters: booking_type (demo, consultation, strategy_call), booking_tool (calendly, hubspot, etc.).

If the booking is completed on a tool you control, also fire a booking_completed event on confirmation — this gives you both intent (click) and completion (confirmed slot) signals, which helps you understand abandonment in the booking flow itself.

Connecting to Campaign Optimization

Tracking these 5 events in GA4 is the first step. The second step is making them useful for campaign optimization:

  1. Mark each as a conversion in GA4 (Admin → Conversions). Only events you want to optimise campaigns against should be marked as conversions — marking micro-conversions like content downloads as conversions dilutes your conversion data for campaigns.
  2. Import your primary conversion events into Google Ads via the GA4–Google Ads link. Your contact form success and phone click events should be the primary conversions campaigns bid against.
  3. Set up offline conversion import if you can track lead-to-customer outcomes. A contact form submission that never closes isn't the same as one that becomes a $50k contract — import that outcome back into GA4 so your campaigns optimise against quality, not volume.
For B2B lead gen, the most valuable thing you can do is track which channels produce qualified leads, not just raw leads. GA4's data import feature lets you bring CRM qualification data back into GA4, so you can see which traffic sources produce sales-qualified opportunities rather than just form fills. See our GA4 data import guide for how to set this up.

GA4 Health Check audits your event tracking setup to verify that conversion events are firing correctly and that your key conversion signals are reaching Google Ads. Run a 60-second audit to check your lead gen tracking configuration.

Travis Gunn
Founder of GA4 Health Check. Working with Google Analytics since 2013, with over 250 clients audited across almost every industry vertical. 100% Job Success on Upwork for over a decade.