Test ad landing URLs and tracking parameters together
Test the whole paid landing URL journey, including redirects, encoded queries, fragments, mobile routes and permission-dependent measurement.

Test what the visitor clicks
A valid destination pasted directly into a browser does not prove that an ad’s tracking template, redirect and mobile route work together. Start from the actual link configuration and follow the journey to the final page. Preserve the exact source URL in a protected QA record where it contains sensitive identifiers.
Google’s campaign-URL guidance explains manually supplied campaign parameters. Their presence in the source link does not prove that redirects or application code preserve them until collection. [Google Analytics: Collect campaign data with custom URLs]
A final-URL acceptance matrix
| Case | Expected public behavior | Evidence to inspect |
|---|---|---|
| Clean destination | Intended page loads with useful content | Final status and visible page |
| Tagged destination | Required campaign fields survive | Source and final query values |
| Redirected destination | Same intended content and allowed parameters | Every Location hop |
| Existing query plus tags | One valid query string with encoded values | No second question mark or broken value |
| Fragment anchor | Page reaches the intended section | Fragment remains a browser destination, not a campaign field |
| Mobile route | Usable page and working action | Actual mobile viewport and interaction |
| Denied analytics permission | Page remains usable under the configured choice | No forced collection to satisfy QA |
For an example URL that already has ?format=xlsx, additional query fields need & separators. Put a fragment after the query: ?format=xlsx&utm_source=guide#worksheet. A tag placed after # becomes part of the fragment rather than an ordinary query parameter.
const url = new URL("https://example.com/resource?format=xlsx");
url.searchParams.set("utm_source", "partner_newsletter");
url.searchParams.set("utm_medium", "email");
url.searchParams.set("utm_campaign", "planning_resource");
url.hash = "worksheet";
console.log(url.href);Use a URL parser rather than concatenating unescaped user text. Space, ampersand and hash characters inside a value need correct encoding. Keep names, emails, submitted answers and access tokens out of public campaign tags.
Verify availability and collection separately
- Inspect the current destination and tracking configuration.
- Follow the real redirect chain under the promised public access state.
- Confirm useful content, intended anchor and a working primary action.
- With required permission, inspect collected campaign values in a technical journey.
- Check that internal navigation does not unexpectedly rewrite the acquisition context.
- Save the final build/version and a narrow rollback for confirmed defects.
A link that resolves only in an administrator’s session is not a passing public destination. A page can also return 200 while showing a generic error, a wrong language or an irrelevant home page. Inspect the visible result rather than relying on status alone.
Do not call a test successful merely because an analytics request returns 204. That demonstrates a collection response for the tested event, not a confirmed inquiry or sale. Verify the business action against its own receipt contract when it is in scope.
Keep the test useful after a redirect change
Store a small fixture of representative links and expected destinations. Repeat the affected cases when changing redirects, routing, tracking templates or consent initialization. If a parameter is intentionally removed for privacy, document the intended measurement consequence rather than restoring it without review.
I would close URL QA with separate results for public page delivery, parameter preservation, permitted collection and the primary action. That gives the next release a concrete contract to check.
Sources
AI-assisted writing and an AI-generated editorial cover. Source links and checked dates are listed below; illustrative examples are labeled in the text.
- Google Analytics: Collect campaign data with custom URLs — checked 2026-10-18