Campaign operations

Campaign URL Bulk Builder

Paste or upload a CSV and turn every campaign row into a checked, ready-to-use tracking URL.

Generated URLs4
Ready rows3
Warning rows1
Failed rows1
CSV rows5

Campaign CSV

Use base_url plus UTM columns. url/source/medium/campaign aliases are also accepted.

Generated campaign URLs

Failed rows are not exported as URLs; warnings remain usable but should be reviewed.

CSV row 2

https://example.com/pricing?ref=nav#plans

Ready
sourcegooglemediumcpccampaignsummer_launch_2026contenthero_button

Ready to use.

Generated URLhttps://example.com/pricing?ref=nav&utm_source=google&utm_medium=cpc&utm_campaign=summer_launch_2026&utm_content=hero_button#plans
CSV row 3

https://example.com/demo

Ready
sourcelinkedinmediumpaid_socialcampaignsummer_launch_2026termwebsite auditcontentfounder_ad

Ready to use.

Generated URLhttps://example.com/demo?utm_source=linkedin&utm_medium=paid_social&utm_campaign=summer_launch_2026&utm_term=website+audit&utm_content=founder_ad
CSV row 4

https://example.com/blog/newsletter

Ready
sourcenewslettermediumemailcampaignweekly_digest_2026contenttop_cta

Ready to use.

Generated URLhttps://example.com/blog/newsletter?utm_source=newsletter&utm_medium=email&utm_campaign=weekly_digest_2026&utm_content=top_cta
CSV row 5

https://example.com/pricing?utm_source=old_source

Review
sourcegooglemediumcpccampaignsummer_launch_2026contenthero_button
Replaced existing utm_source value "old_source" with "google".
Generated URLhttps://example.com/pricing?utm_source=google&utm_medium=cpc&utm_campaign=summer_launch_2026&utm_content=hero_button
CSV row 6

https://example.com/about

Failed
sourcenewslettermediumemailcontentfooter
utm_campaign is required.

Campaign URL build report

Copy a compact build record for campaign QA or handoff.

# Campaign URL build report

- Rows: 5
- Ready: 3
- Warnings: 1
- Failed: 1
- Generated: 4

## Generation rules
- Required UTM fields: utm_source, utm_medium, utm_campaign
- Letter case: none
- Space replacement: none
- Existing UTM policy: replace

## Row results

### Row 2 - pass
https://example.com/pricing?ref=nav#plans
- Generated URL: https://example.com/pricing?ref=nav&utm_source=google&utm_medium=cpc&utm_campaign=summer_launch_2026&utm_content=hero_button#plans
- [x] Ready to use

### Row 3 - pass
https://example.com/demo
- Generated URL: https://example.com/demo?utm_source=linkedin&utm_medium=paid_social&utm_campaign=summer_launch_2026&utm_term=website+audit&utm_content=founder_ad
- [x] Ready to use

### Row 4 - pass
https://example.com/blog/newsletter
- Generated URL: https://example.com/blog/newsletter?utm_source=newsletter&utm_medium=email&utm_campaign=weekly_digest_2026&utm_content=top_cta
- [x] Ready to use

### Row 5 - warn
https://example.com/pricing?utm_source=old_source
- Generated URL: https://example.com/pricing?utm_source=google&utm_medium=cpc&utm_campaign=summer_launch_2026&utm_content=hero_button
- [!] Replaced existing utm_source value "old_source" with "google". - utm_source; actual=old_source; expected=google

### Row 6 - fail
https://example.com/about
- [ ] utm_campaign is required. - utm_campaign