Product management proof

Campaign Attribution Tool

I turned repeated campaign link creation into a small internal tool so attribution stayed consistent before reporting depended on it.

  • Workflow design
  • Product instrumentation
  • Marketing operations
  • Measurement design

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.

The situation

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.

Neutral campaign URL builder showing destination URL, source code, campaign code, content label, and an initial generated URL.
The public demo uses neutral sample values, but the product move is the same: turn a fragile manual convention into a clear workflow with bounded choices.

The approach

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.

What I built

  • a single-page campaign URL builder
  • neutral source and campaign code choices
  • generated URLs with consistent utm_source, utm_campaign, and utm_content parameters
  • a saved-rows table for quick review before links are used
  • a public-safe demo version with sample values instead of internal campaign context
Neutral campaign URL builder showing a generated URL and a saved row in the review table.
The output state makes the operational contract visible: generated URL, source code, campaign code, content label, and a reviewable saved row.

Open the neutral demo

Why it matters

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.

Result

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.

What I learned

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.