It survives a filter
The test is whether you can type _NL_ into Ads Manager and get every Dutch campaign back. If a field is missing from some names, the filter lies and you stop trusting it.
Your first client is free. Set up your naming system in two minutes.
Build consistent paid-media campaign names without maintaining another spreadsheet. Reorder the fields, pick a separator, and the name rebuilds as you go.
Fields, in order
6 fields, underscore separated.
The test is whether you can type _NL_ into Ads Manager and get every Dutch campaign back. If a field is missing from some names, the filter lies and you stop trusting it.
Fixed fields in a fixed order means a name is scannable in a list. A name that is five segments here and eight there cannot be read at a glance no matter how descriptive it is.
Netherlands becomes NL, always. The moment one buyer writes NLD and another writes DUTCH, the convention is decoration.
Put it at the end and names still sort sensibly by client and platform. Put it first and every campaign from the same launch clusters together, which is almost never what you want to look at.
Underscores survive URLs, spreadsheets and most exports. Spaces do not. Whatever you choose, choose once: a mixed account cannot be split reliably by any tool.
If a field is derivable from another, drop it. Platform inside a Meta-only account is noise, and every redundant segment costs you characters against the limit.
Save this convention.
Create client-specific schemas, set your own abbreviations, and reuse them across every campaign instead of rebuilding the pattern each time.