folder_open Analytics & Attribution

Google Tag Manager setup checklist for AU lead-gen

Martin Marinov Martin Marinov
18 min read
Topics google-tag-managergtm-setup-checklistenhanced-conversionslead-gen-trackingdata-layer-events

Open Google Ads in a Sydney or Melbourne account on a Monday and the conversion column still looks healthy. Open GA4 next to it and the same enquiry form is counted twice, or not at all after a Webflow republish. That gap is a Google Tag Manager problem, not a media problem. Australian lead-gen sites live on form submits, click-to-call, and booked consults. If the container is messy, smart bidding is bidding on noise while you still get the media invoice in full.

Another tactics list will tell you to “add the Meta pixel”. A scored audit tells you whether the data layer survives a redesign, whether Enhanced Conversions is actually firing, and whether Google Ads and Meta are both claiming the same quote request. Failing here does not look like a red GTM error. It looks like booked work that never shows in the CRM, or a CPL that looks cheap because thank-you page views are tagged as leads.

Use this as a self-audit. Score the container, find the leaks, then spend 30 days repairing, not rewriting the media plan. If you already run Google Tag Manager and events as a named workstream, treat this as the inspection sheet, not a replacement for that work.

Eleven container checks that decide if Australian enquiry numbers can be trusted

Work through these in Preview on the live domain, not on a staging URL that never sees paid traffic. Inspect the published container, the data layer on the thank-you path, and the conversion actions in Google Ads and Meta Events Manager. A pass means you could defend the number in a board pack. A fail means you should not scale spend until it is fixed.

