localconvert
Open Bulk UTM

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

  1. 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.

  2. 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.

  3. 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.

The exact CSV headers
HeaderWhat to enterExample
urlA full HTTP or HTTPS destination, required on every rowhttps://example.com/launch
utm_sourceWhere the link is sharednewsletter
utm_mediumThe channelemail
utm_campaignOne consistent campaign nameautumn-launch
utm_idOptional campaign identifierlaunch-2026
utm_termOptional keywordsilver-ring
utm_contentOptional label to distinguish links or creativeshero / 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.