If your analytics only reports pageviews, you’re flying blind. This guide shows how to implement Google Analytics 4 (GA4) with Google Tag Manager (GTM), name events correctly, and measure real outcomes—form submissions, phone/email clicks, downloads, and bookings.
What you’ll set up
- GA4 property with data streams
- GTM container to manage tags without code deploys
- Key events & conversions (e.g., 'generate_lead', 'submit_form', 'click_phone')
- Search Console connection for queries & indexing insights
- Basic dashboards that tie marketing to leads
Step 1 — Create a GA4 property
- In Google Analytics, create a GA4 property → add Web data stream for your domain.
- Copy the Measurement ID (looks like 'G-XXXXXXX').
- Disable Enhanced Measurement items you don’t want (you’ll control events through GTM).
Tip: Keep Enhanced Measurement “on” to start, but don’t rely on it for critical conversions—GTM events are more explicit and portable.
Step 2 — Install Google Tag Manager
- Create a GTM container for your site.
- Add the GTM head and body snippets to your site template (or via your CMS integration).
- In GTM, add a GA4 Configuration tag:
- Measurement ID = your 'G-XXXXXXX'
- Trigger = All Pages
- Save & submit.
Step 3 — Track meaningful events (recommended naming)
Use GA4’s recommended event names where possible—Google treats some as key conversions out-of-the-box.
Core lead events for service businesses
- 'generate_lead' — successful form completion or high-intent contact
- 'submit_form' — generic form submit (use only if you can’t confirm success)
- 'click_phone' — tap-to-call ('tel:' link)
- 'click_email' — clickto-email ('mailto:' link)
- 'file_download' — proposal/guide downloads
- 'view_item' / 'select_item' — service/package clickthroughs
- 'purchase' — if you sell templates or deposits online
Use parameters to add context (e.g., 'form_id', 'form_name', 'lead_type').
Step 4 — Implement events in GTM
A) Phone & email click tracking
Triggers
- Link Click trigger where 'Click URL starts with tel:' → name it Tel Clicks
- Link Click trigger where 'Click URL starts with mailto:' → name it Mailto Clicks
Tags
-
GA4 Event: 'click_phone'
- Parameters: 'link_url={{Click URL}}', 'link_text={{Click Text}}'
- Trigger: Tel Clicks
-
GA4 Event: 'click_email'
- Parameters: 'link_url={{Click URL}}', 'link_text={{Click Text}}'
- Trigger: Mailto Clicks
B) File downloads (PDFs, docs)
Trigger: Link Click where 'Click URL matches RegEx' '.(pdf|docx?|xlsx?|pptx?)$'
Tag: GA4 Event 'file_download'
Parameters: 'file_url={{Click URL}}', 'file_name={{Click URL}}'
C) Form submissions (no code access)
If your forms redirect to a “thank you” page, use a Page View trigger on that URL and fire 'generate_lead'.
If your forms submit AJAX (stay on the same page), listen for a success signal:
- Many form builders dispatch a DOM event or add a success element.
- Use a DOM Element or Custom Event trigger in GTM.
Example (Custom Event trigger named 'form_success'):
- Tag: GA4 Event 'generate_lead'
- Parameters: 'form_name=contact', 'lead_type=quote'
- Trigger: Custom Event with Event Name = 'form_success'
If you control the form code, push a dataLayer event on success:
<script> // Call this only after the form is actually accepted by the server window.dataLayer = window.dataLayer || []; window.dataLayer.push({ event: "form_success", form_name: "contact", lead_type: "quote" }); </script>
Then map those to GA4 event parameters in the tag.
Step 5 — Mark conversions in GA4
In GA4 Admin → Data display → Conversions, toggle the events you care about:
- 'generate_lead' (primary)
- 'click_phone', 'click_email' (optional)
- 'file_download' (optional)
- Any checkout or booking events
Keep your “Conversions” list focused—too many will muddy reports.
Step 6 — Connect Search Console
- In GA4 Admin → Product Links → Search Console, link your property.
- In Search Console, verify your domain and submit your sitemap.
- Use the Search Console reports in GA4 to correlate queries → landing pages → conversions.
Step 7 — QA & publish
- Use Preview mode in GTM and the DebugView in GA4 to verify events.
- Test on desktop and mobile.
- Publish the GTM container once everything fires correctly.
Event naming & parameter cheat sheet
Event names (copy/paste)
generate_lead submit_form click_phone click_email file_download view_item select_item purchase
Useful parameters
form_name, form_id, lead_type link_url, link_text file_url, file_name page_location, page_referrer value, currency
Simple scorecard dashboard (what to watch)
- Leads by source/medium (generate_lead)
- Phone vs. form split (click_phone vs. generate_lead)
- Top landing pages → conversion rate
- Core Web Vitals trend (from PSI/Site Speed tooling)
- Organic queries (via Search Console link)
Troubleshooting
- No data in GA4? Check the GA4 Config tag is firing on all pages and that the Measurement ID is correct.
- Events show in GTM Preview but not GA4? Open DebugView (GA4) while testing; ensure ad blockers aren’t suppressing.
- Thank-you page fires twice? Exclude page reloads or ensure the confirmation route doesn’t double load.
- Cross-domain forms? Configure cross-domain measurement in GA4 data stream settings.
Next steps
- Add UTM parameters to campaigns (e.g., email, social, ads).
- Layer in scroll depth or engagement time if relevant.
- If you sell online, implement full ecommerce events for revenue attribution.
With GA4 + GTM, you’ll know which channels generate qualified leads—not just clicks—and you can double down on what works.



