Problem
Campaign links were easy to create ad hoc, which meant attribution could fail quietly once multiple channels, owners, and proof paths were in motion.
Product management proof
I turned repeated campaign link creation into a small internal tool so attribution stayed consistent before reporting depended on it.
Problem
Campaign links were easy to create ad hoc, which meant attribution could fail quietly once multiple channels, owners, and proof paths were in motion.
What I owned
I productized the repeated link-building step into a lightweight URL generator with consistent parameters, saved rows, and a clearer workflow for non-engineering use.
Result
The team had a repeatable path for creating inspectable campaign URLs instead of relying on memory, manual formatting, or one-off spreadsheets.
The live demo uses neutral sample values. Internal campaign names, private tracking mappings, and source-system details have been generalized.
I noticed the tracking problem before it became a reporting problem.
The ordinary version of the problem looked harmless: someone needed a campaign link, so they made one. The structural problem was different. Every hand-built link was also a tiny decision about attribution, privacy, source meaning, and future evidence quality.
That works until the team has multiple channels, several owners, different proof paths, and a real need to know which push created which visitor behavior.
The failure mode was quiet. A link could look normal to the sender while still using the wrong source value, missing a campaign code, or encoding context that should have stayed private. By the time someone reviews the data, the mistake has already shipped.
I treated that as a product problem, not a documentation problem. The tension was simple: the workflow had to stay lightweight enough for people to use, but structured enough that the team could trust the evidence later. Another note about naming conventions would still depend on memory. A small tool could make the careful path easier than the improvised one.
I started from the repeated job: choose the destination, apply the right source and campaign codes, add a content label, and preserve the generated URL for review. The important constraint was not technical complexity. It was reducing the number of ways a reasonable person could create a subtly bad link.
The decision I made was to move the standard into the workflow itself. Source and campaign values became explicit choices. The generated URL appeared in a copyable output state. Saved rows made it possible to inspect what had been created instead of trusting memory.
I also separated public values from private meaning. The public URL can use
opaque codes such as s01 and c001; the readable source, audience, role
hypothesis, proof path, and send window belong in a private tracker. That
keeps attribution useful without exposing campaign strategy in the link itself.
utm_source, utm_campaign, and
utm_content parameters
Instrumentation is part of product judgment. If the team cannot connect a deliberate push to later behavior, it loses the ability to learn from the work. The decision quality downstream depends on a small operational habit upstream.
This tool is intentionally modest. That is the point. The work was noticing that a repeated manual step could become a source of bad evidence, then turning it into a small product surface before the reporting layer had to absorb the damage.
The useful move was not knowing what tracking parameters are. The useful move was seeing where the workflow would break for real users: not because they were careless, but because the system asked them to remember too much at the moment of execution.
The tool gave the team a repeatable way to create campaign URLs with consistent structure. It replaced manual formatting with bounded choices, visible output, and a reviewable row history.
What changed was the team’s relationship to a small but consequential step. Creating the link became less like typing a convention from memory and more like completing a workflow whose assumptions could be inspected before the link went out.
Many measurement failures start as workflow failures. If the creation step is ambiguous, the dashboard later inherits that ambiguity.
That is the deeper lesson I took from this work: good internal tools do not have to be large. They have to put judgment at the point where the mistake would otherwise happen.