OpenAdLibraryOpenAdLibrary
Native Ad Networks

Taboola Dynamic Keyword Insertion: {city} Macros Done Right

Taboola's dynamic keyword insertion can lift relevance on location-sensitive offers, or produce broken, low-trust headlines if the fallback text and character limits aren't handled carefully.

Editorial illustration: Taboola Dynamic Keyword Insertion: {city} Macros Done Right

Dynamic keyword insertion, or DKI, on Taboola lets you drop a macro like {city} or {device} into your headline so the ad auto-fills with the reader's actual location or device at serve time, instead of you building a separate campaign for every geo. Done well, it lifts relevance and click-through on location-sensitive offers like home services, local finance, and insurance. Done carelessly, it produces broken grammar, awkward fallback text, or headlines that read as an obvious mail-merge, which reads as low-trust to native audiences who are already primed to be skeptical of sponsored content.

How the macro actually works#

You write a headline template with a placeholder macro inside it, most commonly {city}, {state}, or {device}, and Taboola fills it with the reader's actual data at the moment the ad is served, pulled from geo targeting signals rather than anything you configure per campaign. Every macro needs fallback text defined for cases where Taboola has no reliable location or device data for that impression; skipping this step risks a literal broken placeholder showing in the live ad. You also need to account for character limits: a city name that's short in your test market might push a longer name in another market past the headline's length limit, so test your template against your longest expected values, not just your default one.

Where DKI genuinely helps#

  • Local service offers like plumbing, roofing, or home repair, where "{city} homeowners" reads as far more relevant than a generic headline, especially across the tiered geo strategy described in Tier 1 / Tier 2 / Tier 3 geos.
  • Finance and insurance rate-comparison angles, where locality genuinely affects the offer, rates, availability, and regulations differ by state, so a location-aware headline isn't just a trick, it's accurate.
  • Any funnel where the landing page already personalizes by city. If your pre-lander already says "serving {city}," a matching headline keeps the promise consistent from click to landing page instead of breaking it.

The failure modes to avoid#

The most common mistake is missing or lazy fallback text, which either shows literal curly braces to some readers or defaults to something generic enough that the personalization adds nothing. The second is not testing headline length against your longest expected city or state name, which produces truncated or grammatically broken headlines in specific markets you may never personally see in testing. The third, and the most damaging long-term, is using the macro to fake personalization that the landing page doesn't follow through on: a headline that promises "{city} residents" and a landing page with no location awareness at all creates a mismatch that erodes trust the moment a skeptical reader notices it, and native audiences notice this kind of thing more than advertisers expect.

A fourth, quieter failure mode is grammatical mismatch: a template built around "in {city}" reads fine for "in Denver" but awkwardly for a city name that already includes a preposition-like word, or for a state abbreviation instead of a full name. Run your template past a handful of real values from your actual target list, not just the two or three cities you personally think of first, before you trust it at scale.

DKI versus building separate geo campaigns manually#

The alternative to DKI is building a distinct campaign per city or region with a hand-written headline for each. This gives you full control over grammar and phrasing per market, at the cost of a much heavier setup and maintenance burden, especially once you're targeting more than a handful of geos. DKI trades a small amount of per-market polish for the ability to run one template across dozens or hundreds of locations without rebuilding campaigns every time you tweak the core message. The right choice depends on scale: a handful of high-value markets often justify hand-written headlines, while a long tail of smaller geos is usually only worth personalizing through a macro.

Measuring whether DKI is actually helping#

Compare click-through rate on the personalized template against a matched non-personalized control headline running in the same geos and time window, not against your account's historical average, which mixes in too many other variables to isolate the macro's effect. If CTR is meaningfully higher on the personalized version and the landing page experience matches what the headline promised, the macro is earning its complexity. If the lift is marginal, the added maintenance burden of testing fallback text and character limits across every market may not be worth it for that particular offer, and a simpler, non-personalized headline might perform just as well with far less setup risk.

Testing DKI headlines without wasting budget#

