BULK UTM / CSV
UTM CSV template for campaign links
Prepare one campaign table, then build and check up to 200 links in Bulk UTM. Start with three example rows for an email and an Instagram bio.
Free · No account · Campaign data stays in your browser
A three-row campaign, ready to edit
These are examples, not live campaign destinations. Replace every example.com URL before sharing. The hero and footer rows show how to distinguish two links in the same email.
url,utm_source,utm_medium,utm_campaign,utm_id,utm_term,utm_content
https://example.com/launch?variant=blue#details,newsletter,email,autumn-launch,launch-2026,,hero
https://example.com/launch,newsletter,email,autumn-launch,launch-2026,,footer
https://example.com/launch,instagram,social,autumn-launch,launch-2026,,bio
From spreadsheet to campaign links
Edit the template
Open the CSV in Excel or Google Sheets. Keep the headers unchanged, replace the example URLs, and add your campaign values. Export as UTF-8 CSV or TSV; .xlsx files are not supported.
Import and build
Open Bulk UTM, choose the file or paste the table with its header row. Defaults fill blank campaign cells only. Normalization starts on; turn it off if you need to preserve exact values.
Review and export
Build the links, fix errors and review warnings. Copy usable URLs, or download every row with its status and issue codes. Existing unrelated query parameters and #fragments are preserved.
The exact CSV headers
The url header is required. Other supported columns may be omitted, but each generated link needs a source, medium and campaign from its row or the defaults.
| Header | What to enter | Example |
|---|---|---|
url | A full HTTP or HTTPS destination, required on every row | https://example.com/launch |
utm_source | Where the link is shared | newsletter |
utm_medium | The channel | email |
utm_campaign | One consistent campaign name | autumn-launch |
utm_id | Optional campaign identifier | launch-2026 |
utm_term | Optional keyword | silver-ring |
utm_content | Optional label to distinguish links or creatives | hero / footer |
Common import problems and fixes
- Unsupported headers
- Use url, not Website URL; use utm_source, not Source. Remove extra columns such as owner, notes or generated_url before importing.
- Missing source, medium or campaign
- Fill the blank cell or its matching batch default. A non-empty row value takes precedence. Existing tags inside a destination URL do not fill missing columns.
- Uneven rows or a parsing error
- Every row must have the same number of cells. Let your spreadsheet export the CSV so values containing commas or quotes are escaped correctly. Keep only one header row.
- Different capitalization
- Normalization lowercases values and changes spaces to hyphens; review the output before using it. With normalization off, the tool warns about casing variants within the batch.
- A results CSV will not re-import
- The results file contains review columns. For another import, keep only the seven supported headers above. Split more than 200 campaign rows into separate batches.
Before you publish the links
This template is for the free LocalConvert builder, not a Google Ads bulk-upload format. LocalConvert generates links; it does not install analytics, track clicks or verify destination pages. Your destination needs its own measurement setup. Test the finished links before publishing, and use campaign labels rather than personal information.
For how campaign parameters appear in Analytics, see Google's documentation. Google Analytics: campaign URL documentation
Have your campaign table ready?
Import up to 200 rows, review each result, and export your links.