Decide what a conversion is before you touch a tag. Fire your primary action with a native Google Ads conversion tag through GTM, keep GA4 events as context, turn on enhanced conversions, and wire Consent Mode v2 so European traffic still models. Then spend one hour on the QA protocol below. Skipping that hour is how accounts spend a quarter optimizing toward the wrong number.
Why tracking is the highest-leverage hour in paid media
Smart Bidding runs on one input: the conversions you report back to it. Every bid, every audience expansion, every "this query is worth more" decision the algorithm makes is derived from that stream. Feed it a duplicated purchase event and it learns that cheap junk traffic converts. Feed it a button click labeled as a lead and it happily fills your CRM with people who never intended to talk to you.
The uncomfortable part: a broken setup usually looks fine from inside the dashboard. Conversions show up, graphs move, the account "has data." In the accounts we audit, tracking problems are the most common root cause behind stubbornly high CPAs, and they are almost never the thing the account owner suspected.
The fix is not a tool. It is a sequence. Here is the one we use on every engagement.
Step 0: decide what actually counts as a conversion
Before any tag fires, write down two lists:
- Primary actions are the events that make you money or directly precede it. A purchase, a booked call, a qualified quote request, a submitted application. These are what bidding should optimize toward.
- Secondary actions are useful signals that do not deserve budget on their own. Newsletter signups, pricing page views, add to cart, video watches. Track them, report on them, never bid on them by default.
Most broken accounts skipped this step. When everything is a conversion, nothing is. The classic failure is a lead-gen account where "conversions" quietly includes phone clicks, form submits, chat opens, and a thank-you page view that fires twice per session. Smart Bidding then averages four signals of wildly different value and optimizes toward none of them.
The 2026 stack: what fires where
Three systems are involved, and each has one job:
- Google Tag Manager is the delivery layer. Every tag on the site goes through it, so changes never require a developer and everything is versioned.
- GA4 is the analytics layer. It sees every event, builds the full journey, and feeds audiences back to the ad platforms.
- The native Google Ads conversion tag is the bidding layer. For your primary actions, fire the Ads tag directly rather than importing the GA4 event. Native tags attribute with the click ID in real time, support enhanced conversions cleanly, and avoid the modeling delays and threshold quirks GA4 imports inherit.
The rule of thumb we apply: bid on native, analyze in GA4. Import GA4 conversions into Google Ads only for secondary context, and if you do import one, never leave both the import and a native tag counting the same action. That double-count is the single most common inflation bug we find.
The setup, step by step
1. Install one GTM container (10 min)
One container, in the <head> of every page, with the noscript fallback after the opening <body> tag. If the site already has stray hardcoded gtag snippets from past contractors, remove them now. Two sources of truth is how duplicate events are born.
2. Build GA4 events for every meaningful action (30 min)
In GTM, create triggers for each action on your lists: form submissions (use the element visibility or a dataLayer push from the success state, never the raw button click), phone number clicks, email clicks, purchases with value, and any secondary signals worth watching. Send them to GA4 with clean, lowercase snake_case names: generate_lead, phone_click, purchase.
One discipline here saves hours later: fire lead events on confirmed success, not on intent. A click on "Submit" is not a lead. A rendered thank-you state is.
3. Mark key events in GA4 (5 min)
In GA4, flag your primary actions as key events. Set counting to "once per event" for leads and "every event" for purchases. This is also the point to sanity-check that events arrive at all: open DebugView, trigger each action on the live site, and watch it land.
4. Create native Google Ads conversion actions (20 min)
In Google Ads, create a conversion action for each primary action with source "Website," then fire it from GTM with a Google Ads conversion tag on the same trigger as the GA4 event. Set the counting the same way as GA4 so the two systems can be compared honestly. Assign real values, even rough ones. A lead worth roughly $150 in eventual revenue should say so, because value-based bidding cannot exist without values.
While you are there, turn on enhanced conversions and pass the hashed email from your form's dataLayer push. As third-party signals degrade, this first-party match is what keeps attribution intact, and it routinely recovers conversions that would otherwise be lost to browser privacy features.
5. Wire Consent Mode v2 (15 min)
If any traffic comes from the EU, UK, or Switzerland, Consent Mode v2 is not optional. Default all storage to denied, update on the banner choice, and let Google model the conversions of users who decline. Done correctly, you stay compliant and typically keep the majority of measurement signal. Done wrong (or not at all), Google simply drops those users from bidding data.
6. Link the accounts and set the primary column (5 min)
Link Google Ads and GA4, enable auto-tagging, and then, in the Google Ads conversions summary, confirm that only your primary native actions are set to "Primary" (counted in the Conversions column that bidding uses). Everything else, including any GA4 imports, goes to "Secondary."
Tracking setup is included in every audit.
The campaign audit covers this entire checklist on your account: what fires, what double-counts, what the algorithm actually sees, and the fix list in priority order.
See campaign audit details →The one-hour QA protocol
Setup without verification is a guess. Before calling it done:
- Tag Assistant pass. Preview the site in GTM's Tag Assistant. Complete every conversion action for real. Confirm each tag fires exactly once per action, on success, not on click.
- DebugView pass. Watch the same session arrive in GA4 DebugView with the right parameters and values attached.
- The double-fire hunt. Submit a form, then hit the browser back button and forward again. Refresh the thank-you page. If any of that fires a second conversion, gate the tag with a first-party cookie or a dataLayer flag.
- The 48-hour cross-check. Two days later, compare Google Ads conversions, GA4 key events, and your CRM or order system for the same window. A gap under 10 percent is attribution noise. A gap over 30 percent means something above is still wrong.
Five failures we find over and over
1. The thank-you page that fires on refresh
A conversion tied to a URL that users can revisit, bookmark, or refresh. Every revisit is a fresh "lead." Gate it on the actual submission event instead.
2. Button clicks counted as leads
The form errors out, the user gives up, and the account still records a conversion. Bidding then learns to find people who click buttons, which is not a rare skill.
3. The GA4 import plus native tag double-count
Both track the purchase, both are set to Primary, and the account reports double its true revenue. ROAS looks spectacular right up until the finance sheet disagrees.
4. Everything set to Primary
Eight conversion actions, all feeding the bidding column, with a scroll event next to a purchase. The averages this creates are why the account "gets conversions" but never revenue.
5. No values on lead conversions
When every lead is worth the same nothing, the algorithm treats a tire-kicker and an enterprise inquiry identically. Even rough value tiers change what Smart Bidding hunts for.
Frequently asked questions
Should I use GA4 or the Google Ads tag for conversion tracking?+
Both, with different jobs. Fire your primary, money-making actions with the native Google Ads conversion tag, because it attributes in real time with the click ID and supports enhanced conversions cleanly. Keep GA4 events for analysis, audiences, and secondary signals. Never let a GA4 import and a native tag both count the same action as Primary, since that double-counts.
Do I need Google Tag Manager for conversion tracking?+
Strictly, no. Practically, yes. GTM gives you versioned changes, preview and debug before publishing, and one place where every tag lives. Hardcoded snippets scattered across templates are where duplicate events and forgotten tags come from, and they make every future change a developer ticket.
What are enhanced conversions and are they worth setting up?+
Enhanced conversions send a hashed version of first-party data, usually the email a user already submitted, alongside the conversion. Google matches it to signed-in users, which recovers attribution that browser privacy features would otherwise erase. Setup is roughly 20 minutes through GTM, and it is one of the highest return-on-effort items in the whole stack.
How do I know if my conversion tracking is broken?+
Run the 48-hour cross-check: compare conversions in Google Ads, key events in GA4, and real outcomes in your CRM or order system for the same window. Under 10 percent apart is normal attribution noise. Over 30 percent means a real defect, most often a double-fire, a click counted as a success, or a missing tag on one template.
Does Consent Mode v2 reduce my reported conversions?+
It changes their composition. Users who decline consent stop being observed directly, and Google models their conversions from the ones it can see. Accounts usually keep the large majority of their measurement signal. Without Consent Mode, those users are not modeled at all, so you lose more data, and you carry compliance risk on top.
Bottom line
Conversion tracking is the foundation every other decision in the account is built on, and it is almost always cheaper to fix than the media budget it silently wastes. Decide what a conversion is, fire it natively, verify it with the QA protocol, and re-check it quarterly, because tracking drifts as sites change.
If you would rather have it verified for you, the campaign audit starts with exactly this checklist, and the management service keeps it honest month after month.
