Included from Starter

Duplicate by City: one geo-targeted ad set per city

A list of cities in, that many localized ad sets out.

Trusted by 300+ media buyers, brands and agencies 4.5 on Trustpilot

In short

Published · updated

  • Cities are pasted one per line and resolved live against Meta's location API, with a report of unresolved names.
  • Radius is set per city, from 1 to 200 kilometers, with a default value applicable to all of them.
  • The {{city}} token works in any text field or URL, headline, primary text, description and landing page.
  • Each ad set created follows the naming pattern ad set then city name, previewed before launch.

Running local ads on Meta quickly turns into duplicating the same ad set thirty times, changing one targeting line and one word in the headline. That is exactly the kind of work a machine does better.

How it works

You paste your cities, one per line. They are resolved live against Meta’s location API, and anything that matches nothing appears in a separate report.

Each city becomes a geo-targeted ad set, named after the pattern ad set name then city name, previewed before launch. Radius is set from 1 to 200 kilometers, with a default and a per-city override.

Localizing the copy, not just the targeting

The {{city}} token works in any field: headline, primary text, description, and even the destination URL. It is replaced per city at launch, and a per-city preview shows the result before publication.

That is the difference between thirty ad sets targeting thirty cities with the same generic text, and thirty ad sets whose hook names the city the reader lives in.

Good to know

Localizing a text is not a local strategy. Dropping a city name into a headline replaces neither an offer adapted to that market nor a landing page that speaks to it.

Splitting by city also multiplies ad sets, and therefore divides the budget. The point holds here as it does for testing structures: thirty underfunded ad sets learn worse than one properly funded.

Frequently asked questions

How do you target multiple cities on Facebook ads?

Duplicate by City creates one geo-targeted ad set per city from a pasted list, one city per line. Each name is resolved live against Meta's location API, unrecognized cities appear in a separate report, and every ad set is previewed before launch.

What is location targeting on Facebook ads?

Location targeting restricts an ad set's delivery to an area, for example a country, a city or a radius around a place. Duplicate by City applies it city by city, with a radius from 1 to 200 kilometers set for all cities at once or for each one.

Is it better to run one ad set per city or one ad set for all cities?

Splitting by city multiplies ad sets and therefore divides the budget between them. Thirty underfunded ad sets learn worse than a single one that is properly funded: splitting by city makes sense when each city has enough budget to learn on its own.

What happens if Meta does not recognize a city?

It appears in an unresolved-cities report rather than failing the batch. You fix the spelling or remove the line.

How do you personalize a Facebook ad by city?

The {{city}} token inserts the city name into any field: headline, primary text, description and destination URL. It is replaced city by city at launch, and a per-city preview shows each version before publication, so the hook names the city the reader lives in.

Does the {{city}} token work in the destination URL too?

Yes, as in any text field. That lets you send each ad set to a distinct local page when your site has them.

Can I set a different radius for each city?

Yes. A default applies to all of them, and each city accepts its own value between 1 and 200 kilometers.

How do you duplicate an ad set for each city?

Duplicate by City saves duplicating the same ad set by hand and then changing the targeting and headline on every copy. You paste the list of cities, each line gives an ad set named after the pattern ad set name then city name, and everything is previewed before launch.

Is putting the city name in the ad enough for a local campaign?

No. Dropping a city name into a headline replaces neither an offer adapted to that market nor a landing page that speaks to it. The {{city}} token localizes the copy of each ad set, but the local strategy itself still has to be built alongside.

Launch your creatives in 47 seconds.

Try the plan of your choice for 7 days for €1. Cancel anytime from the app.

Book a demo

Pick the time that suits you.

Open in a new tab

Loading the calendar…

Talk to Founder