Skip to content

Free tool

Bulk UTM generator from CSV

A bulk UTM generator tags many links at once. Paste a CSV with url, source, medium and campaign columns (term and content are optional), one row per link, and every row gets a correctly encoded UTM link, previewed on the page and downloadable as one CSV. Rows with a mistake are flagged, not dropped, and nothing leaves your browser.

Tag a list of links with UTM parameters

Term and content are optional. Header names also match utm_source, utm_medium, etc.

3 rows parsed, 3 tagged successfully.

Source URLCampaignTagged URL / error
https://example.com/pricingspring_launchhttps://example.com/pricing?utm_source=instagram&utm_medium=social&utm_campaign=spring_launch&utm_content=bio_link
https://example.com/pricingspring_launchhttps://example.com/pricing?utm_source=newsletter&utm_medium=email&utm_campaign=spring_launch&utm_content=april_issue
https://example.com/blog/tipsspring_launchhttps://example.com/blog/tips?utm_source=facebook&utm_medium=social&utm_campaign=spring_launch&utm_content=feed_post

What are UTM parameters?

Tags added to the end of a link that tell your analytics where a visit came from. Google Analytics reads them and groups visits by source, medium and campaign, so you can see which posts, emails or ads actually brought people in:

UTM parameters (Google Analytics Help, November 2026)
ParameterWhat it recordsExampleUse it
utm_sourceWhere the visit came frominstagram, newsletterAlways
utm_mediumThe kind of channelsocial, email, cpcAlways
utm_campaignThe campaign or promotionspring_launchAlways
utm_contentWhich creative or link in the postcarousel_a, bio_linkOptional
utm_termThe paid keywordsocial_schedulerOptional, for search ads
utm_idA campaign IDsl_2026_q2Optional
Illustration: a hand holding a spreadsheet of rows beside a funnel machine, out of which lines lead to link bars with coloured tag chips on their ends, and a bar chart card above.
A whole spreadsheet of links, tagged in one go.

What should the CSV look like?

One row per link, with a header row. Headers can be written either way, and case does not matter:

Columns the bulk UTM builder reads
ColumnExampleRequired
urlhttps://example.com/springYes
source (or utm_source)instagramYes
medium (or utm_medium)socialYes
campaign (or utm_campaign)spring_launchYes
term, contentcarousel_aNo

Tagging a single link? Use the UTM builder.

How to bulk-build UTM links from a CSV

  1. Prepare your CSV. Include url, source, medium and campaign columns; term and content are optional.
  2. Paste it into the box. Paste your CSV text directly into the textarea, replacing the worked example.
  3. Check the preview table. Review the tagged URL or error shown for each row before downloading.
  4. Fix any flagged rows. Correct a row missing a destination URL, then re-check the preview.
  5. Download the tagged CSV. Download the full result as a CSV once every row looks correct.

What does it look like in practice?

Tagging three links for one campaign

Three rows all sharing campaign spring_launch, but with source instagram, newsletter and facebook, each build a distinct tagged URL from the same base page.

A row with no destination URL

Row 2 left with an empty url column is returned with an error message instead of a tagged link, and the other rows still process normally.

How should you name UTM values?

The same way every time, or your reports split one source into several. Use lowercase, join words with underscores, and keep one spelling per source (instagram, never IG or Instagram). Agree the list once with the UTM naming convention tool, then paste it here for every campaign.

How do you schedule social posts with tagged links?

Put each tagged URL in the link column of a SkedCast bulk-import CSV, and every post carries its tracking from the moment it publishes. Or skip the spreadsheet: switch on UTM defaults in SkedCast and it adds your source, medium and campaign to every link in a post you write, using each network’s name as the source when you leave it blank, and never overwriting a link you tagged yourself.

Diagram: paste a CSV of links with source, medium and campaign, check the tagged preview, download the CSV, then schedule the posts with the tagged links.
From a list of links to scheduled, tracked posts.

Bulk UTM generator FAQ

What columns does the CSV need?
url, source, medium and campaign are used to build the tag; term and content are optional extra columns.
What is a bulk UTM generator?
A tool that adds UTM tracking parameters to a whole list of links in one go, instead of tagging each URL by hand, so every link in a campaign is tagged the same way.
Does this use the same logic as the single UTM builder?
Yes, every row is built exactly as the one-at-a-time UTM builder builds a link, so results never disagree between the two tools.
What happens to a row with a mistake?
It is still included in the result with its specific error message, rather than being silently dropped from the output.
Can my column headers say utm_source instead of source?
Yes, the tool matches either header spelling, along with a few other common variants, case-insensitively.
Is my pasted data sent to a server?
No, the CSV is parsed and every URL is built entirely in your browser, with nothing uploaded anywhere.
How many rows can I paste at once?
There is no hard limit built into the tool; very large pastes are only limited by your browser’s own performance.
Does the download keep my original columns?
Yes, the CSV download includes every original column plus the tagged URL or the error for each row.
How do I bulk-add UTM parameters from Google Sheets or Excel?
Put url, source, medium and campaign in columns, copy the sheet (or export it as CSV) and paste it into the box; the download opens back in Sheets or Excel with a tagged-URL column added.
Which UTM naming convention should I use?
Lowercase values, one word per meaning joined by underscores, and the same source names every time (for example instagram, not IG or Instagram). The UTM naming convention tool builds a consistent scheme for your team.
Can I schedule the tagged links as social posts?
Yes. Put each tagged URL in the link column of a SkedCast bulk-import CSV and the posts carry the tracking from the moment they publish.
Which UTM parameters should every link have?
utm_source, utm_medium and utm_campaign. Google Analytics says to always use those three; content, term and id are optional.

Sources

The UTM parameters on this page are described in Google Analytics’ help centre:

Ready to broadcast everywhere?

Sign up free — no credit card. You land on the Free plan, and you can start a one-time 7-day Studio trial from your workspace whenever you are ready. Connect your first accounts, import a batch, and watch one post fan out across every platform.