Campaign URL Builder
Bulk URL builder for paid campaigns.
Shared campaign setup
Set the landing URL and campaign level tags once. Add creative variants below and we build every URL in one pass.
Variants
One row per creative. Format: content, term, id. Term and id are optional. Comma or pipe separated.
| # | Content | Term | ID | Final URL | Action |
|---|---|---|---|---|---|
| 1 | carousel_v1 | running_shoes | 120207000000000001 | https://yourbrand.com/collections/new?utm_source=meta&utm_medium=paid_social&utm_campaign=winter_sale_2026&utm_id=120207000000000001&utm_content=carousel_v1&utm_term=running_shoes | |
| 2 | carousel_v2 | running_shoes | 120207000000000002 | https://yourbrand.com/collections/new?utm_source=meta&utm_medium=paid_social&utm_campaign=winter_sale_2026&utm_id=120207000000000002&utm_content=carousel_v2&utm_term=running_shoes | |
| 3 | reels_v1 | marathon_prep | 120207000000000003 | https://yourbrand.com/collections/new?utm_source=meta&utm_medium=paid_social&utm_campaign=winter_sale_2026&utm_id=120207000000000003&utm_content=reels_v1&utm_term=marathon_prep | |
| 4 | static_v1 | — | — | https://yourbrand.com/collections/new?utm_source=meta&utm_medium=paid_social&utm_campaign=winter_sale_2026&utm_content=static_v1 | |
| 5 | static_v2 | — | — | https://yourbrand.com/collections/new?utm_source=meta&utm_medium=paid_social&utm_campaign=winter_sale_2026&utm_content=static_v2 |
Build Every Campaign URL In One Pass, Not One At A Time
A launch with ten creatives, three placements and two landing pages is sixty URLs. Built one at a time in a spreadsheet, half of them end up with mixed case sources, a typo in the campaign name or a missing utm_content. GA4 then reports the launch as six different campaigns and your CAC breakdown is unusable.
The bulk builder locks the shared tags at the top and generates a table of URLs from a simple variant list. One convention, one paste into your ad manager, one clean row per creative in GA4.
content, term, id carousel_v1, running_shoes, 120207000000000001 carousel_v2, running_shoes, 120207000000000002 reels_v1, marathon_prep, 120207000000000003 static_v1, , static_v2, ,
Comma or pipe separated. Leave a field empty to skip that UTM. Every row inherits the shared source, medium, campaign and landing URL from above.
Lock The Vocabulary Before You Build The Sheet
The bulk builder is only as clean as the words you feed it. Use one lowercase source per platform, one medium per delivery type and one campaign name per launch. Reuse them across every asset in the launch.
| Placement | source | medium | campaign example | content example |
|---|---|---|---|---|
| Meta Advantage+ | meta | paid_social | winter_sale_2026 | carousel_v2 |
| Meta Retargeting | meta | retargeting | winback_q1_2026 | reels_v1 |
| Google Search Brand | cpc | brand_search_2026 | sitelink_shipping | |
| Google Performance Max | pmax | pmax_evergreen_2026 | asset_group_a | |
| Google Display | display | display_prospecting | banner_728x90 | |
| YouTube | video | yt_launch_2026 | bumper_v1 | |
| Klaviyo Email | klaviyo | welcome_flow | email_2_offer | |
| messaging | abandoned_cart | reminder_1 | ||
| Influencer Paid | influencer_handle | paid_social | creator_launch_2026 | story_v1 |
Where Bulk URL Builds Quietly Break Reporting
Half the URLs say winter_sale_2026, the other half say winter-sale-2026. GA4 splits it into two campaigns and every dashboard is wrong. Lock the campaign name at the top and never edit per row.
If every carousel is tagged carousel, you cannot compare v1 vs v2 in reporting. Version every creative in the content field, always.
Without utm_id you cannot join Meta or Google ad level spend to GA4 sessions cleanly. If your BI stack does the join, always populate id.
UTMs are for external inbound traffic only. Tagging a link inside your own site overwrites the original source and destroys attribution.
Meta, meta, Facebook, facebook_ads are four different sources in GA4. Pick one word per platform and force lowercase in the builder.
Ad managers rarely show you the tagged URL after the fact. Export the CSV every launch and keep it in the campaign brief, that is your audit trail.
Want The Launch UTM Sheet We Use With Clients?
We ship a governed launch playbook with every tracking engagement, source, medium and campaign vocab locked, plus a QA checklist so every URL going into Meta and Google matches what GA4 expects.
