Skip to content
CRO guide · Chapter 2 of 9

How to track calls, forms, bookings and checkout

For anyone who is not sure their analytics counts the sales, leads and calls that really happen. After reading, you can set up and test tracking for each action that makes you money.

Updated 5 min readBy Pop & Soda
In one paragraph

Track every action that makes you money as a named event in one analytics tool, then check each one fires by doing it yourself. Use key events in Google Analytics 4 for forms, bookings and purchases, call tracking numbers for phone calls, and your store platform's built-in integrations for checkout. Say a fitness studio sees 40 trial sign-ups a month in its booking software but only 15 in analytics. The booking widget is dropping data, so ads look like they fail when they actually work.

Start with a short list of the actions that matter

Choose three to six actions that directly lead to revenue and track those first. In Google Analytics 4 (GA4), Google's free analytics tool, these are called key events; Google renamed them from 'conversions' in 2024. Too many key events blur your reports, so keep smaller steps as ordinary events.

Give each event a clear, consistent name and attach a value where you can. A purchase should carry its order value. A lead can carry an estimated value, such as your average deal size times the share of leads that close.

  • purchase: a completed order, with value and currency
  • generate_lead: a submitted inquiry or quote form
  • booking: a confirmed appointment, trial or table
  • phone_call: a tracked call, ideally over a set length
  • sign_up: a trial or account created, for SaaS

Forms and bookings need a clear success signal

Count a form or booking only when it succeeds, not when someone clicks the button. The simplest signal is a thank-you page with its own address. If your form shows a message on the same page instead, use the form tool's success event or a trigger in Google Tag Manager, Google's free tool for adding tracking tags without editing code.

Third-party booking tools are the most common gap. Widgets from scheduling and booking platforms often run inside a frame or on another domain, so your analytics loses track of where the visitor came from. Most popular tools offer a GA4 or Google Tag Manager integration; use it, and set up cross-domain tracking if the booking happens on a different website address.

  1. 01

    Find out exactly where the success moment happens: a page, a message or a redirect.

  2. 02

    Use the tool's native analytics integration if one exists.

  3. 03

    Otherwise create a tag in Google Tag Manager that fires on that success moment.

  4. 04

    Mark the event as a key event in GA4 and import it into your ad accounts.

  5. 05

    Submit a real test and confirm it appears with the right source.

Phone calls need their own tracking numbers

Call tracking gives each traffic source its own phone number so you can see which one made the phone ring. Dynamic number insertion is the common method: a small script swaps the number on your site depending on how the visitor arrived, while every number still forwards to your real line.

A tap on a phone link is not a call. It shows intent, but people hang up, misdial or call back later. Treat taps as a micro conversion and count completed calls, ideally those over a length you choose, such as 60 seconds, as the real result. Keep your main number consistent on your Google Business Profile and directories so your local listings stay accurate.

Checkout tracking should come from your store platform

For online stores, use the platform's own integrations rather than scripts pasted into checkout. Shopify moved stores to Checkout Extensibility and retired the old checkout.liquid file, so tracking code added there the old way no longer runs. Shopify's Google and YouTube channel and its customer events feature are the supported routes.

Ad platforms now favor server-side signals alongside the browser. Meta's Conversions API and Google's enhanced conversions both send order data from the server, which recovers some purchases that browsers block. When you run browser and server tracking together, make sure each order is counted once by using the same order ID, which the platforms use to remove duplicates.

Test every event and expect some undercounting

Tracking you have not tested is a guess. Do each action yourself, then check GA4's real-time or DebugView report to see the event arrive with the right name, value and source. Repeat after any site update, theme change or new plugin.

Analytics will never match your back office exactly. Cookie consent banners, ad blockers and private browsing all reduce what analytics sees, and in the EU and UK Google's Consent Mode affects what is recorded when people decline cookies. Once a month, compare analytics counts with your real orders, bookings and call logs. A steady gap of 10% to 20% is normal; a sudden change usually means something broke.

Do this next

Quick answers

Questions people ask

Why do GA4 and Google Ads show different conversion numbers?

They use different attribution rules and counting windows, and Google Ads only counts conversions linked to an ad click or view. Expect differences, and use your back-office records as the source of truth for totals.

Do I need Google Tag Manager?

Not always. Many platforms connect to GA4 directly. Tag Manager helps when you need custom triggers, several tags or changes without a developer.

Is call tracking bad for local SEO?

It can be if your listings show many different numbers. Keep your main number on your Google Business Profile and directories, and use dynamic numbers only on your website for visitors from tracked sources.

Free CRO check

See how search and AI see you.

One URL, no sign-up. The audit scores your page on the CRO checks from this guide and tells you what to fix first.

Run the free audit