The UTM Bulk Builder

Scale your tracking.

A bulk UTM builder generates one tagged tracking URL for every combination in a grid of sources, mediums, and content, all sharing a single campaign name. It is a cartesian product: 3 sources times 2 mediums times 2 content variants gives 3 x 2 x 2 = 12 links in one pass. Paste your lists, and every URL comes out with utm_source, utm_medium, utm_campaign, and utm_content already appended.

How it's calculated

Three plain steps:

  • Clean each value: trim it, lowercase it, turn spaces into underscores.
  • Take the cartesian product of the source, medium, and content lists (every combination), each paired with the shared campaign.
  • Append the present utm_ parameters to the base URL, joining with ? or & so an existing query string is not broken.

Reference grid

A 2 x 2 grid (2 sources, 2 mediums) on https://example.com with campaign summer_sale produces these 4 links:

Source Medium Generated URL
facebook cpc https://example.com?utm_source=facebook&utm_medium=cpc&utm_campaign=summer_sale
facebook email https://example.com?utm_source=facebook&utm_medium=email&utm_campaign=summer_sale
linkedin cpc https://example.com?utm_source=linkedin&utm_medium=cpc&utm_campaign=summer_sale
linkedin email https://example.com?utm_source=linkedin&utm_medium=email&utm_campaign=summer_sale

How it works

Enter your Base URL and Campaign Name.

List your Sources, Mediums, and Content (one per line).

The tool generates a Cartesian Product (every possible combination).

Copy all links instantly.


Why it matters

Generate dozens of UTM links instantly with a cartesian grid. Perfect for large campaigns where you need to track multiple sources, mediums, and content variations.


The Logic

Cartesian Product: If you have 3 sources, 2 mediums, and 2 content variations, this tool generates 3 × 2 × 2 = 12 unique tracking links.

Source Medium Content Final URL

Questions people ask

How many links will a UTM grid generate?

It is a cartesian product: multiply the count of every dimension. Three sources times two mediums times two content variants gives 3 x 2 x 2 = 12 links, all sharing one campaign name. Add or remove a line in any list and the total changes with it, which is why a grid beats building links one at a time for a large campaign.

Why does the tool lowercase my values and replace spaces?

Analytics tools treat utm_source=Facebook and utm_source=facebook as two separate sources, which splits your reports. A space in a URL also has to be encoded and reads badly. So every value is trimmed, lowercased, and its spaces turned into underscores before the link is built, giving you one clean, consistent tag per source or medium.

What is the difference between utm_source, utm_medium, utm_campaign, and utm_content?

utm_source is where the click comes from (facebook, newsletter). utm_medium is the channel type (cpc, email, social). utm_campaign is the shared name that groups the whole push (summer_sale). utm_content separates variants that otherwise match, like two ad creatives or two buttons in the same email, so you can tell which one drove the visit.