Free founder utilities

UTM Campaign Builder

Build clean, error-free tracking URLs for Meta Ads, TikTok Drops, Klaviyo flows, and creator affiliates.

No signup requiredNothing to installSee all free tools →
Analytics & Attribution
Generated Campaign Link

Tracking attribution across multiple channels?

DNA builds automated daily data reports directly in your Slack/Telegram so you know real ROAS every morning.

Take the 2-minute store audit →

Want this emailed to you?

One email, no spam. Unsubscribe any time.

Tracking attribution across multiple channels?

DNA builds automated daily data reports directly in your Slack/Telegram so you know real performance every morning.

Take the 2-minute operation audit →
Never hunt for this tool again. Tell Google to prioritize DNA calculators when you search

How to read a UTM link

A UTM link is your normal page URL with a handful of tracking parameters appended:utm_source (where the click came from, e.g. meta, klaviyo, a creator's handle), utm_medium (the channel type, e.g. paid_social, email, affiliate), and utm_campaign (the specific push this link belongs to, e.g. a product launch or a flash sale). Google Analytics and most attribution tools read these parameters automatically and group sessions by them, which is the entire reason UTMs exist: without them, every click from every channel lands in your analytics as generic traffic, and you lose the ability to tell which channel actually drove the session.

A worked example

A creator collab post linking to your homepage with no UTM shows up in GA4 as referral or, worse, direct traffic, indistinguishable from someone who typed your URL from memory. The same link built as?utm_source=creator_handle&utm_medium=affiliate&utm_campaign=aug_launchshows up as its own row in your channel report, with its own session count, conversion rate, and revenue attribution. Multiply that across four or five active channels and the difference between using UTMs consistently and not using them at all is the difference between having a real channel report and guessing which platform is actually working.

What to do when your links are inconsistent

The most common UTM mistake is not skipping them, it's using them inconsistently:meta on one link, Meta or facebook on the next. Analytics tools treat these as three separate sources, which quietly fragments your reporting even though every click came from the same platform. The preset buttons on this tool exist specifically to stop that: pick the same preset every time for a given channel, and every link your team builds stays consistent. If you are handing links to a creator or an agency, send them the finished link, not the raw parameters, so there's no room for a typo to fragment the data.

utm_source vs utm_medium vs utm_campaign, in plain terms

utm_source answers "which platform." utm_medium answers "what kind of channel," and it should come from a short, fixed list you reuse everywhere: paid_social, email, affiliate, organic_social, referral. utm_campaignanswers "which specific push," and unlike the other two, it is meant to be different every time, one value per launch, sale, or send. The mistake that fragments reporting fastest is treating campaign like source, using a new made-up value for the channel field on every link instead of picking from the same short list. Keep source and medium boring and repeatable, and let campaign carry all the specificity.

Once your links are consistent, the next place to check is whether the campaigns behind them are actually profitable, not just tracked. TheBreak-Even ROAS Calculator runs that number from your real unit economics. For the operational side of running multiple campaigns without losing hours to manual tracking, seehow a store loses sales while you sleep.

A note on affiliate and creator links specifically

Creator and affiliate links deserve their own utm_source value per creator, not a shared "affiliate" bucket, if you ever want to know which specific person actually drove sales. A shared source tells you affiliate traffic exists; a per-creator source tells you which relationship is worth renewing and which one to let lapse. This costs nothing extra to set up, it just means picking a short, consistent handle for each creator (their Instagram handle with underscores instead of dots works well) and using the same one every time that person posts a link.