July 9, 2026 · 7 min read
GA4 + GTM Setup for a Lead-Gen or Dealership Site
Most lead-gen sites think they're tracked. Here's what's usually missing — and why the gap matters more for dealership and inventory-driven sites than almost any other business.
Almost every lead-gen site I audit has Google Analytics installed. Very few of them are actually tracking what matters. “Installed” and “tracked” are different claims, and the gap between them is usually where the marketing budget is quietly being wasted.
“Tracked” vs actually tracked
A pageview firing when someone lands on your contact page tells you they arrived. It tells you nothing about whether they submitted the form. Most GA4 installs I see are wired to count visits, not outcomes — which means the reports look busy and active while answering none of the question that actually matters: which pages and which ads produced a real lead.
The lead-gen-specific tracking gap
A lead-gen site usually has more than one type of conversion, and they're rarely worth the same thing to the business. A contact form, a quote request, a financing application and an appointment booking are four different intents, and lumping them into one generic “form submission” event throws away the exact information that would tell you which channel is producing your highest-value leads versus your lowest.
Why dealership sites are uniquely hard
Dealership and inventory-driven sites add a layer most GA4 setups aren't built for: tracking has to be tied to specific vehicles or products, not just pages, which means events need to carry real inventory data (item, price, VIN or SKU) rather than a static page name. On top of that, a huge share of dealership conversions happen off-form entirely — a click-to-call or click-to-text on a vehicle listing — and if those aren't wired as conversions, a large share of your actual leads never shows up in any report at all.
The GA4 + GTM setup that actually works
- One Google Tag Manager container managing every analytics and marketing tag — not tags added ad hoc across different pages over time
- Custom dataLayer events built at the template level, so every vehicle or product page fires consistent, structured data automatically
- Each lead type registered as its own GA4 conversion — contact, quote, trade-in, financing, appointment — not one generic event
- Click-to-call and click-to-text wired as conversions, not left untracked because they don't go through a form
- Verification that events fire once per real action, not duplicated by a second tag or a page reload
How to audit your current setup in ten minutes
- Open GTM's Preview mode and submit a real test form — confirm exactly one tag fires, not zero and not three
- Check GA4 Realtime while you do it — does the conversion show up, and is it labeled specifically rather than as a generic event
- Click a phone number or text link on a listing page and confirm something actually fires
- Submit the same form twice in a row — check whether your reports now show two leads for one real inquiry
- Pull up last month's conversions by source — if every channel shows suspiciously similar numbers, they're probably not measuring anything real
None of this requires a bigger marketing budget. It requires the tracking layer to actually measure the thing you're trying to optimize — which is usually a half-day of setup work standing between a business and knowing, for the first time, which of its ads are actually working.