Troubleshooting Google Shopping Search Query Segmentation

Every once in a while I am asked to consult on problems with my Google Shopping campaign segmentation strategy. The problem is always the same: Queries end up in the wrong campaigns, making people question whether the strategy still works.

As it turned out time and again, problems are either caused by targeting mismatches or limited budgets.

Targeting Mismatch

In order for the query segmentation to work, each and every query has to go through the following process:

Note: It doesn’t matter whether this is done with two or three campaigns.

If a query ends up in the wrong campaign, this process obviously didn’t work as intended. Instead, the affected query “skipped” a campaign, which means one of the following three things happened:

The actual reason for this phenomenon is that the “skipped” campaign wasn’t there to “catch” the query. This happens if the campaigns don’t cover the same things.

For example, if the second campaign has a mobile bid modifier of -100 %, it will only catch queries from desktop and tablet devices. So if the other campaigns cover all devices, mobile queries will have to skip the second campaign (as depicted above in scenario 1). As a result, all queries that would otherwise have been caught by the first campaign, will end up in the second one.

To a marketer looking at search queries it will seem as if some queries randomly slip through. Unless they happen to segment queries by device, it’s hardly possible to realize that only mobile traffic is affected.

Marketers who have such a problem should check if their campaigns all have the same targeting. This includes:

  • Devices
  • Scheduling
  • Locations
  • Audiences
  • Demographics

Note that all of the above may have bid modifiers. Different bid modifiers are no problem unless one of them is -100 % (which would affect targeting).

Other campaign level targeting criteria also need to match. Those include:

  • Languages
  • Networks
  • Excluded IP addresses
  • Country of sale

Then, there are two more, that may not be as obvious:

  • Additional negative keywords
  • Product coverage

Since negative keywords are used to segment queries into the different campaigns, you cannot simply add new negatives as you would do in other campaigns. For example, if you just exclude an unwanted term in the highest priority campaign, you would “promote” those queries to the next campaign.

A better way to handle regular negatives is to put them on a negative keyword list and apply it to all shopping campaigns.

The problem with product coverage is a bit more complicated. An identical product coverage is basically the foundation of the whole segmentation strategy. It’s important to understand that campaign priorities are not used to simply give one campaign precedence over another.

Instead, campaign priorities are applied at the product level. Only if a product is covered by more than one campaign, priorities come into play:

In the chart above, notice that product Y is only covered by the low priority campaign. This is exactly the kind of mismatch that leads to campaign 2 receiving all queries of this product.

In order for a matching product coverage in all campaigns, it is usually enough to make sure that the same campaign level inventory filters are used and the same products are excluded everywhere. The easiest way to ensure this is, of course, to not exclude any products at all.

Limited Budgets

While targeting issues can be fixed, budget issues have proven more difficult in the past. The problem is basically the same: If a campaign runs out of budget, queries may skip it and end up in the wrong campaign.

This problem can be a serious one because of the way the campaigns are usually set up. If the high priority campaign (intended for general queries) runs out of budget, the following usually happens in the medium priority campaign (intended for brand traffic):

  1. For the remainder of the day, all general queries go to the brand campaign.
  2. Due to higher bids (which were intended for valuable brand queries), the campaign is eligible for impressions from additional general queries.
  3. Additional traffic and higher bids lead to a much faster budget consumption.

There are two contingencies that can make things worse:

  • The campaign runs out of budget and there’s a third campaign with even higher bids.
  • The second or third campaign has a much higher budget since they were supposed to capture valuable traffic only.

With the shopping campaign segmentation, marketers can’t have individual limited budgets, which is why I used to strongly advise a shared budget for all affected campaigns. Unfortunately, this alone no longer helps.

Even though, logically, a shared budget should solve the problem, it doesn’t. When a shared budget is nearly exhausted, queries start to slip through. The higher bids then lead to more budget consumption, making it worse.

When we first encountered the problem in 2015, we tried switching to accelerated delivery, which had no effect. We asked Google and to our surprise they agreed that this shouldn’t happen. However, since no one else had this problem, they told us it wouldn’t be a priority to fix it. I was under the impression that they had actually gotten around to it, but recent data from a client suggests otherwise.

Unfortunately, the only solution here is to avoid limited budgets. My advice:

  • Use a shared budget for all shopping campaigns
  • Set it well above your daily spend
  • Use bids to control your ad spendings

In practice, this is probably what most advertisers do anyway. It also explains why few people ever experience problems due to limited budgets.

Conclusion

There was a time when I feared that the segmentation strategy would only work until Google finally decided they didn’t like it. Other people often came to me, suspecting that this had happened. However, by now too many advertisers are building their campaigns this way, so that it is unlikely for Google to just change the rules.

Chances are, if you see queries ending up in the wrong campaign, it’s because one of the reasons described above. Otherwise – let me know!

About Martin Roettgerding
Martin Roettgerding is the head of SEM at SEO/SEM agency Bloofusion Germany. On Twitter he goes by the name @bloomarty, and you can find him regularly on #ppcchat.

  • Jonathan Catton

    Could you use a script to solve the limited budget problem? For example set higher budgets than you want to spend but have a quick thing that runs every hour to check if spend for the day has exceeded what you wish it to spend. Then it pauses all the campaigns and applies a label to say its paused them for budget reasons. Then a second script to run post-midnight each morning to then reactivate all those paused campaigns via label identifier.

    • Martin Röttgerding

      That’s an interesting idea. Yes, I suppose this should work. A limitation would be that the script can only run once per hour, but there are ways around this. Thanks for sharing!

  • Scott

    I recently implemented this strategy, and noticed after a week or two good results. But then some of my keywords that were always first and second place started to fall to 2nd and 3rd.

    I’m curious if you think this is due to recent algorithm changes for shopping or simply my competition bidding insanely high. Previously $1 to $2 dollars put me in the top spot. Now I’ve raised as a test, and only recaptured the #1 spot with a $25 bid (of course I rolled back)

  • Hi Martin, I just started using your method. If nothing else, I have found that my shopping ads are more consistent. Once I get the bid fine tuning done, I think it will be better than the lump everything into one approach I used as a rookie. My question comes with negative keywords. If I don’t want a certain search term to show up at all, I add that as a negative keyword in all 3 campaigns on the campaign level? Is that correct? Now, I have flashlights setup just how they should be with 3 campaigns. I am getting search terms from one model in a different models ad group. I am still on the fence whether I want this to happen, but if I wanted to change it so that search term didn’t show up in that ad group, would I add that particular model as a negative keyword in the ad group level? I think that is correct, but am still new to this. Thanks for the great work.

    -Jason