All guides - Published September 9, 2026
A tracking audit should answer two questions independently: can a visitor complete the intended landing-page journey, and which measurement signals remain available under each tested privacy state? Combining those questions into one pass/fail label hides the most useful diagnosis.
Build a request inventory
Start with a clean session and preserve the redirect chain from the campaign URL to the final page. Capture document, script, image, frame, beacon, fetch, and XHR requests from initial navigation through the intended conversion action. Record the initiator and owner of each third-party hostname.
For every request, keep a bounded record of:
- hostname and path pattern, without retaining personal or secret query values;
- resource type, initiator, status, redirect, and timing;
- the business owner and stated purpose of the integration;
- whether it occurs before consent, after consent, or only after an interaction;
- whether page navigation or conversion depends on its success.
Separate essential behavior from measurement
Classify each dependency as essential page delivery, user-requested functionality, security or fraud control, analytics, attribution, advertising, or unknown. The exact labels can vary, but every request should have an owner and a reason to exist.
Optional measurement must not become a hidden prerequisite for navigation, form submission, checkout, or confirmation. If a tag fails, the page should degrade predictably and the core action should still produce a clear result for the visitor.
Test consent states explicitly
Run separate sessions for the relevant consent choices. Confirm that the request inventory changes as intended and that tags do not fire merely because a previous session stored a choice. Include regional behavior when the campaign targets locations with different consent experiences.
- No stored consent decision.
- Optional measurement declined.
- Relevant optional categories accepted.
- Consent changed or withdrawn during the session.
The audit records observed behavior; it is not a legal determination. Policy owners should review the configured purposes, notices, and retention separately.
Look for common failure modes
- Duplicate containers or pixels sending the same event more than once.
- Campaign parameters lost or copied incorrectly across redirects.
- Consent code that delays the page indefinitely when a vendor is unavailable.
- JavaScript errors caused by assuming an optional analytics object always exists.
- Conversion events firing before the action succeeds or on page refresh.
- Known tracking requests matched by privacy or blocking rules.
- Large tag chains that consume bandwidth before useful content becomes interactive.
Use a small, controlled test matrix
Begin with a baseline browser, then change one variable per run. A practical matrix covers the most important browser, mobile viewport, consent states, one or more blocker profiles, and a privacy-restricted environment. Add devices or regions only when they reflect real campaign traffic or a reported defect.
For each run, score outcomes separately:
- Page delivery: the destination loads and primary content is understandable.
- Core action: the intended form, checkout, download, or navigation completes.
- Measurement: expected consented events are sent once with the intended context.
- Compatibility: blocked or limited requests are identified with evidence.
Produce an evidence package
A useful report includes the tested URL, time, region, browser and blocker versions, consent state, ruleset versions, redirect chain, request summary, console errors, screenshots, and a short reproduction path. Redact tokens, personal data, and complete sensitive query strings before sharing evidence.
Label static-rule matches, browser observations, and heuristic recommendations separately. An AI review may help organize evidence or assess creative clarity, but it should not be presented as measured campaign performance or legal compliance.
Turn findings into durable fixes
- Remove duplicate, unused, or ownerless tags.
- Load optional integrations only in the consent states that require them.
- Protect core code from missing third-party globals and failed requests.
- Use server-confirmed business events where appropriate instead of relying on page-load proxies.
- Retest the smallest affected path after each change, then repeat the launch matrix.
Do not respond to a blocker match with domain rotation, cloaking, or obfuscation. The objective is a reliable page with proportionate measurement, not bypassing a visitor's expressed choice.
Run the Quick Check to inspect immediate delivery and static filter-list exposure. Use the Deep Audit request when the campaign needs a controlled browser matrix and an evidence-led remediation plan.