About Services Cases Blog Tools Reviews Partners Contacts

Dynamic Keyword Insertion (DKI) — a Cause of Irrelevant Leads in Google Ads

Dynamic Keyword Insertion (DKI) — a Cause of Irrelevant Leads in Google Ads

There's a topic I can't skip, because quite often — on its own or together with other factors — it becomes the cause of irrelevant inquiries. Especially in lead generation projects.

Contents
  1. Problem one: not everyone types in Ukrainian
  2. Problem two: ads aren't written for what you think they are
  3. When DKI becomes a booster for irrelevant traffic
  4. Think about what you're actually inserting
  5. The main takeaway
  6. FAQ

I'm talking about Dynamic Keyword Insertion — dynamically inserting the keyword into search ad headlines. That's when the user's search query is automatically inserted into the headline to make the ad more relevant.

Sounds fine, right? Google says: dude, your ad's Quality Score just jumped, awesome, keep it up. But let's get to the root of the problem.

Problem one: not everyone types in Ukrainian

If you advertise to the Ukrainian market, you should understand that users don't type only in Ukrainian. You have well-written ads, everything looks nice, everything's great. And then a user types a search query in, say, transliteration or surzhyk (a mix of Ukrainian and Russian). And that non-Ukrainian text gets inserted into your ad, while everything else is written in Ukrainian.

There are two points here.

First — it looks extremely artificial and sloppy.

Second, and more important — using non-state languages in ads in Ukraine is prohibited. In other words, you're personally giving regulators a reason to start an inspection of your account. More about this risk and a real case — in the article “Non-State Language Ads in Google Ads = a Fine”.

Problem two: ads aren't written for what you think they are

The most important point about ads, which for some reason few people understand: the job of a Google Ads ad isn't to attract a user. The job is to attract a target user to the website. The difference is fundamental.

There's no need to write super-pretty ads that attract who-knows-what audience. Ads are written for a specific profile of your target audience and act as a filter on the overall pool of queries.

I once had a case — a test assignment from a company. They gave me a landing page and information about the business, and I wrote ads for their audience. They said: your ads have no soul, our ads look just like our competitors' ads.

I said: I can write anything you want in your ads. The question is — what's the goal? Pretty ads or relevant inquiries? If I write that we give away a kilo of cocaine with every order — and we don't — I'll attract a ton of the wrong audience.

Ads are written based on the audience you want to attract and the messages you want to deliver. Not from a set of pretty headlines with zero meaning behind them.

When DKI becomes a booster for irrelevant traffic

DKI can be either a standalone cause of irrelevant traffic or a strong amplifier of it.

The worst-case scenario is when you use broad match keywords and also don't maintain negative keywords. The user sees what looks like their query in the headline, the ad seems relevant, they land on the website — and end up who knows where.

The good outcome — they just leave, having burned your budget. The worse one — they complete some conversion action, which then affects the learning algorithms of your Google Ads account.

To keep such irrelevant inquiries out of the system so they don't break your smart algorithms, I recommend the article “How Competitors Break Your Google Ads — and How to Prevent It”, where I described four methods. The fourth is especially relevant — about sending only the right data into the system.

Think about what you're actually inserting

One more thing. If you use this modifier and a user types, say, “watch price” — they see exactly that in the ad. What's the point of a headline like that? How does it filter the audience? Formally it's more relevant, because the user's query appears in the headline. But it carries zero meaning.

Yes, Google will show you a higher Average Quality Score. But Google's metrics aren't ad performance metrics.

So every time you do something — even with phrase match Google can generate things that make no sense whatsoever, not to mention broad match — think about why you're doing it. Want to make the ad more relevant? Okay. Want Google to stop complaining about Quality Score? That works too. There's a whole pool of clients (and would-be auditors) who say Quality Score is poor or average, and that with this modifier you can “fix” it in a second. But traffic quality won't improve because of it.

In practice, across several projects I've seen the same combination: no negative keywords + the wrong keyword match type + dynamic insertion. Together, that's a direct cause of irrelevant traffic, and therefore irrelevant inquiries for the project.

The main takeaway

Think about what you're doing — and why you're doing it. Very often people confuse things: they want one thing but work on another.

A classic example. The client says: I want cheaper leads. You tell him we need to work on the landing page. Look: we have five lines of business, four convert into a quality lead at 5–10%, and this page — at 2%. Meanwhile it's set up roughly the same, there's a different level of competition, a different cost per click.

And he replies: I can't see my ad. And he thinks that's the reason the leads are expensive. Even though impressions don't directly affect either the cost per lead or the number of leads. The number of leads depends on the ratio of people who came to the website and converted — that is, the efficiency of that stage of the funnel, not the impressions stage.

Don't confuse these things — and you'll be fine.
Related services
Google Ads account audit I find where the budget leaks: structure, bidding, keywords, conversion tracking, website. from $50Learn more Google Ads management Full cycle: campaigns, analytics, CRM integration and reporting on real sales, not in-platform conversions. from $450 / monthLearn more
Suspect DKI or broad match is burning your budget on irrelevant leads? Get in touch, let's go through your account

FAQ on the topic

Frequently asked questions

What is DKI (Dynamic Keyword Insertion) in Google Ads?
It's the automatic insertion of the user's search query into the ad headline to increase relevance. Google shows this as a rise in Quality Score, but a relevant headline doesn't mean the audience is your target audience.
Why does DKI raise Quality Score but not lead quality?
Quality Score is a Google metric, not a business performance metric. DKI formally makes the headline more relevant to the query, but it doesn't filter the audience by your target customer profile — and filtering is exactly the ad's job.
Can you use DKI if your ads are shown only in Ukrainian?
It's risky: users type queries in transliteration, surzhyk (a Ukrainian-Russian mix) or another language, and DKI inserts that text into the ad as is. It looks sloppy and, more importantly, using a non-state language in ads in Ukraine is prohibited by law.
How are negative keywords and keyword match types related to DKI?
Broad match plus no negative keywords plus DKI is the worst-case scenario: the ad seems relevant to any query, the user clicks through to the website, and irrelevant actions get into the system and break the learning of Google Ads algorithms.
When is DKI justified?
Only when you control exactly what text can be inserted — that is, you work in a narrow keyword cluster with exact match keywords and well-maintained negative keywords. In broad campaigns, the risk of irrelevant traffic outweighs the Quality Score benefit.



Contact

Let's discuss
your project

Leave a request — we'll assess your situation, discuss your goals and find the best solution for your business and budget.

🏆
As a Google Partner, I can help you get a Google Ads bonus of up to 55,000 UAH ($1.2K) for your first campaigns.
❌ I don't work with: gambling · betting · alcohol · tobacco · crypto · grey niches · payday loans
▸ new_project.init()
Discuss a project