On this page
Most tracking failures do not start in the analytics tool. They start on launch day, when a new template moves the element a tag was reading, a new form replaces the one with working hooks, or a redirect quietly strips the campaign parameters. A short QA pass before traffic arrives is far cheaper than explaining a broken month of reporting.
Why launches break tracking
Launches change the parts of a site that tracking depends on. New templates rename or move the elements that tags read. New forms may not carry the hidden fields that hold UTMs and click IDs. Redirects can drop query parameters on the way to the landing page. Consent banners can block tags that load too late, or never load for a visitor who rejects. New domains split sessions and break the handoff to a booking or checkout tool. Each of these is testable before launch, so test them.
1. Plan: name the key events and owners
Write the measurement plan first. A test with no expected destination cannot fail, so every key event needs a name, an owner, and a list of the places it should be counted.
- Each key event has a name, a plain-language trigger (for example, a demo form submit), and one owner.
- For every event, list where it is counted: GA4, Google Ads, Meta, LinkedIn, the CRM, or a combination.
- Mark one primary conversion and label the rest as secondary or diagnostic.
- Write the expected count for one test action of each event.
- Record the launch date and the person who can approve a rollback.
2. Tag configuration: one tag of each kind
Confirm the container and the IDs before testing any event. Most duplicate-count problems start here, with two copies of the same tag firing on the same page.
- Record the live Google Tag Manager container version, with its version name and publish date, in the QA log.
- Confirm the production GA4 measurement ID matches the production property, and that staging environments send to a separate property or do not send at all.
- Check for a hard-coded gtag snippet loaded alongside GTM. If both load the same Google tag, pageviews and events can count twice.
- Confirm each ad pixel (Google Ads tag, Meta Pixel, LinkedIn Insight Tag) loads once per page, whether from GTM or from the site code, not both.
- View the page source and the network requests on a key page to confirm the tags you expect are present and the ones you do not expect are absent.
3. Consent: test both answers
Consent decides what fires for a visitor who says no. Test the reject path as carefully as the accept path, in a fresh browser session with storage cleared, so that earlier choices do not affect the result.
- The consent management platform loads before any tag that depends on consent.
- Before the visitor makes a choice, no non-essential tag fires.
- The Consent Mode v2 signals ad_storage, analytics_storage, ad_user_data, and ad_personalization update to match the visitor’s choice.
- On accept, the signals update and the dependent tags fire as designed.
- On reject, nothing that needs consent fires. Check the network requests, not only the tag list.
- Document the default consent state applied before a choice is made, and confirm it matches your policy decision.
4. Events and parameters: fire each one and watch it arrive
Perform each key action yourself and follow it through Google Tag Manager Preview mode, which shows the tag and trigger firing, and GA4 DebugView, which shows the event and its parameters arriving.
- Each key event fires once per action. Submit the form once, load the confirmation page once, and count the events.
- Parameters such as value, currency, form_id, and lead type carry the values you expect, not blanks, undefined, or placeholder text.
- Purchase and transaction events carry a transaction_id that is unique per order.
- A failed or invalid submission does not fire the success event.
- Each event appears in GTM Preview with the trigger you planned, and in GA4 DebugView with the same parameters.
5. Attribution inputs: keep the source through the journey
Attribution starts at the landing page. If a redirect or a form drops the UTMs or click IDs, the lead reaches the CRM with no source, and the report falls back to direct or unassigned. Check the path from the ad to the CRM record, not only the landing page.
- Click a tagged test link through every redirect and confirm the UTM parameters arrive on the landing page.
- Confirm gclid, fbclid, and msclkid from a test click are present on the landing page and persist through the session.
- Check the hidden form fields on each form. They should capture the UTM and click ID values into the form submission.
- Submit a test form and confirm the CRM record stores those values in the source fields defined in the plan.
- Visit directly with no parameters and confirm the source fields are blank or set to your documented default, not carried over from an earlier session.
6. Cross-domain and thank-you pages
Checkout and booking flows on a separate domain break sessions unless the cross-domain linker is configured on both sides. Thank-you pages are the other common source of inflated numbers: if search engines index them or anyone can load them directly, they can be counted as conversions that never happened.
- Every domain in the flow (the marketing site, the booking tool, the checkout) appears in the cross-domain configuration.
- Move from the site to the booking or checkout domain and confirm the session continues rather than starting over with a referral source.
- Thank-you pages are not indexable: they carry a noindex directive and are not linked from public navigation or the sitemap.
- Load a thank-you URL directly in a new browser session and confirm the conversion tag does not fire on a bare page load.
- Confirm each conversion tag fires once, on the page the platform expects, and not on every page of the flow.
7. Ad platforms: set conversions on purpose
Each ad platform counts conversions by its own rules. Set the primary and secondary actions deliberately, and when a pixel and a server-side connection both send the same event, make sure the platform can deduplicate them. Check the current platform documentation for the exact setup steps, since interfaces change.
- Google Ads conversion actions are marked primary or secondary on purpose, and the primary actions match the plan.
- Meta events are tested in Events Manager’s test view, with the expected event names and parameters showing.
- When the Meta Pixel and the Conversions API both send an event, both carry the same event_id so Meta can deduplicate them.
- Each other platform that accepts both browser and server events has a matching identifier on both sides.
- A test conversion appears in each platform’s diagnostic or test view. Standard reporting can lag, so do not rely on it for the launch-day check.
8. CRM and offline: follow a test lead to the end
The last hop is the CRM. A test lead should arrive with its source fields, and every stage change should be timestamped so that time-to-stage can be measured later. Use a test address you control, and mark the record so it stays out of sales queues and reporting.
- Submit a test lead with a clearly marked test name and an address you control. Confirm it appears in the CRM.
- The CRM record stores the source, medium, campaign, and click ID fields defined in the plan.
- Move the test lead through one stage change and confirm the change is recorded with a timestamp.
- Test records are tagged or excluded so they do not reach pipeline reporting or a sales team queue.
- If conversions are uploaded back to an ad platform, send one test conversion and confirm it matches the expected click ID.
9. After launch: the first 72 hours and the first week
The windows below are our recommendations for how to run a launch review, not platform requirements. Adjust them to your traffic volume and sales cycle. The goal is to find breakage while it is small.
- In the first 72 hours, compare GA4 key events, CRM leads, and ad platform conversions for the same days. Some mismatch is expected; zeros and sudden spikes are not.
- Check every key event daily for a zero, which usually means a broken tag or a changed form, and for a spike, which often means duplicate firing.
- In the first week, reconcile the counts against the expected source mapping and log every gap with a reason.
- Annotate the launch date in GA4 and in the change history of each ad platform, so the step change is explainable in later reports.
- Name an owner to review the QA log at the end of week one, and close or escalate each open item.
Keep a QA log for every launch
One row per check is enough. Fill in the actual result when the check runs, not from memory afterward. A log like this turns a launch into evidence the next person can read.
| Check | Tool used | Expected | Actual | Owner | Status |
|---|---|---|---|---|---|
| Container version recorded | Google Tag Manager workspace | Live version name and date noted | Fill in | Name | Open |
| Single Google tag per page | Page source, network requests | One GA4 tag, no hard-coded duplicate | Fill in | Name | Open |
| Reject path fires no consent-dependent tags | Browser devtools, GTM Preview | No consent-dependent tags fire | Fill in | Name | Open |
| Demo form submit fires once | GTM Preview, GA4 DebugView | One key event per submit, parameters populated | Fill in | Name | Open |
| UTMs survive redirect | Browser address bar, test link | UTMs present on the landing page | Fill in | Name | Open |
| Thank-you page not indexable | Page source, sitemap check | Noindex set, not in sitemap or nav | Fill in | Name | Open |
| Test lead reaches CRM with source fields | CRM test record | Source, medium, campaign, click ID populated | Fill in | Name | Open |
To see why counts drift after launch, read the common tracking mistakes guide, the server-side tag management primer, and the dynamic UTM parameters guide. For the cross-platform side, see why your numbers never match between platforms and, for ongoing measurement support, our digital analytics service. If you want a launch reviewed before traffic arrives, book a tracking audit and we will walk the plan, the tags, and the CRM handoff with you.
Frequently asked questions
What is a tracking QA checklist?
A tracking QA checklist is a list of checks run before and after a site or campaign launch. It confirms that key events fire once, carry the right parameters, respect consent, keep attribution inputs, and reach GA4, ad platforms, and the CRM.
How do I test GA4 events before a launch?
Use Google Tag Manager Preview mode to confirm that the tag and trigger fire, then use GA4 DebugView to confirm that the event and its parameters arrive. Repeat each key action once and count the results against the plan.
What should I check in the first week after a launch?
Compare GA4 key events, CRM leads, and ad platform conversions for the same days. Investigate zeros and sudden spikes first, since they usually point to a broken tag or duplicate firing. Annotate the launch date so later reports can explain the change.
Can MetricMaven help with tracking QA before a launch?
Yes. We walk through the measurement plan, the tags, the consent path, the attribution inputs, and the CRM handoff before launch, and we log each check with a tool, an expected result, an actual result, and an owner.