Before you build a DKI campaign, look at how proven headlines in your vertical are actually structured; native ad headlines that get clicks and hook vs angle vs claim both cover the anatomy of what makes a headline work regardless of whether it's personalized. Build two or three fallback variants rather than one, and test the template on a small budget across a few geos before scaling it to your full target list. This catches character-limit breaks and awkward phrasing before they've burned real spend across dozens of markets at once.

A simple build checklist#

  1. Draft your headline template with the macro placed naturally, not bolted on as an afterthought.
  2. Write fallback text that reads as a complete, sensible sentence with no macro data present.
  3. Test the template against your three or four longest expected city or state names for character-limit breaks.
  4. Confirm the landing page's personalization, if any, actually matches what the headline promises.
  5. Launch on a limited geo set first, review actual served headlines in the reporting dashboard, then scale.

Reviewing served headlines before you scale wide#

Backstage's reporting shows you the actual headlines that were served once the campaign has run for a while, not just the template you wrote. This step is easy to skip and it's where most DKI problems surface: a city name with an apostrophe or an unusual character combination, an abbreviation that reads oddly next to your chosen phrasing, or a state name long enough to trigger truncation you didn't catch in your initial spot-check. Reviewing served headlines across your first batch of geos before expanding the template to your full target list catches these issues while the blast radius is still small, rather than after the campaign has been running nationally for a week.

Building for markets you don't know well#

If your target list includes cities or regions you're not personally familiar with, don't assume your template reads naturally everywhere on the list. A phrase that sounds normal for a handful of major metros can read strangely for a small town name or a region with an unusual naming convention. Where possible, have someone unfamiliar with the campaign skim a sample of served headlines from less familiar markets before you commit real budget to the full geo list, the same way you'd sanity-check any copy you weren't confident about.

How OpenAdLibrary helps you steal the right pattern, not the wrong one#

The fastest way to learn what a well-built DKI headline looks like is to see one that's already survived long enough to prove it works, rather than guessing at the phrasing yourself. OpenAdLibrary's index of 206,145 live Taboola creatives as of June 2026 includes headlines using location and personalization patterns across a wide range of verticals, each with an observed run length that acts as a rough signal for whether the approach is actually converting. Searching /spy/taboola for your vertical before you write your own DKI template shows you real, currently-running phrasing rather than a theoretical example. And if disclosure and personalization compliance is a concern for your vertical, the FTC's guidance on native advertising is the authoritative source on what counts as misleading.

Frequently asked questions

What macros does Taboola support for dynamic keyword insertion?
City, state, and device are the most commonly used macros, letting a single headline template auto-fill based on where and how the ad is being viewed. The full supported list can change, so check Taboola's current documentation in Backstage before building a campaign around a specific macro.
What happens if Taboola has no data for a DKI macro?
The ad falls back to fallback text you define when building the template. This fallback is mandatory, not optional, since skipping it risks a broken placeholder or literal curly braces showing in a live ad whenever Taboola lacks reliable location or device data for that impression.
Does dynamic keyword insertion actually improve CTR on Taboola?
It commonly does on location-sensitive offers like local services, finance, and insurance, where personalization is genuinely relevant to the reader rather than cosmetic. On offers with no real geo relevance, DKI adds little and the extra complexity may not be worth it.
Can I use dynamic keyword insertion together with retargeting on Taboola?
Generally yes, since the two features address different parts of a campaign: audience targeting versus headline personalization. Confirm current compatibility directly in Backstage, since platform capabilities and combination rules do shift over time.
Is dynamic keyword insertion risky for ad policy compliance?
It can be if the personalization implies something inaccurate, such as a location-specific claim the business can't actually back up. Keep the macro's use accurate and consistent with the landing page, and check the FTC's native advertising guidance if your vertical carries disclosure requirements.
The OpenAdLibrary Team
Written byThe OpenAdLibrary Team
Ad intelligence & native advertising research

We build OpenAdLibrary, the open ad-transparency platform. Every day our systems capture live native ads across Taboola, Outbrain, MGID, Revcontent, Teads, Yahoo and MSN, identify the real advertiser behind each one, and follow the click to its landing page. These guides distill what we see in that data so you can research the market faster.