Conversion Tracking Audit: The Checklist to Run Before You Scale Ad Spend
A conversion tracking audit checks that every conversion your ad platforms record is a real lead or sale, counted once, attributed correctly and passed back with its value. Work through GA4, Google Ads enhanced conversions, Meta Conversions API and CRM stage imports, then hold budget flat until the numbers reconcile with your CRM.
Most Australian SMEs consider a budget increase when the ad platform dashboard looks healthy. The dashboard is only as honest as the conversion definitions behind it. If those definitions are loose, doubling spend doubles the guesswork.
This is a self-serve checklist you can work through in order. It covers the GA4 checks, enhanced conversions, the Conversions API, CRM imports, the common wrong-conversion mistakes and a one-page sign-off. It is written for mortgage broking, recruitment, fitness and professional services businesses, where the real sale happens well after the form fill.
Key Takeaways
Bidding algorithms optimise toward whatever you call a conversion. Wrong definitions mean the algorithm gets better at finding the wrong people.
Hold budget flat while you audit. The goal is more of the right clicks, not more spend.
GA4 must count each lead once, across domains and forms, with consent handled correctly.
Enhanced conversions and the Meta Conversions API recover signal lost to browser restrictions, but only if deduplication and match quality are checked.
Importing CRM stages (qualified, appointment booked, won) lets bidding optimise toward sales value, not form fills.
Do not scale until platform conversions reconcile with CRM leads and, where possible, with revenue.
Summary Table
Audit area | What you are checking | Most common failure | Fix first |
GA4 key events | Only real leads and sales are marked as key events | Page views and button clicks counted as leads | Remove weak key events, keep one per outcome |
GA4 duplicates and forms | Each submission fires once, across domains | Hardcoded tags plus Tag Manager firing twice | Test in preview mode, remove the duplicate |
Consent mode | Consent signals reach Google tags | Banner exists but does not control tags | Connect the banner to consent settings |
Google Ads enhanced conversions | Hashed first-party data is sent and matched | Enabled but diagnostics show missing data | Fix form field capture and tag setup |
Primary vs secondary actions | Bidding uses only the actions that matter | Micro-conversions set as primary | Demote them to secondary |
Meta Conversions API | Server events match browser events and deduplicate | Pixel and server events counted twice | Pass a shared event ID from both |
CRM stage imports | Qualified, booked and won stages feed back to platforms | Only form fills reported | Capture click IDs and import stages |
Reconciliation | Platform totals agree with CRM | Nobody compares the two | Run a monthly three-way check |
Why does tracking have to come before scaling ad spend?
Because Google and Meta bidding systems learn from the conversions you give them. If your conversion list includes button clicks, spam enquiries or duplicate events, a bigger budget simply buys more of the wrong outcome, faster. Fix the signal first, then increase spend where the tracked return justifies it.
Imagine a mortgage broker whose Google Ads account counts every click on a phone number as a lead. Smart Bidding will find people who tap phone numbers, including accidental taps, existing clients and people hunting for a number to complain on. The cost per lead looks excellent. The cost per settled loan is unknown, because nothing connects the click to the loan.
This is why tracking is a Plan prerequisite in our Profile, Plan, Perform framework, and why it sits before Perform. Profile tells us who the best customers are and what a good lead looks like. Plan defines how each of those stages will be counted. Only then does Perform start spending money against it. It is the same logic behind our approach to accountable performance marketing: reported against leads and revenue, not traffic.
The common alternative is the reverse. Budgets rise because impressions, clicks and platform conversions are climbing, and tracking is looked at only after results disappoint. By then the algorithm has spent weeks learning from bad data.
What do you need before you start a conversion tracking audit?
You need admin access to GA4, Google Ads, Google Tag Manager, Meta Business Manager, your website platform and your CRM, plus a written list of what counts as a lead and a sale. Then freeze budgets. Changing spend and tracking at the same time makes results impossible to read.
Work through this preparation list first:
Define each stage in plain words. For a recruiter: candidate registration, client enquiry, client meeting held, placement made. For a broker: enquiry, qualified, application lodged, loan settled. For a gym: trial booked, trial attended, membership signed. For a professional services firm: enquiry, discovery call held, proposal sent, deal won.
Pick a source of truth. Your CRM, or your accounting system for revenue, outranks any ad platform. Platforms report what they believe they influenced. Your CRM reports what actually arrived.
Export recent leads. Pull a list of leads with their source, date and outcome. You will compare it against platform totals in the final step.
Freeze the budget. Keep it flat until sign-off. This gives you a stable baseline and stops you mistaking a spend change for a tracking change.
Holding spend flat is not a pause. Campaigns keep running while you fix the plumbing. In our experience, the most useful work during this period is search term quality, negative keywords and bid management, which improve efficiency without raising spend.
What should a GA4 conversion tracking audit check?
Check that only real leads and sales are marked as key events, that each fires once per submission, that tracking survives hops between domains, and that consent mode passes the right signals. GA4 conversion tracking is where most downstream errors begin, because Google Ads often imports from it.
Are your key events actually leads?
GA4 renamed conversions to key events. Open the Key events list in Admin and read it line by line. For each event, ask: would a salesperson call this person back? If the answer is no, it should not be a key event.
Typical offenders are scroll depth, file downloads, outbound link clicks, and a generic form_submit event that also fires for newsletter signups and search boxes. Keep one key event per genuine outcome, with a clear name such as generate_lead_quote or book_appointment, and separate events for different lead types. A recruiter should never mix a candidate registration with a client enquiry, because their value is not the same.
Are events firing twice?
Duplicate events are the most common GA4 fault we see in audits. Causes include a hardcoded GA4 tag plus a Tag Manager tag, a plugin that adds tracking on top of Tag Manager, and thank-you pages that fire on every reload or when someone returns via the back button.
To test:
Open Tag Manager preview mode and submit a real form.
Count how many times the lead event appears in the tag summary and in GA4 DebugView.
Reload the thank-you page and submit again with the same details. A good setup tracks the first and not the reload.
Compare GA4 key events for the month against form submissions recorded in your website or CRM. GA4 should never exceed them.
Do cross-domain and form tracking hold up?
If your journey crosses domains, the session breaks and the original source is lost. Common examples are a booking tool such as Calendly, a hosted application portal, a payment gateway or a separate checkout. Configure cross-domain measurement in the data stream settings, then check your unwanted referrals list so those tools do not steal credit from the real source.
For forms, prefer a method that fires only on successful submission: a thank-you page view, a success message element, or a data layer push from the form platform. Click triggers on a submit button record failed and incomplete submissions as leads. Embedded iframes, such as a mortgage application widget, need their own handling, because the parent page cannot see inside them.
Is consent mode configured properly?
A cookie banner that looks right but does not control tags is a common finding. Consent mode lets Google tags adjust behaviour based on a visitor's choice, and in its advanced form it can support modelled conversions where consent is declined. Check that your banner passes consent signals before tags fire, that defaults are set deliberately, and that Google Ads and GA4 both receive the status.
Australia does not mandate a banner the way the EU does, but the Privacy Act 1988 still applies to personal information, including data you send to ad platforms. Make sure your privacy policy describes this use, and take legal advice if you handle sensitive information.
How do Google Ads enhanced conversions work, and what should you check?
Enhanced conversions send hashed first-party data, such as an email address or phone number from a form, to Google alongside the conversion tag. Google matches it to signed-in users, recovering conversions that cookies miss. Check that data is captured, hashing is working, diagnostics are healthy and the right actions are primary.
What does it recover?
Browsers limit cookies and cross-site tracking, so a share of conversions never connect back to the ad click. Enhanced conversions add a second route: the customer's own details, hashed with SHA256 before leaving the browser, are matched against Google accounts. Google documents this in its enhanced conversions help pages (see References). It does not invent conversions. It recovers real ones that were otherwise unattributed, which gives bidding a fuller picture.
There is also a version for leads. Enhanced conversions for leads let you upload hashed email or phone details from your CRM later, matching offline outcomes without relying only on a click ID. It pairs well with the CRM imports covered below.
Setup checks
Form fields are captured. The tag needs the email or phone field value at submission. Check the field selectors still work after any site redesign or form plugin update.
Method matches your stack. Use the Google tag, Tag Manager or the API depending on how your tracking is built, and avoid running two methods at once.
Diagnostics are clean. In Google Ads, open the conversion action's diagnostics and read the enhanced conversions status. Missing data or unrecognised formats mean the setup is incomplete.
Terms and privacy are accepted. Customer data terms must be accepted in the account, and your privacy policy should reflect the data use.
Count settings suit the business. For lead generation, count one conversion per click. For ecommerce sales, count every. Counting every form fill from the same person inflates lead numbers.
Primary versus secondary conversion actions
Primary actions feed the Conversions column and drive bidding. Secondary actions are tracked for observation only. This single setting decides what the algorithm chases, so audit it first.
A clean account has few primary actions: typically a qualified lead or sale. Micro-conversions such as page views, scroll events, clicks on the phone number and brochure downloads belong as secondary. If you want the algorithm to learn from higher-value outcomes, import CRM stages and make those primary, as covered below. Check the goal assigned to each action, and confirm that the campaign is not using account-default goals you did not intend.
What should you check in the Meta Conversions API setup?
Check that the Conversions API sends server-side events alongside the Meta pixel, that both share the same event name and event ID so Meta deduplicates them, and that Event Match Quality in Events Manager is healthy. Without these, Meta either under-counts or double-counts your leads.
Are server-side events actually arriving?
The pixel runs in the browser and is exposed to ad blockers and browser restrictions. The Meta Conversions API sends events from your server or tag server directly to Meta. You can implement it through a partner integration, the Conversions API Gateway, server-side Tag Manager or custom code.
Open Events Manager, then the Test Events tab, and submit a real enquiry. You should see the event arrive from the browser and from the server. Then check the Overview tab to confirm both channels are active for your lead event.
Is deduplication working?
If the pixel and server both report the same lead without a shared identifier, Meta may count two. Meta's deduplication relies on matching the event name and an event ID sent from both sources. The pixel needs to pass an event ID, the server event must carry the identical ID, and the names must match exactly, including capitalisation.
Signs of failure: leads reported in Meta that exceed your CRM, or Events Manager showing two events per submission without a deduplicated label. Meta's developer documentation covers the exact parameters (see References).
Is event match quality high enough?
Event Match Quality reflects how well the customer details you send can be matched to Meta accounts. Better parameters, such as hashed email, phone, first name, last name, suburb and the fbp and fbc browser identifiers, improve matching. Check which parameters your events send and which are missing.
The usual causes of low match quality: the form does not capture a phone number, the server drops the fbc value, or data is sent unhashed or in the wrong format. Fix these before you judge the campaign, because poor match quality starves delivery of signal.
Also check that the event Meta optimises for is the one you want. A campaign set to optimise for a Lead event that fires on every page load, or on a low-quality form, will learn from noise. For lead generation, consider whether a later, qualified stage can be sent back through the Conversions API, covered next.
How do CRM stage imports make bidding optimise toward sales?
Importing CRM stages sends outcomes such as qualified lead, appointment held and deal won back to Google Ads and Meta, with a value. Bidding then optimises toward the people who become customers, not just people who fill in forms. This is the step that most separates tracked marketing from reported marketing.
A form fill is the cheapest signal and the least reliable. The signal that matters is later and lives in your CRM. For a mortgage broker, that is a lodged application or a settled loan. For a recruiter, a client who has signed terms or a placement. For a fitness business, a membership sold. For a professional services firm, a won engagement.
The offline conversion import CRM process
Capture the click ID at the moment of the lead. For Google, store the GCLID (and the GBRAID or WBRAID values where present) in hidden form fields. For Meta, store the fbclid-derived fbc value or the lead ID from Meta lead forms.
Pass it into the CRM record. The ID must survive form, CRM and any automation in between. Test with a dummy lead.
Map the CRM stages. Agree the stage names, who changes them, and when. An import is only as accurate as the people updating the CRM.
Import on a schedule. Use the native integration, a connector, or a manual upload. Google Ads accepts offline conversion imports, and Meta accepts offline stages through the Conversions API.
Attach a value. Use actual deal value where known, or a defensible average value per stage. A qualified lead is not worth the same as a settled loan.
Set the right primary action. Make the stage with enough volume and clear value primary for bidding. If won deals are too few to learn from, use an earlier qualified stage.
Expect lag. A mortgage may take weeks or months to settle, so imports arrive late. This is normal. Use a mid-funnel stage for bidding and track the final stage for reporting.
Check the loop closes
After the first import, look at the conversion action's status in Google Ads and the matched events in Meta. Then compare the count against the CRM stage. If 30 leads reached a stage and the platform recorded far fewer, click IDs are being lost before the CRM. Fix that before relying on the data.
For teams with strong CRM discipline, this is where paid media management changes most. Bid strategies stop rewarding cheap form fills and start rewarding the leads your sales team actually wants.
Which conversion tracking mistakes quietly waste ad spend?
The costliest mistakes are counting page views or button clicks as leads, double-counting form submissions, letting spam count as conversions, and setting micro-conversions as primary actions. Each one trains the algorithm on the wrong outcome, and each is invisible if you only read the platform dashboard.
Page views and button clicks counted as leads. A thank-you page that can be reached directly, or a click on a call button, is not a lead. Fix: fire only on confirmed submission or a completed call of meaningful length.
Double-counted forms. Pixel plus Tag Manager, GA4 import plus a native Google Ads tag, or pixel plus API without deduplication. Fix: one counting method per action, shared event IDs where two channels are needed.
Spam submissions. Bots and low-quality leads count the same as real enquiries. Fix: add spam protection to forms, filter obvious junk from the conversion, and import qualified stages so the algorithm learns what good looks like.
Micro-conversions set as primary. The algorithm will chase the easiest action. Fix: keep primary actions to leads and sales.
Importing GA4 and also using a native tag for the same action. Google Ads then counts the same lead twice. Fix: choose one source per action.
Mixing lead types. A candidate registration and a client enquiry are treated as equal. Fix: separate actions and values.
No value attached. Every lead looks the same, so budget cannot tilt toward better ones. Fix: add stage values.
Breaking tracking in a site update. A redesign, theme change or plugin update removes the tag. Fix: add a post-release tracking test to your web change process.
If you recognise more than two of these, your reported cost per lead is probably not the real one. That does not mean the campaigns are bad. It means you cannot yet tell.
The pre-scale sign-off checklist
Use this one-page checklist as a gate. If any line fails, hold the budget flat and fix it. Sign-off means platform conversions, CRM leads and, where possible, revenue tell a consistent story, so a budget increase is a decision and not a hope.
Definitions and baseline
Every lead and sale stage is defined in writing and agreed with sales
Budget has been held flat during the audit
CRM is nominated as the source of truth
GA4
Key events contain only real leads and sales
Each form fires once on successful submission only
Duplicate tags removed (hardcoded versus Tag Manager)
Cross-domain tracking and unwanted referrals configured
Consent mode connected to the banner and tags
Google Ads
Enhanced conversions enabled and diagnostics healthy
Count setting is one for leads, every for sales
Only leads, qualified stages and sales are primary actions
Micro-conversions set as secondary
No GA4 import and native tag counting the same action
Meta
Conversions API live alongside the pixel
Event name and event ID match across both
Event Match Quality reviewed, missing parameters added
Optimisation event is a genuine lead or qualified stage
CRM
Click IDs captured in hidden fields and stored on the CRM record
Qualified, appointment and won stages imported with values
Import status checked and counts compared with the CRM
Reconciliation
Platform conversions compared with CRM leads for the same period
Cost per qualified lead and cost per sale calculated from CRM data
Spam and duplicates quantified and removed
A named person owns monthly review
Once signed off, increase budget in measured steps and watch cost per qualified lead, not cost per form fill. If the CRM-based cost holds as spend rises, keep going. If it deteriorates, you have found the ceiling of the current setup, and you found it with a small step, not a large one.
If you would prefer someone else to do the rebuild, our analytics and tracking setup covers GA4, tag management, enhanced conversions, the Conversions API and CRM imports.
Why a flat budget and a rebuilt tracking setup often beats a bigger budget
The reflex answer to weak paid media results is more budget. Our position is the opposite: hold spend flat, rebuild tracking, then scale only where the tracked return justifies it. The goal is more of the right clicks, not more spend. This is the view of one operator, not a neutral summary of options.
Here is why. Rebuilding tracking is rarely the glamorous part of an engagement, but it is what makes every later decision credible. Straight from the account data: for a packaging ecommerce store in a price-driven category, we rebuilt conversion and revenue tracking, restructured campaigns around buying intent, weighted budget toward the winning product lines and added 85 negative keywords across May and June. From January to June 2026 the store returned 9.5x on ad spend, with $132,746 in tracked revenue from $14,028 in spend. Its best month was 12.4x and every month was 7x or better. The negative keywords alone cut close to $1,000 of wasted spend. That is 3P Digital's own account data, and it is an ecommerce store, not a lead generation business. The principle carries across: nobody could have directed budget to the winning product lines before revenue was tracked against them.
The same logic applies to lead cost. A national recruitment firm replaced job board spend with an SEO and content strategy and generated 574 leads at a 63.5% lower cost per lead. That figure is only meaningful because leads were measured properly and consistently. Without clean lead counting, nobody could say the new channel was cheaper, and nobody could say it kept delivering. Measuring cost per lead properly is what turns a channel decision from opinion into evidence.
And for a B2B professional services firm that had been through multiple agencies, a full digital marketing overhaul covering SEO, paid media and conversion optimisation lifted qualified enquiries by 247%, roughly tripling inbound volume. Notice the word qualified. Raw enquiries are easy to inflate. Qualified enquiries have to be defined and tracked first.
My contrarian take for anyone about to increase budget: the audit is not a delay to growth. It is the cheapest growth lever available, because it improves every dollar already being spent. Every dollar works harder when the algorithm knows what a good lead looks like. Results, not activity reports, are the only honest test of whether it worked.
One practical habit I recommend: run a monthly three-way reconciliation. Compare what the ad platforms report, what the CRM shows, and what hit the bank. Differences are not failures. They are the audit trail that tells you where the next fix sits. If you are tempted to scale before you can run that comparison, you are scaling an assumption.
FAQs
What is a conversion tracking audit?
A conversion tracking audit is a structured check that every conversion recorded in GA4, Google Ads and Meta represents a real lead or sale, is counted once, is attributed correctly and carries a value. It ends with reconciling platform numbers against CRM and revenue data.
How do I know if my Google Ads conversion tracking is wrong?
The warning signs are conversions that exceed CRM leads, a suspiciously low cost per lead, conversions on page views or clicks, diagnostics warnings in the conversion action, and sales teams saying the leads are poor while the dashboard looks strong. Test a real submission in Tag Manager preview and compare it with the CRM.
Do I still need the Meta Conversions API if I have the pixel?
In most cases, yes. The pixel runs in the browser and can be blocked or limited. The Conversions API sends events from your server, which recovers lost signal and supports CRM stage events. Run both, and make sure they share the same event name and event ID so Meta deduplicates them.
Should I use enhanced conversions and offline conversion import together?
Yes, they solve different problems. Enhanced conversions improve matching of on-site conversions using hashed first-party data. Offline conversion import brings later outcomes, such as qualified leads and won deals, back from your CRM. Together they give bidding a more complete picture, from first click to sale.
How long should I hold the budget flat during an audit?
Hold it until the fixes are live and you have enough data to reconcile platform conversions with the CRM. For businesses with long sales cycles, such as mortgage broking, that means giving the data time to catch up. Use a mid-funnel stage as your early indicator while later stages arrive.
How often should I run a conversion tracking audit?
Run a full audit before any significant budget increase and after any website rebuild, CRM change or new campaign type. Between audits, review reconciliation monthly. Small checks done regularly catch broken tags before they distort weeks of bidding.
Book a tracking review before you lift the budget
If you cannot yet tie ad spend to sales with confidence, do not raise the budget. Book a tracking review with 3P Digital and we will work through this checklist against your accounts. The promise is simple: spend traced to real sales value, so every budget decision is made from evidence. Month to month, no lock-in.
References
Google Ads Help: About enhanced conversions. https://support.google.com/google-ads/answer/9888656
Google Analytics Help Centre: key events, data streams and cross-domain measurement. https://support.google.com/analytics
Google for Developers: Consent mode on websites and apps. https://developers.google.com/tag-platform/security/guides/consent
Meta for Developers: Conversions API and handling duplicate pixel and server events. https://developers.facebook.com/docs/marketing-api/conversions-api/
Office of the Australian Information Commissioner (OAIC): Privacy and the Privacy Act 1988. https://www.oaic.gov.au/privacy



