Tutorials
Claude Opus 5.5 campaign link audit: find broken UTM handoffs
Use Claude Opus 5.5 to compare campaign links against an approved naming sheet, then verify the actual destination and analytics event yourself.

Use Claude Opus 5.5 to compare campaign links against an approved naming sheet, then verify the actual destination and analytics event yourself. A link opening successfully does not prove that its campaign identity survived. The useful output is a row-by-row discrepancy report with a proposed correction and a test, not a fresh batch of unexplained URLs.
Separate three kinds of failure
Give the model the original link, expected product and locale, approved campaign values, and a redirect trace if available. Remove private identifiers before sharing. Google’s campaign URL guidance treats parameter values as case-sensitive and recommends consistent source, medium and campaign values.
| Symptom | First evidence to inspect | Acceptance condition |
|---|---|---|
| Wrong product opens | Final host, path and variant | Approved destination is preserved |
| Campaign splits into two rows | Exact decoded values | Values match the naming sheet |
| Link opens but tracking is absent | Redirects and permitted analytics event | Event contains the expected location |
| Two creatives look identical in reports | Creative identifier mapping | Each approved creative maps unambiguously |
A community tracking question describes working links without expected campaign reporting. It demonstrates the diagnostic question, not a proven redirect bug or evidence that Opus solves attribution.
A small, reproducible example
Imagine a fictional cup launch. The approved campaign is `cup_launch`, medium `email`, source `newsletter`; hero and footer are separate placements. The original destination is `https://example.com/cup?variant=blue#details`. Appending another question mark after `blue` is not a reliable way to add parameters. Putting parameters after `#details` puts them in the fragment, outside the ordinary query string.
Use a URL parser. The following locally checked example keeps both the existing variant and fragment. MDN documents URLSearchParams; the values here are fictional editorial inputs, not a live campaign or an Opus result.
```js
const u = new URL('https://example.com/cup?variant=blue#details');
u.searchParams.set('utm_source', 'newsletter');
u.searchParams.set('utm_medium', 'email');
u.searchParams.set('utm_campaign', 'cup_launch');
u.searchParams.set('utm_content', 'hero');
console.log(u.href);
The expected order is path, query, then fragment. Changing `hero` to `footer` should alter only the creative field. Do not lowercase the entire URL: a path, product identifier or unrelated parameter may be case-sensitive. If a field appears twice, report both values before choosing one; silent cleanup can conceal an upstream mistake.
## Copyable review prompt
```text
Review these campaign links without visiting or changing any account.
Inputs: original URLs, approved destination/locale/variant, naming sheet,
creative-to-placement map, and observed redirects if supplied.
Keep the original URL in every output row.
Parse query parameters separately from fragments. Flag duplicate keys,
missing approved values, case mismatches and unexpected destinations.
Preserve unrelated parameters and platform click identifiers.
Return: row ID, observed evidence, expected value, smallest proposed fix,
and a concrete acceptance test. Mark absent evidence unknown.
Never invent a redirect trace, analytics event or conversion result.
Do not put personal data in campaign values. Do not upload or publish links.
For the fictional cup example, preserve variant=blue and #details;
use newsletter / email / cup_launch and hero or footer as specified.
The Opus 5.5 prompting guide provides model-specific prompting context. This workflow is an editorial proposal, not a measured model comparison. Small batches make every proposed change easier to review.
Verify the handoff before distribution
Test one approved example per placement through the same link wrapper the audience receives. Compare the entered URL, redirect chain and final destination. Then inspect an analytics event only where your normal consent and measurement setup permits it. A missing event can have several causes; do not rewrite campaign names until the transport evidence supports that diagnosis.
Keep an acceptance sheet containing original, corrected, final observed URL and test time. Do not infer purchases from page views or expect repeated clicks to equal unique sessions. When the link is correct, pair it with a consistent visual from Panelly Studio. Panelly is the creative-production step here; this article does not claim a native Opus connection or analytics audit feature. Continue with ad-to-page consistency and asset naming.
Questions before sign-off
**Can Opus certify attribution from a URL?** No. A URL review establishes syntax and intended identity; actual collection and reporting need separate evidence.
**Should every missing report row trigger a new link?** No. Preserve the original evidence, check the reporting scope and actual event, then change only the identified defect.


