UTM builder for Meta and TikTok ads

This free UTM builder adds utm_source, utm_medium, utm_campaign, utm_term and utm_content to a landing page URL, with one-click presets for Meta and TikTok dynamic parameters. Tag one link, tag many from a list or CSV, and build ad names to a pattern you set. It warns about capitals, # fragments and a missing source.

Free, no sign-up. Runs in your browser.

Fill with platform macros:

Where the visit came from, for example tiktok or meta.

How it came, for example paid or paid_social.

Campaign name, or a macro the platform fills in.

Optional. Often the ad set or ad group name.

Optional. Usually the ad or creative name.

Tagged URL

Enter a landing page URL to see the tagged link.

Paste the landing page URL, fill in the five fields or press a platform preset, and copy the tagged URL. The link updates as you type.

  1. Landing page URL. Paste the page the ad sends people to. If you leave out https://, the builder adds it.
  2. Fill with platform macros. Press Meta or TikTok to fill the fields with that platform's dynamic parameters. The macro table and its source appear under the result.
  3. Check source and medium. Source is where the visit came from and medium is how. TikTok's best practices page describes a paid TikTok ad as source TikTok and medium paid.
  4. Keep lowercase on. It lowercases your values, replaces spaces and symbols with underscores, and leaves macros as typed.
  5. Read the warnings under the tagged URL, then press Copy URL.

If the URL already has UTM parameters, the builder replaces them. Other parameters on the URL are kept.

Which dynamic parameters do Meta and TikTok support?

Both platforms fill macros at click time with the real campaign, ad set and ad names. These are the macros the presets use, from each platform's help page, checked 12 Oct 2026.

Meta (Facebook and Instagram), from Specifications for dynamic URL parameters:

Macro Filled with
{{campaign.name}} Campaign name
{{campaign.id}} Campaign ID
{{adset.name}} Ad set name
{{adset.id}} Ad set ID
{{ad.name}} Ad name
{{ad.id}} Ad ID
{{placement}} Placement
{{site_source_name}} Site source name

Meta's own example is utm_campaign={{campaign.name}}&utm_content={{ad.name}}. Name parameters keep the name the ad had when it was first published, so renaming an ad later does not change the value in your reports.

TikTok, from About UTM parameters:

Macro Filled with
__CAMPAIGN_NAME__ Campaign name
__CAMPAIGN_ID__ Campaign ID
__AID_NAME__ Ad group name
__AID__ Ad group ID
__CID_NAME__ Creative name
__CID__ Creative ID
__ADID_V2_NAME__ Ad name (upgraded Smart+ campaigns only)
__ADID_V2__ Ad ID (upgraded Smart+ campaigns only)
__PLACEMENT__ Placement type (TikTok, TikTok Pangle)

TikTok's URL Auto-attach fills the source (TikTok) and medium ("Paid") for you, along with campaign ID and name. TikTok suggests utm_term for your own string, such as the ad group name.

What do the presets fill in?

Field Meta preset TikTok preset
utm_source Empty: type your own, for example meta tiktok
utm_medium Empty: type your own, for example paid_social paid
utm_campaign {{campaign.name}} __CAMPAIGN_NAME__
utm_term {{adset.name}} __AID_NAME__
utm_content {{ad.name}} __CID_NAME__

Meta's page does not set source or medium, so the Meta preset leaves them for you, and the builder warns until source is filled.

Worked example: one URL with each preset

Paste https://example.com/product, press TikTok, and leave lowercase on. The tagged URL is:

https://example.com/product?utm_source=tiktok&utm_medium=paid&utm_campaign=__CAMPAIGN_NAME__&utm_term=__AID_NAME__&utm_content=__CID_NAME__

No warnings show, because source is set, nothing has capitals outside the macros and there is no # in the URL.

Now press Meta, type meta as source and paid_social as medium. The result is:

https://example.com/product?utm_source=meta&utm_medium=paid_social&utm_campaign={{campaign.name}}&utm_term={{adset.name}}&utm_content={{ad.name}}