Audit scorecard

  1. One GTM snippet, one published container View source and the Network tab

    One GTM snippet, one published container View source and the Network tab. You want a single GTM-XXXX load in the head, consent-aware if you use a CMP, and no leftover UA or hard-coded gtag.js fighting it. Duplicate containers are common after a Melbourne agency handover or a Shopify-to-Webflow move. The cost is double-counted form events, inflated conversion volume, and automated bidding that thinks you are twice as efficient as you are.

  2. Workspace hygiene and named versions

    Open Versions. You should see dated, human-readable notes (e.g. “2026-06: HubSpot form listener + call click”) and a small number of live workspaces. Orphan drafts, “Copy of Copy of container”, and unpublished changes sitting for months are a fail. When a Brisbane developer ships a new landing template, nobody knows which version to roll back. You lose a week of Google Ads learning because the wrong tag went live on Friday.

  3. Data layer events, not brittle CSS clicks Inspect form success

    Data layer events, not brittle CSS clicks Inspect form success. Good looks like a push such as form_submit or generate_lead with form_id, page_type, and lead_type (quote, demo, callback). Fail is a Click trigger on button.btn-primary that dies the moment the designer restyles the CTA. Australian lead-gen sites change offers constantly (end of lease, strata, seasonal tradie demand). If the trigger is a class name, your conversion history resets every redesign.

  4. Thank-you URL is not your only conversion Page Path contains /thank-you/

    Thank-you URL is not your only conversion Page Path contains /thank-you/ is fine as a backup, never as the only fire. SPA forms, HubSpot embeds, and Typeform never hit that URL. You then under-report real enquiries and over-report people who refresh the thank-you page. Pair a data layer event with a unique confirmation URL, and fire once per session with a tag sequencing / once-per-event setting.

  5. Google Ads conversion tagged once, with Enhanced Conversions In Google A

    Google Ads conversion tagged once, with Enhanced Conversions In Google Ads, one primary conversion per genuine lead type, imported or tagged via GTM, not both. Enable Enhanced Conversions (user-provided data hashed in GTM or via the Google tag). Privacy changes and blockers already strip 20%+ of conversion data. Without first-party match keys, Performance Max (which “drives the bulk now” in many AU accounts) optimises on a thin signal. Duplicate conversion actions are how last-click models count the same job twice.

  6. GA4 events mapped, not a second source of truth GA4 should receive gener

    GA4 events mapped, not a second source of truth GA4 should receive generate_lead (or your equivalent) with the same parameters GTM already has. Mark it as a key event. Do not also fire a separate “GA4 conversion” from a different trigger. When Ads says 41 leads and GA4 says 27, the first job is trigger alignment, not a new dashboard. If you cannot explain the gap in one sentence, score this a fail.

  7. Meta pixel and CAPI not double-firing the same form Preview the Lead eve

    Meta pixel and CAPI not double-firing the same form Preview the Lead event. Browser pixel plus Conversions API is correct if event_id is shared so Meta deduplicates. Two Lead events with no event_id is a fail: Event Match Quality looks busy while CPA in-platform diverges from reality. AU teams often add CAPI via a plugin and forget the GTM pixel is still live. Deduplicate or pick one path. Then confirm the event is Lead, not PageView, on form success.

  8. Click-to-call and click-to-email as first-class events Mobile still take

    Click-to-call and click-to-email as first-class events Mobile still takes the majority of paid search clicks, and conversion rates lag desktop. If your Perth or Gold Coast traffic is calling from the listing, a form-only conversion set is lying. Track tel: and mailto: clicks with a dedicated event, fire to Ads as a secondary (or primary if that is how you sell), and do not count the same session as a form lead if they also submit. Call tracking numbers that rewrite the DOM must still hit GTM after the swap.

  9. Consent mode and CMP actually gating tags If you run a consent banner (c

    Consent mode and CMP actually gating tags If you run a consent banner (common on AU sites selling to consumers and mixed B2B), tags should wait for consent_update. Ads and Analytics in denied state should use consented / modelled behaviour, not fire pixels anyway. A fail is every marketing tag set to All Pages with no exception. That is both a compliance risk and a reason your reported conversion rate will never match the CRM.

  1. 0 UTMs survive the landing handoff Paid traffic to a dedicated landing page should keep utm_source, utm_medium, utm_campaign through form submit into hidden fields or the data layer. Cross-domain or a thank-you on a different host that drops query strings is a fail. You then cannot tell Google Ads from organic branded, and you cannot kill the 20-30% of SEM waste that sits on irrelevant queries. Build links with a consistent builder and test a live paid URL, not a naked domain.

  2. 1 Post-click proof: the form actually completes GTM can fire perfectly on a broken form. Watch real sessions for rage clicks, validation errors, and drop-off on GST-inclusive price fields or long “how did you hear about us” dropdowns. HeyLead Insights is the right check here: session recordings and heatmaps show whether the enquiry form is the leak, not the tag. If INP is poor or the page fails Core Web Vitals (fewer than 60% of origins pass all three Core Web Vitals on mobile (HTTP Archive CWV report, Q1 2025)), tags fire late or not at all on mobile. Score a fail if you have never watched ten form sessions from paid traffic.

If several of those already look ugly, pause new campaign builds. Cleaning the container is cheaper than another month of CPC climbing year on year, while 20-30% of SEM still burns on junk queries and misaligned pages.

How Australian teams should grade the container before they touch budget

Give each item pass, weak, or fail. Pass: you verified it this week in Preview and in the live ads account. Weak: it works on desktop Chrome and nowhere else, or it works until the next CMS publish. Fail: duplicate fires, missing events, or you cannot find the tag. Do not average the scores. One fail on duplicate Google Ads conversions outweighs eight tidy naming conventions.

Fix order is not a debate. Tracking before scale. Intent and event quality before budget. Speed and form completion before new creative. If Enhanced Conversions and CAPI dedup are fails, do not raise Performance Max. If click-to-call is untracked on a mobile-heavy account, your “lead” CPA is fiction. If the data layer dies on redesign, stop letting developers ship templates without a GTM regression in staging.

Weak items can wait a sprint if they are naming and folders. Fail items that change the conversion count go this week. That is the whole philosophy. You are protecting signal quality so automated bidding has something honest to learn from, not decorating the container.

When the container is the bottleneck, a focused Google Tag Manager and events cleanup beats another media restructure. Keep the campaigns. Repair the events they optimise toward.

Not sure where your funnel leaks?
Get a free marketing audit - we review your search, ads, and landing pages and send back what to fix first.
Get a free audit

Google Tag Manager setup checklist for lead-gen sites in Australia

A 30-day repair sequence that leaves the media plan alone

You are not launching a new channel. You are making the existing Google Ads and Meta numbers defensible in AUD. Work in this order so you do not reset learning twice.

30-day fix

  1. Days 1-3: inventory. Export the container, list every conversion action in Google Ads and every Meta pixel event, and screenshot Preview on the highest-spend landing page. Note duplicates in a single sheet.

  2. Days 4-8: kill doubles. One Google Ads primary per lead type, one GA4 key event, Meta Lead with event_id. Pause or remove the extras. Accept that reported volume will drop. That drop is honesty, not a demand problem.

  3. Days 9-14: data layer. Work with whoever owns the site to push form_submit (or generate_lead) on success, including HubSpot or native forms. Replace CSS click triggers. Add click-to-call. Test on iPhone Safari, not only Chrome.

  4. Days 15-21: first-party signal. Turn on Enhanced Conversions, confirm CAPI dedup, map hidden UTM fields. Use the UTM builder for a clean paid URL and confirm parameters hit the CRM.

  5. Days 22-30: post-click. Watch form sessions, fix the field that stalls mobile users, re-check Core Web Vitals on the money pages, then only after a clean week of matching Ads / GA4 / CRM counts consider raising budget.

A realistic example: a growth lead at a B2B services firm in Adelaide had Google Ads showing 4.2x-style ROAS on paper while the CRM booked 11 fewer qualified enquiries than Ads claimed in 11 days. The mechanism was a thank-you page tag plus a HubSpot listener both marked primary. After one conversion action and a data layer event, bidding calmed down. Spend did not need to rise. The container did.

What we typically find in audits

We often find two Google Ads conversion tags on the same HubSpot form after a Webflow republish. CPL looks like a win until sales says the week was quiet.

Call clicks from mobile Search are frequently never in GTM. Teams scale form-based bidding while half the jobs start on tel: links.

Prefer to just ask? Message Martin directly on WhatsApp: Chat with us on WhatsApp

Google Tag Manager setup checklist for lead-gen sites in Australia

FAQs

Do we need GTM if the CMS plugin already injects Google Ads and Meta?

You need one system of record. Plugins plus GTM is how duplicates happen. Keep GTM as the router, or keep the plugin and strip GTM tags for those pixels. Mixing both without event_id and a single primary conversion will inflate numbers. Open GTM Preview and the Network tab simultaneously. If you see two gtag or fbq calls on page load, you have both firing. Disable the pixel from whichever source is secondary and confirm in Preview before publishing.

Should every form field go into the data layer?

No. Send the event name, form id, page type, and lead type. Hash emails and phones only through Enhanced Conversions / CAPI, never as plain text in GA4. Extra PII in the data layer is a risk and it does not help bidding.

When is a thank-you page URL enough?

Only if every successful submit 301s or navigates to a unique URL that cannot be refreshed into extra conversions, and you still fire once. Most Australian lead-gen stacks (embeds, SPAs, chat widgets) fail that test. Use a data layer event as the source of truth.

How do we know Ads and GA4 are finally aligned?

Pick seven consecutive days. Count CRM-accepted leads, Google Ads primary conversions, and GA4 key events. You want the same order of magnitude, with a documented reason for any gap (spam, after-hours, call-only). If you cannot write that sentence, keep auditing.

Can we fix this while Performance Max is learning?

Small trigger fixes are fine. Changing which conversion is primary mid-flight will reset learning. Prefer a short freeze on budget, ship the clean event, then resume. Constant structure changes are how accounts stall.

Putting it to work

Execution sprint

This week

  1. Pull 30-90 days of performance for google tag manager setup checklist for lead gen sites (Search Console, ads, CRM, or call logs - whatever you have).
  2. Flag the top leak: wrong intent, weak page, slow response, or dirty conversion tracking.
  3. Ship one fix on the highest-traffic money path (page, campaign split, or response rule).
  4. Run the free tools below on that same URL or account and log the findings.

Next 30 days

  1. Expand the fix to the next one or two money paths only after the first one shows cleaner bookings.
  2. Align creative, keywords, or content with the same offer the page now states.
  3. Review booked outcomes weekly; cut anything that still only produces unqualified volume.

This week

  • Open Preview on your highest-spend AU landing page and list every tag that fires on form success.

  • Export Google Ads conversion actions and mark duplicates or thank-you-page-only tags.

  • Confirm a single GTM snippet in source and a dated container version name.

  • Test one live paid URL with UTMs through to a hidden field or the data layer.

  • Watch five mobile sessions through the enquiry form and note where people stall.

  • Score all eleven items pass / weak / fail in a shared sheet.

Next 30 days

  • Remove duplicate conversion tags and enable Enhanced Conversions.

  • Replace CSS click triggers with data layer events, including click-to-call.

  • Deduplicate Meta Lead with a shared event_id.

  • Reconcile a week of CRM vs Ads vs GA4 before any budget increase.

  • Re-test after the next CMS publish so the container survives the redesign.

Pull the last 60 days of enquiries by source, then sit Ads, GA4, and the CRM in one tab until the conversion counts either match or have a written reason they do not. If the mismatch lives in the container (duplicate tags, brittle triggers, missing call events), HeyLead can own that Google Tag Manager cleanup so the events that feed bidding stay stable through redesigns. Chat with us on WhatsApp

Work with HeyLead
Free marketing audit, or reach Martin directly:
Get a free audit Connect on WhatsApp · [email protected]