How to audit your Google Ads conversion tracking
Audit Google Ads conversion tracking for duplicate events, failed forms, call quality, primary conversions, offline outcomes, attribution, and booked jobs.
Audit Google Ads conversion tracking for duplicate events, failed forms, call quality, primary conversions, offline outcomes, attribution, and booked jobs.
Bad tracking does not merely make a report untidy. It can make the campaign learn from the wrong event.
A form attempt is not necessarily a successful submission. A phone click is not necessarily a connected conversation. A connected call is not necessarily a booked job. A platform conversion is not necessarily revenue.
The short answer
A conversion-tracking audit checks whether each event is collected, matches a real business action, fires once without duplicates, and links back to real leads. In my residential cleaning rebuild, fixing GTM and GA4 tracking first helped cut cost per lead by 81% (from $149.00 to $27.89 across 51 verified calls and forms). Every audit I run as Sadekul Islam separates verified leads from unverified clicks.
A high conversion count is not automatically a technical error, and a gap between Google Ads conversions and booked work is not automatically a tag failure. If the platform reports more conversions than the business can identify as leads, check these causes:
Check the definitions and the source records before deciding which of those it is.
Audit six layers in order: collection, event quality, deduplication, configuration, attribution, and business reconciliation. Each layer answers one question about whether a reported conversion can be trusted as evidence of a business outcome, and each has its own evidence to inspect.
| Layer | Question | Evidence to inspect |
|---|---|---|
| Collection | Did the tag, trigger, call system, or CRM event fire? | Tag Assistant or GTM Preview, browser events, phone system, CRM record |
| Event quality | Did it represent a successful business action? | Form success state, connected call, qualified lead, booking record |
| Deduplication | Was the same event counted more than once? | Google Ads actions, GA4 imports, GTM tags, thank-you pages, CRM IDs |
| Configuration | Is the action main or secondary, and is its count setting appropriate? | Google Ads conversion settings and goals |
| Attribution | Can the event be connected to the ad interaction and the correct period? | GCLID or first-party data, conversion window, call path, consent, lag |
| Business reconciliation | What happened after the platform event? | Contact status, booked job, finished service, revenue, margin record |
A tag firing proves that a tag fired. It does not prove that a client booked work.
Before any setting changes, answer one question in writing: what does one conversion represent in this account: one event, one contact, one client, or one job? Without that answer, the reported count cannot be interpreted, only quoted.
Inventory every action, test forms at success rather than click, test calls as stages rather than duration, check duplicate routes, review main and secondary settings, verify windows and lag, test offline imports, and reconcile against the business record before changing anything.
Inventory every conversion action
Open the conversion summary and list every action with its source, goal, main or secondary setting, count setting, value, window, and status. Do not delete actions because the list looks long: multiple actions can be legitimate when they represent different business outcomes.
Test forms for a successful submission
A form conversion should fire on a successful send, not on a submit click. Run a test matrix rather than one happy path.
Test calls without pretending duration equals sales
Separate the click, the connected call, the qualified lead, and the booked job. Treat any duration rule as a documented proxy.
Check GA4 and Google Ads for duplicate counting
The same business event can arrive by two routes. That is not automatically wrong, but it should not become two main conversions for one event.
Review main and secondary settings
A campaign should not bid toward every event that is interesting to observe. Match the setting to the decision, and state the volume-versus-depth trade-off.
Check conversion windows and reporting lag
A conversion that happens after the selected window is not reported. Compare the window against the account’s own lag from click to lead, estimate, booking, and payment.
Test offline outcomes and booked jobs
Where identifiers, consent, and CRM records support it, import the deeper outcome instead of inferring it from a shallow event.
Reconcile platform conversions with the business record
Match the platform count against contact status, qualification, bookings, completions, and confirmed revenue, then say where the evidence stops.
For each action, record the fields that make the count interpretable.
| Field | Example question |
|---|---|
| Name | Can an owner understand what this counts? |
| Source | Google tag, GA4 import, phone system, CRM, or another source? |
| Event | Form success, call, chat, booking, estimate, contract, or sale? |
| Main or secondary | Should Google Ads use it for bidding or only observe it? |
| Count | Should one interaction count once, or can multiple events be valid? |
| Value | Is the value fixed, dynamic, imported, or absent? |
| Window | Does the conversion window fit the sales cycle? |
| Trigger and last tested date | What fires it, and when was that last verified? |
| Evidence owner | Who can confirm what happened after the event? |
Google says main conversion actions are reported in the “Conversions” column and used for bidding when their standard goal is used, while secondary actions are generally observation-only in “All conversions” except when used through a custom goal. Conversions created in Google Analytics are secondary by default and can be updated in Google Ads.
The practical rule is not “one action for every button.” It is one clear measurement definition per business outcome, with main and secondary settings that match the decision.
Name actions after the event they record: website_form_submit, qualified_call_imported, booked_job_imported. Do not call everything a lead. Ambiguous names produce ambiguous reports.
Google allows each conversion action to count either Every conversion after an ad interaction or only One conversion after an ad interaction. Google says Every counts every conversion for the tracked action after an ad interaction, and One counts only one conversion per ad click. Google describes One as a useful choice when measuring leads, because one unique lead per ad click is usually the valuable unit, and Every as useful for sales where each extra sale may add value.
| Business event | Likely question | Common starting logic |
|---|---|---|
| Lead form | Did this ad click generate a lead? | One may fit if repeat submissions are not separate leads |
| Phone call | Did this ad interaction generate a call? | One may fit for a unique lead, but inspect the account configuration |
| Purchase | How many purchases occurred? | Every may fit when each purchase carries value |
| Booked job | How many distinct jobs were booked? | One per distinct job record, with deduplication |
| Recurring appointment | Are repeat appointments separate valuable events? | Depends on the business model and the chosen action |
Two facts do the work here. Google documents different defaults by conversion source: Every is the default for website, in-app actions, Analytics transactions, mobile-number clicks, and import conversion actions, while One is the default for calls from ads, Analytics goals, calls to a phone number on a website, and app installs. Google also says count settings apply to future reporting and do not rewrite past data.
So do not assume the account uses the default, and do not expect a corrected setting to fix last month’s report.
Use a test matrix rather than one successful submission.
| Test | Expected result | If it fails |
|---|---|---|
| Submit valid form | One conversion after successful receipt | Check the success event, thank-you state, and tag firing |
| Leave a needed field blank | No completed-form conversion | Check validation settings and click triggers |
| Submit twice | One business lead, or a documented duplicate rule | Add deduplication or clarify the count definition |
| Refresh success page | No new conversion unless a new submission occurred | Avoid page-view-only success logic |
| Submit from mobile | Same business outcome as desktop | Check responsive form behaviour and event transport |
| Trigger server error | No successful-form conversion | Check whether the interface displays a false success state |
Google Tag Manager’s Form Submission trigger can be configured to fire when a form is successfully sent. Google says “Check Validation” makes the trigger fire only when the form is successfully sent; if it is not selected, the trigger fires whenever a user attempts to submit. Google also documents “Wait for Tags” for delaying navigation so tags have time to fire, and suggests specifying conditions such as a URL and using “Some Forms.”
A button-click event can be a useful micro-conversion or diagnostic. It should not automatically be treated as a successful lead.
Also check whether the form is embedded in an iframe, whether the same tag is installed both in code and in Tag Manager, and whether the same contact submits for several services.
Google Ads can measure calls from ads and calls to a website number. Google’s call reporting can provide call duration, start and end time, caller area code, and whether the call connected, and Google also supports importing call outcomes and revenue from another system.
A duration threshold can filter very short calls, but duration is only a proxy. A long call can be a price discussion, the wrong service, a complaint, or a job-seeker lead. A short call can be a real booking when the client already knows the service and the price.
If call outcomes cannot be imported, choose a threshold from the account’s own call history and the staff’s understanding of a useful call, then test it against a sample of calls. Do not publish any duration as a universal definition of a qualified lead.
The strongest call record separates the connected call, the relevant service request, the qualified lead, the estimate, the booked job, the finished job, and client-confirmed revenue. Google describes imported call conversions as the most precise way to connect calls to sales or other valuable client actions when the business tracks those outcomes in another system.
Call paths overlap more than most reports admit. One client can click a call asset, visit the website, tap the website number, call the business directly, receive a call-back, and then book. That is one client, not six leads.
The same business event can be sent through more than one route. A successful form may be imported from GA4 and also sent through a Google Ads tag. That is not automatically wrong, but both should not be treated as two separate main conversions for the same event.
Check whether:
Do not choose GA4 or native Google Ads tracking as a universal source of truth. Choose a source for each event based on implementation quality, ownership, consent, reporting, and the decision the data must support, then document the source and the deduplication rule.
A campaign should not bid toward every event that is interesting to observe.
A local-service account might observe page engagement, click-to-call, connected calls, form submissions, qualified leads, booked jobs, and finished jobs. It might choose only qualified leads or booked jobs as main, depending on volume, reliability, attribution, and the campaign’s objective.
| Action | Where it is normally reported | Used for bidding? |
|---|---|---|
| Main | Conversions and All conversions | Yes, when the relevant standard goal is used |
| Secondary | All conversions | No, unless part of a custom goal |
Google warns that incorrect main and secondary configuration can prevent Smart Bidding from improving effectively. An account can also look inflated simply because someone compared All conversions against booked jobs. All conversions contains observation actions, repeat actions, and possibly several event types.
The correct configuration depends on the account. A rare but valuable booked-job event may be the right business outcome and still provide too little signal for a new campaign. A qualified call may be a useful interim main event if the business can validate it and later import deeper outcomes. Do not make a deeper action main because it sounds better; a rare, delayed, or unreliable import is a poor bidding signal. State the trade-off instead of pretending the setting is universal.
A conversion may happen after the click. Google defines a conversion window as the period after an ad interaction when a conversion is recorded. A conversion after the window is not in the report. Google suggests reviewing the time lag and setting a window long enough to cover most conversions.
Ask how long it usually takes from click to lead, from lead to estimate, from estimate to booking, and from booking to completion or payment. Then ask which of those stages the Google Ads conversion actually represents, whether the current window is long enough for that stage, and whether recent periods are still immature.
A roof replacement, a commercial painting contract, a recurring pest plan, and an emergency drain call have different lag patterns. Use actual CRM and booking timestamps where available, and do not compare a mature period with a recent one whose conversions are still arriving.
Some local-service outcomes happen in a phone call, a dispatch system, a CRM, a calendar, a payment system, or a signed contract. Google explains that offline conversion imports can measure what happens after an ad click or call in the offline world, including a contract signed or a sale finished.
Capture the ad or click identifier where appropriate
Subject to the account setup and the consent model in force.
Record the lead in the CRM or booking system
At the moment it arrives, with its source.
Define qualified, booked, finished, and paid stages
In writing, before the first report is read.
Record the timestamp and source for each stage
Attribution needs dates as much as it needs identifiers.
Import only the outcome the business can verify
A hopeful status is not an outcome.
Use first-party data and consent practices appropriate to the jurisdiction
Platform requirements and local law both apply.
Reconcile imported outcomes with the owner’s records
An import is a report, not a confirmation.
Google describes enhanced conversions for leads as an upgraded approach that uses user-provided data to supplement imported offline conversion data. It can improve reporting when implemented correctly. It does not turn unclear or inaccurate CRM records into reliable evidence.
Document the event name, the event date, the matching method, the value definition, the attribution window, whether repeat clients are excluded, the main or secondary setting, and the deduplication process.
Google Ads answers a platform question: which ad interactions were associated with a configured conversion action? The owner needs a business question answered: which leads became work, and what was that work worth?
Reconcile a sample or the full record according to account size, volume, privacy, and operational practicality. Do not contact clients outside the business’s lawful and normal process merely to make an audit look rigorous. Use CRM status, call records, calendars, estimates, job-management software, invoices, or owner confirmation.
| Outcome | Definition |
|---|---|
| Platform conversion | An event counted by the configured platform action |
| All conversions | Main and observation actions reported together under account rules |
| Unique tracked lead | A deduplicated contact record |
| Qualified lead | A request that fits the service, location, timing, and basic criteria |
| Booked job | The business’s written booking milestone |
| Finished job | The service was delivered, or the defined completion event occurred |
| Client-confirmed revenue | Revenue confirmed by the owner or the source system |
| Estimated contribution or profit | A model based on stated margin and included costs, labelled as estimated |
If a platform reports 50 conversions and the business has 8 booked jobs, that gap is a finding to investigate. It is not automatically a tag error, and it is not automatically a sales problem.
Thirty minutes, five blocks: define the denominator, review the action settings, test the implementation, compare platform records against business records, then make exactly one correction and reconcile the next period. It locates the likely problem; it does not certify the account.
Minutes 0 to 5: define the denominator. Write down what the owner actually wants to count: unique contact, qualified lead, booked job, finished job, paid job, revenue, or estimated contribution. If the denominator is unclear, the reported count cannot be interpreted.
Minutes 5 to 10: review the action settings. For each action, record One or Every, main or secondary, the source, the conversion window, the value, and the goal it belongs to.
Minutes 10 to 15: test the implementation. Check the form submit, the button click, the thank-you page, the call-asset click, the website number click, the call connection, the CRM import, duplicate tag firing, refresh behaviour, and cross-domain behaviour. Do not create accidental real leads for a working business, use a controlled internal route or coordinate with the owner first.
Minutes 15 to 20: compare records. Match Google Ads records against call logs, phone-system records, CRM contacts, form submissions, the booking calendar, dispatch records, invoices, and payment records, using timestamp, phone, email, name, address, or job ID where that is permitted and appropriate.
Minutes 20 to 30: decide one correction. Choose one fix. Remove a duplicate tag. Change One or Every for an action. Move a shallow event to secondary. Keep a deeper outcome as main. Deduplicate CRM imports. Separate call clicks from connected calls. Fix a thank-you-page trigger. Rename an action accurately. Or make no change until you have more evidence.
Correct the smallest confirmed problem, then reconcile the following period. Do not change bidding first. Validate the signal first.
A plumbing account reports the following for one month.
| Record | Count |
|---|---|
| Conversions column | 48 |
| All conversions column | 73 |
| Form-success events | 22 |
| Call conversions | 19 |
| Imported qualified calls | 12 |
| Unique tracked leads after deduplication | 29 |
| Qualified leads | 18 |
| Booked jobs | 9 |
| Finished jobs | 7 |
reported conversions ÷ unique tracked leads = 48 ÷ 29 = 1.66
That ratio does not prove that 19 conversions are technical duplicates. It says the platform’s main conversion total is not equivalent to the unique-enquiry record.
The denominator you choose changes the answer:
| Measure | Calculation | Result |
|---|---|---|
| Booking rate from unique leads | 9 ÷ 29 | 31.0% |
| Booking rate from reported conversions | 9 ÷ 48 | 18.75% |
| Qualified rate from unique leads | 18 ÷ 29 | 62.1% |
The second figure is not the business’s lead-to-booking rate. Its denominator may include repeated events and several actions for the same client. Use the formula that matches the defined denominator, and never present a conversion-based ratio as a booked-job ratio.
The trigger fires when the button is clicked, even when needed fields are blank or the submission fails. Replace the click trigger with a verified success event, or configure the GTM form trigger’s validation behaviour.
The same submission is counted on the form-success event and again on a page view or a refresh. Use a single business-event definition and a deduplication rule.
A duration threshold can identify calls worth reviewing. It does not prove service fit, booking, completion, or revenue. Import outcomes when the call system and CRM can support them.
Two sources may be sending the same business event. Document the source of truth, the main or secondary status, the count setting, and the deduplication logic.
The business may close work after the selected window. Review conversion lag and either adjust the window or import the deeper offline outcome.
Tag firing confirms collection, not customer value. Continue the audit through qualification, booking, completion, and revenue.
The date of the ad interaction, the form submission, the call import, and the booking can all differ. Do not compare same-month totals without checking the reporting basis.
Do not scale a campaign because a platform reports more conversions. Before increasing spend, confirm all of the following.
Conversion tracking QA checklist
0 of 24Definitions
Settings
Implementation
Business reconciliation
If a conversion action is technically correct but the sales process does not turn qualified leads into work, the fix is not another tag. If the business books jobs but Google Ads cannot see them, the next fix may be offline conversion measurement. If the data cannot be reconciled, the verdict should be limited rather than inflated.
| Field | Finding to record |
|---|---|
| Business outcome | What the owner wants the campaign to produce |
| Conversion action | Name, source, event, and status |
| Trigger condition | What caused the event to fire |
| Success evidence | What proves the event finished |
| Duplicate risk | Other tags, imports, pages, or systems that may count it |
| Main or secondary | Whether it is used for bidding or observation |
| Count rule | One, Every, or another defined rule |
| Conversion window | The setting and the reason for it |
| Attribution path | Click, call, website, CRM, or imported outcome |
| Business reconciliation | Qualified, booked, finished, revenue, or unknown |
| Privacy and consent | Applicable notices, consent, and data-handling requirements |
| Recommendation | Fix, retain, observe, import, pause, or investigate |
An inflated conversion count is usually a definition, implementation, or reconciliation problem, and not always a simple duplicate. The number that matters is not the largest conversion total. It is the count of serviceable, qualified, booked, finished, and economically sensible jobs the business can verify.
Your one-page monthly report
A tracking audit does not manufacture bookings. It tells you whether the campaign is being judged on the outcome you intended, whether the event is counted once, and how far the evidence can be followed. I count conservatively: each call and form once, and nothing I cannot show.
If the audit turns up duplicates, missing stages, or counts you cannot defend, the conversion tracking service puts it right, or ask for a free review and I will read the account directly.
They may use different definitions. Google Ads may count a form event, call event, imported GA4 event, or other configured action, while the business counts contactable or qualified enquiries. Duplicate events, failed submissions, repeated calls, attribution differences, conversion lag, and incomplete CRM reconciliation can all contribute. Investigate before assigning blame.
Submit a valid form and confirm the business receives it. Submit an invalid form and confirm that no successful-submission conversion fires. Then test a duplicate submission, a mobile submission, a success-page refresh, and a server-error state. Google Tag Manager's validation setting matters here, because Google says an unvalidated form trigger can fire on an attempt rather than a successful send.
It depends on what the action represents. Google says Every counts every conversion after an ad interaction, and One counts only one per ad click. Google describes One as a useful choice when measuring leads, and Every as useful for sales where each additional sale may add value. Defaults differ by conversion source, so open each action and record the setting rather than assuming it.
There is no universal answer. Select a source for each business event based on event quality, ownership, consent, reporting, and bidding requirements. The rule that matters is that the same business event should not be counted as two separate primary conversions.
Use call history and staff knowledge to choose a testable threshold if imported outcomes are unavailable, and account for menus and greetings. Duration is a proxy, not proof of a booking. No published duration is a universal definition of a qualified lead.
Only if they represent the optimisation goal and are reliable enough to guide bidding. Some actions can remain secondary for observation. Google distinguishes primary actions used for bidding from secondary actions used for observation, so the setting should match the decision the account is making.
The period may be immature. Review the conversion window and the time lag. Google says conversions that happen after the selected window are not recorded, and recommends setting the window long enough to cover the observed conversion distribution.
Where the identifiers, CRM, consent, and technical setup support it, offline conversion imports or enhanced conversions for leads can connect later outcomes to the original ad interaction. The imported event still needs a clear written definition and a reliable source record.
No. Accurate tracking makes the decision more honest. Profit still depends on service fit, booked-job rate, average revenue, variable costs, margin, capacity, follow-up, and the campaign's acquisition cost.
Use a sample or a full reconciliation appropriate to the account's volume, privacy obligations, and operational process. A fixed sample size is not a universal pass mark. Record the method you used and the limitations it carries.
The form sends your details to me by email. I reply personally.