Two cases that trigger warnings:

  • A # in the URL. https://example.com/#top with source meta becomes https://example.com/?utm_source=meta#top. The builder moves the # part to the end and warns, because TikTok's best practices page says everything after a # is dropped.
  • Capitals. With lowercase off, a medium of Paid and no source gives two warnings: source is empty, and the medium has capital letters.

With lowercase on, a campaign typed as Spring Sale!! 2026 becomes spring_sale_2026.

How do you tag many URLs at once?

Open Many URLs (CSV) and paste either a plain list or CSV rows. The table shows each tagged URL with its warnings, and Download CSV saves anglr-utm-urls.csv with the columns url, tagged_url and warnings.

  • Plain list: one URL per line. Every URL gets the shared values, which you can fill with a preset.
  • CSV: start with a header row that has a url column and any of utm_source, utm_medium, utm_campaign, utm_term and utm_content. Each row uses its own values, and empty cells fall back to the shared values. Commas or tabs both work, so you can paste straight from a spreadsheet.

Use Paste a CSV example to see a TikTok row and a Meta row side by side.

How do you set an ad naming convention?

Open Ad names, fill in the parts you use, put them in your order with the up and down arrows, and pick a separator: _, | or -. Empty parts are skipped.

The parts are launch date, product, format, angle, hook, creator or editor, and version. Each part is lowercased and its spaces become a joining character that differs from the separator, so the parts stay readable. Fill in an example with _ as the separator gives:

2026-10-12_water-bottle_ugc-selfie_keeps-ice-all-day_h1_creator-initials_v1

Name each ad this way before you publish it, then put {{ad.name}} (Meta) or __CID_NAME__ (TikTok) in utm_content. Each visit then carries the format, angle and hook, so you can compare results by creative in your analytics, for example cost per purchase with the CPA calculator or return on spend with the ROAS calculator. A fixed pattern also makes creative testing easier to read.

What are the limits of the UTM builder?

  • It does not check that macros fill. The builder keeps macros as typed. Whether a macro is replaced depends on the platform and campaign type; check the live link in the platform's preview before launch.
  • Only the five standard UTM fields. Other parameters already on your URL are kept, but the form has no fields for custom parameters.
  • One spelling at a time. Values are case-sensitive. TikTok's Auto-attach writes TikTok and "Paid", while the preset writes tiktok and paid. Pick one spelling and use it on every campaign, and check that each parameter appears only once, since TikTok's best practices page says analytics may keep only the last value of a repeated parameter.
  • Nothing is saved. Values stay in the browser tab and are not stored or sent anywhere.

Brands that want a steady supply of ads to test can see how Anglr works for brands: Anglr can run a full analysis of your brand and write the briefs, and videos arrive daily on a rolling basis. All free tools are listed on the tools page.

Glossary: ROAS · CPA · CTR

FAQ

What is a UTM builder?

A UTM builder adds tracking parameters to the end of a link, such as utm_source=tiktok, so your analytics tool can tell which platform, campaign and ad a visit came from. This one runs in your browser and needs no account.

What UTM parameters should I use for Facebook ads?

Meta's own example is utm_campaign={{campaign.name}}&utm_content={{ad.name}}. Add your own utm_source and utm_medium, and optionally utm_term={{adset.name}}. The Meta preset fills the three macros for you.

Does TikTok add UTM parameters automatically?

It can. TikTok's URL Auto-attach fills the campaign source (TikTok), medium (Paid), ID and name, per TikTok's help page. Use this builder when you want a fixed set of parameters or the same pattern across platforms.

Are UTM parameters case-sensitive?

Yes. TikTok's best practices page says analytics tools may treat two links that differ only in capitals as different. Leave the builder's lowercase option on to keep one spelling.

Can I build UTM links in bulk?

Yes. Open Many URLs (CSV), paste one URL per line to apply shared values, or paste CSV rows with a url column to set values per row. Download the result as a CSV.

What is a good ad naming convention?

One fixed order of parts, such as launch date, product, format, angle, hook, creator and version, joined by one separator and written in lowercase. The Ad names tab builds names to the order you set.

Make AI ads?

Get paid on performance for AI ads that perform.

Get started for free

Run ads for a brand?

Every format from your winning scripts. Invite only.

Request access

Sources

Checked: 12 Oct 2026