To set up conversion tracking properly, you need three things in place before you touch a tag: a written list of the actions that count as a conversion, one system that owns the official number, and a verification step that proves each event fires once and only once. Most tracking that reports garbage was never wrong in the code. It was wrong in the plan.

If your analytics says 180 leads last month and your inbox says 42, you do not have a reporting problem. You have untracked definitions, duplicate events, and nobody agreeing on what a lead is. This guide walks the fix.

Start With a Tracking Plan, Not a Tag

A tracking plan is a plain spreadsheet. One row per conversion. Five columns: event name, what the user did, where it happens, which system records it, and what counts as a valid instance.

Here is what that looks like for a typical service business:

Event nameUser actionPageRecorded inValid when
lead_form_submitSubmits contact form/contactAnalytics + CRMForm returns success message
quote_requestSubmits multi-step quote form/get-a-quoteAnalytics + CRMFinal step completes
phone_clickTaps phone numberAny pageAnalytics onlyMobile sessions only
guide_downloadSubmits email for a guideGuide pagesAnalytics + email toolEmail confirmed in list
booking_confirmedCompletes paid booking/checkoutPayments + AnalyticsPayment succeeds

Two rules make this plan useful. First, event names are lowercase with underscores and never change once live, because renaming breaks every historical report. Second, you decide now which events are real conversions and which are engagement signals. A phone click is a signal. A completed quote request is a conversion. Mixing them is how a business ends up believing it generates four times the leads it actually gets.

Pick One System of Record

Analytics, your ad platforms, your CRM and your email tool will all report different numbers, and all of them will be technically defensible. Ad platforms count conversions against the click that led to them and use their own attribution windows. Analytics counts sessions. Your CRM counts people.

Choose the CRM as your system of record for leads and the payment processor for revenue. Everything else is a directional tool for optimizing channels. When someone asks how many leads came in, the answer comes from one place, every time.

The Five Steps to Set Up Conversion Tracking

Work in this order. Skipping ahead is what produces tracking nobody trusts.

  1. Audit what is already firing. Open your tag manager and list every existing tag, trigger and conversion. You will almost always find legacy tags from an old agency, two copies of the same pixel, and conversions pointed at page views that no longer exist. Write them down before changing anything.

  2. Install one container, once. Your tag manager container goes in the site header, site-wide, through the theme or a header-injection plugin rather than pasted into individual pages. Two containers, or a container plus hardcoded pixels doing the same job, is the single most common cause of doubled conversion counts.

  3. Fire conversions on confirmed success, not on click. A button click is not a form submission. Trigger the event on the form plugin’s success callback, on the thank-you page load, or on the payment processor’s confirmation webhook. If your form redirects to a thank-you page, use that page view as the trigger and block direct navigation to it from menus and sitemaps so stray visits cannot inflate the count.

  4. Pass an ID with every conversion. Send a unique identifier — submission ID, order ID, or email hash — with each event. This is the only reliable way to deduplicate later and the only way to match an analytics conversion back to a CRM record when you need to prove quality, not just volume.

  5. Verify with a real test. Submit each form yourself. Watch the event fire in your tag manager’s preview mode, then confirm it appears exactly once in analytics, exactly once in the CRM, and that the record contains the source data you expect. Do this on desktop and on a phone. Repeat for every event in the plan.

Capture Source Data at the Moment of Conversion

Tracking that tells you a lead happened but not where it came from only solves half the problem. When you set up conversion tracking, write the traffic source into the lead record itself.

The practical approach is hidden form fields. Add four hidden fields to every form — source, medium, campaign and landing page — and populate them with a small script that reads the campaign parameters from the URL on arrival, stores them in a cookie or session storage for the visit, and writes them in on submit. If the visitor arrived with no campaign parameters, store the referring domain and the first page they landed on.

This matters because the lead record outlives the analytics session. Six months later, when you want to know which channel produced the three customers who are still paying you, the answer is in the CRM, not in a report window that has already rolled over.

Handle Consent Without Breaking Everything

If you serve visitors in regions with consent requirements, your tags need to respect the consent state rather than simply not firing. Configure consent mode in your tag manager so analytics and ad tags wait for a decision, and accept that your numbers will under-report by the share of visitors who decline. Under-reporting consistently is workable. Under-reporting unpredictably, because tags fire or fail depending on which banner loaded first, is not.

Mistakes That Quietly Ruin the Data

  • Counting the same lead twice. A thank-you page refresh, a back-button return, or a form that submits on both click and submit events all double-count. The unique ID from step four catches this.
  • Tracking soft actions as conversions. Scroll depth, time on page and video plays belong in engagement reports, never in the lead count.
  • Leaving internal traffic in. Your own team, your developer and your contractor fill in forms during testing. Filter your office IP and tag test submissions so they can be excluded.
  • Never revisiting the plan. You add a new form, a new offer or a new landing page, and nobody adds the event. Three months later the report is missing a third of your leads. Review the tracking plan whenever you launch anything that collects contact details.
  • Trusting platform-reported conversions as a total. Add up the conversions reported by each ad platform and you will exceed your actual lead count, because platforms each claim credit under their own rules. Use them to compare one campaign against another inside the same platform, not to total your results.

Prove It Before You Spend Against It

Once setup is done, run a reconciliation for one full month. Export conversions from analytics, leads from the CRM, and sales from the payment processor. Line them up. You are looking for a variance you can explain — consent-declined sessions, phone leads that never touch a form, offline sales — not a variance you have to guess at.

When the three sources agree within a margin you understand, your tracking is trustworthy. Only then does it make sense to make budget decisions from it.

Conversion tracking is not a one-afternoon technical job. It is a definition exercise with a technical implementation attached, and the definitions are the part that makes or breaks it. Write the plan, pick the system of record, fire on confirmed success, pass an ID, and verify by hand.

If you want an outside read on what your current data is actually telling you about who is buying and why, start with the Customer Insights Research page on this site.

Editorial & AI Disclosure