Campaign naming and UTM builder
Set your naming convention once. Build campaign names and tracking links in bulk, and catch the mistakes before they go live.
Free, no signup. Everything runs in your browser: nothing you type is sent to us. Your convention and rows are saved only in this browser. We only count which buttons get used, with no cookies.
Welcome back.
What we catch
Pick one to see it caught in a real link.
1 Set your naming pattern
Your names are built from parts, like Brand, Platform and Geo. Tick the parts you want and use the arrows to put them in order. You only do this once: this browser remembers it.
Campaign name
Ad set name
Who sees the ad and where. Paste it into the ad set name (Google calls it the ad group).
Ad name
What the ad shows. Paste it into the ad name.
Your names will look like this Updates as you change the parts above
Campaign
Ad set
Ad
Which macros go in your links
Each platform in your campaigns is listed below with the usual choice already set, so you can skip this. Change one only if your reports need something else, or pick None to leave that tag out.
Saved in this browser only. Export it as a small file to use on another computer or share with your team, then load that file there with Import. Import only reads files exported from this tool.
2 Add your campaigns
Add one row for each campaign. Fill in the parts you chose in step 1 and the page people should land on. You don't write the campaign name yourself: step 3 puts the parts together for you. When you choose a platform, the source and medium fill in by themselves. Cells with a small arrow have a list of common choices: click the cell to see it, or type your own.
Paste your sheet as it is. Your columns can be in any order and have your own header names: we match them by name, and you check the match before anything is added.
Copy rows from Excel or Google Sheets, with your header row if you have one, and paste them here.
No sheet yet? (optional) with the columns from step 1.
3 Copy your names and links
Made from your rows in step 2, and updated as you type. Paste each name into your ad platform's campaign name, and each link into the ad's website address.
Already have links? Check them for mistakes before launch.
Check your links4 Check links you already have
Paste tracking links, one per line, from an ad platform export, a sheet or a brief. Tags on their own (like utm_source=facebook&utm_medium=paid_social from Meta's URL parameters field) work too. They are checked against your naming convention, and Macros for Meta, Google, Microsoft Ads, TikTok, DV360 and CM360 are checked by name for the platform in utm_source. Nothing is saved or sent anywhere.
The fixed list only makes safe changes: lowercase, spaces turned into _, restored macro braces and exact duplicate tags removed. Anything else is left for you to decide.
Coming next: the pre-flight checker for Meta and Google
Upload your Ads Manager or Google Ads export, tell it what you meant, and it flags what launched wrong: wrong geo, an extra zero on the budget, a missing end date, the wrong creative. Your file stays in your browser.
What it checks
- Empty parts, so no campaign launches as
Acme__US_. - Duplicate names across your rows.
- Special characters (
? & # % /and quotes) that break reports and links. - A part that contains your separator, which makes names hard to split later.
- Landing pages that are not valid, use http, or already carry UTM tags.
- Missing utm_source or utm_medium.
New to naming conventions?
Read the campaign naming convention guide: a template for campaign, ad set and ad names, and how they go into your UTM tags.
Running Google Ads?
Read tracking template vs final URL suffix: where UTM tags go in Google Ads, with a suffix you can copy.
Checking links you already have?
Use the UTM link checker: paste a whole list and see what will break your reports.
FAQ
Questions, answered
Naming conventions, bulk links and Meta macros, in plain words.
Still stuck? Email hello@weekendproof.com
What is a good campaign naming convention?
One that puts the same parts in the same order every time, with one separator, one letter case and no empty parts. A common pattern is Brand_Platform_Objective_Geo_Audience_YYYYMM, for example acme_meta_sales_us_prospecting_202611. Pick the parts you report on, set them once in step 1, and the builder applies them to every campaign. Switch on Also name ad sets and ads to get ad set and ad names too.
Can I build UTM links in bulk?
Yes. Add one row per campaign, or paste rows from a spreadsheet in any column order: the builder matches columns by their header names. It makes a campaign name and a tracking link for every row, and you can copy them all or download a CSV.
Which Meta ads URL parameters can fill in names automatically?
Meta Ads Manager fills in eight dynamic parameters at click time: {{campaign.id}}, {{campaign.name}}, {{adset.id}}, {{adset.name}}, {{ad.id}}, {{ad.name}}, {{placement}} and {{site_source_name}}, plus {{media_type}} for Advantage+ catalog ads. They need double curly braces and the exact spelling. The link check flags single braces and misspelt names, which Meta would not fill in.
Does my data leave my browser?
No. Names, links and your naming convention are built and checked in your browser and saved only in this browser. We count which buttons get used, with no cookies and nothing you type.
Is it free?
Yes. The builder and the link checker are free, with no signup and no limit on rows.