Campaign naming conventions that keep reporting readable
- Aug 22
- 3 min read
Updated: Aug 29
Introduction
Naming conventions are the least interesting thing in marketing and one of the few that quietly determines whether reporting works at all.
The symptom is familiar: a report with forty rows where there should be eight, no way to total a channel, and nobody able to say what `Campaign 3 - final (new)` referred to.
1. Campaign naming conventions exist to make reports totalable
The purpose is not tidiness. It is that reporting tools group by exact string match.
If half your campaigns say `facebook` and half say `FB`, no tool on earth will add them together. You will be comparing fragments and drawing conclusions from a subset without knowing it.
A convention is what lets you filter, group and total months later — which is the only reason the data was collected.
2. Encode the fields you will want to filter by
Decide what you will need to slice by, then put those fields in the name in a fixed order. For most small businesses:
channel_objective_audience_offer_date
meta_leads_local_springmenu_2026-03
google_sales_brand_none_2026-03Four or five fields is plenty. The test is whether you could filter a report to answer "how did all lead-generation campaigns perform in March" — if the name does not carry it, you cannot.
3. Fix the separators and the case
Underscores between fields, hyphens within a field, lower case throughout, no spaces.
Spaces break URLs and get encoded inconsistently. Mixed case creates duplicate rows in tools that match exactly. Mixing separators makes automated splitting impossible later.
This is arbitrary and that is the point — any consistent choice works, and consistency is the entire value.
4. Use dates that sort
Write dates as `2026-03`, never `March 26` or `03/26`.
That format sorts chronologically as text, which means your campaign list is in date order in every tool, forever, with no extra work. It also removes the day-month ambiguity that makes international reporting quietly wrong.
5. Keep a controlled list of allowed values
The convention is only half the job. The other half is a fixed vocabulary for each field.
Channels: `meta`, `google`, `email`, `partner`. Not `facebook`/`fb`/`meta` interchangeably. Objectives: `leads`, `sales`, `bookings`, `awareness`. And that is the list — a new value gets added deliberately, not invented mid-campaign.
Without a controlled vocabulary you get a convention that looks consistent and still produces six rows for one channel.
6. Match it to your UTM tags
Campaign names and UTM parameters should use the same vocabulary, so a campaign in the ad platform and its traffic in analytics are recognisably the same thing.
When they diverge, reconciling platform spend against analytics conversions becomes manual guesswork. Using one vocabulary across both is free and saves that work permanently.
7. Give the convention an owner
Conventions fail at the second person. One person writes `spring_menu`, another writes `springmenu`, and the report splits without warning.
Name an owner, keep the convention and the allowed values in one short document where campaigns get built, and route new values through that person. This is small governance and it is what makes the difference between a convention that holds for years and one that decays in two months.
8. Do not rename live campaigns casually
Renaming a running campaign can fragment its historical reporting, since some tools key on the name rather than an ID.
If the convention changes, apply it to new campaigns and leave existing ones alone. A mixed history you can explain is better than a broken one you cannot reconstruct — and the temptation to tidy retrospectively is how reporting continuity gets destroyed.
Conclusion
Encode four or five fields you will actually filter by, in a fixed order, with fixed separators and lower case throughout, and use sortable `YYYY-MM` dates.
Maintain a controlled list of allowed values, mirror the same vocabulary in your UTM tags, give the convention one named owner, and apply changes going forward rather than renaming live campaigns.
.png)



Comments