Google hid your search term data – Here’s how to recover them

Lukuaika min

Rediscover your hidden searches with Google Analytics

Article image created with

In September 2020, Google made changes to their search term reporting practices. You can read more about this change from eg. Ginny Marvin’s coverage in Search Engine Land and Brad Geddesextensive theories about it’s possible implications. If you understand Finnish or trust your Google Translate, you can read more about the effects here in Finland via our recent blog post.

This “query blackbox” will impact billions of searches globally and limit advertisers’ visibility on these searches. SEER Interactive’s study saw that it hid search terms for 28% of Paid Search budgets. Our own study concluded that the change affected an average of 14% of Paid Search budgets here in Finland. Some outliers existed though, with some advertisers having been stripped of more than 50% of their search term visibility costs.

The PPC community at large has found itself to be with limited options on how to deal with this change. The situation is not unlike the infamous “not provided” switch that dramatically changed the SEO community in 2013. The difference between these two scenarios, however, is that the Paid Search advertisers are expected to keep fronting the costs of these hidden searches with no understanding whether they have any relevance to their business at all.

You can only measure & optimize what you see and have access to. This will also result in a lot of the 3rd party bidding solutions having to adjust to this changed landscape with some industry experts saying their competitive edge was severely diminished in favor of Google’s own automated bidding strategies.

But are all these hidden searches lost for good?
From Google Ads? Yes.
From Google Analytics? Surprisingly, no. 

Fragments of data still remain and that’s all we need to get our visibility back. 

Just make sure you have your Google Ads and Google Analytics accounts linked to each other before proceeding.


Using Google Analytics to understand the impact to your Google Ads account

To see how big of an impact the change was to your Google Ads paid search visibility, please do the following.

Changes in keyword versus search term visibility:

  1. Open Google Analytics
  2. Select time period from eg. 1 Sep 2020 – 30 Oct 2020 (any time period after 1 Sep 2020 will do)
  3. Go to Acquisition > Google Ads > Keywords
    1. Please note the total number of clicks, cost, and sessions
  4. Go to Acquisition > Google Ads > Search Queries
    1. Please note the total number of clicks, cost, and sessions


Google Analytics keywords and search queries
Comparing data between keywords and search queries shows a clear discrepancy in clicks and cost.

You should see something along these lines:

  • The number of clicks and cost do not match on the keyword- and search query -level. The difference between these metrics is the impact the change has had on your account. The same data can be found in Google Ads as well.
  • Also note that the sessions remain the same on both levels. This data is not found in Google Ads.


Listing out the searches hidden by Google

One of the immediate thoughts after Google announced this change, was that we would see these hidden search terms being listed in Google Analytics as (not set). This way it would be similar to the change we saw during the “not provided” change on the organic front back in the day. While this may still be the case at some point, it’s not so right now.

While Google may have removed all the Google Ads -associated metrics (eg. clicks, cost, cpc) from these hidden searches, they didn’t remove any Google Analytics -associated metrics (eg. users and sessions). Most importantly, the search query -dimension also remained intact.

Try it for yourself:

  1. Open Google Analytics
  2. Go to Acquisition > Google Ads > Search Queries
  3. Compare the time period from 1 September to 30 October 2020 against the previous period.
  4. Click advanced > Include Clicks equals 0 and Include Sessions greater than 0 
  5. Note the change in total sessions and (not set) -sessions


Google Analytics non-clicked search queries
The sessions from “non-clicked” search terms skyrocketed after the change in search term reporting


Don’t trust the timeline graph, as it cannot show the filtered data properly. It probably states that “Search constraints on metrics can not be applied to this graph”.  The screenshot above is from comparing two different time periods, but it would be more accurate to see the data from each time period individually. I suggest you flip between different time periods and see from the summary table the change in non-clicked sessions.

You should see something along these lines:

  • Overall sessions from these “non-clicked” search terms have skyrocketed after the change took place.
  • The sessions from search query (not set) have not changed that much, meaning that the majority of these sessions come from credited search terms
Okay, so now we see a list of these “non-clicked” hidden search terms (author’s note: ghost terms!). That’s nice and all, but what’s next?


How to map these “ghost terms” to your Google Ads account

Now we start mapping out this search term-level data with keyword-level data to see whether we are correct and if we can use the session data to reverse engineer the hidden cost.

At this point it’s fair to say that sessions and clicks are not the same metric. However, they are close enough for us to use that as a shared data point between these two levels.

To ease the data mapping process, I’d suggest using a data fetching tool like Supermetrics (we’re big fans). You can manually export the data from Google Analytics but you need to build a few custom reports to get the data architecture in the right format.

In order to map these “ghost terms” into an actionable format, you should use the following dimensions:

  • Query 1: Keyword-level data
    • Dimensions:
      • Campaign
      • Ad group
      • Keyword
    • Metrics
      • Clicks
      • Cost
      • Sessions
      • Goal completions and/or transactions and transaction revenue
  • Query 2: Search term-level data
    • Dimensions:
      • Campaign
      • Ad group
      • Search query
    • Metrics
      • Clicks
      • Cost
      • Sessions
      • Goal completions and/or transactions and transaction revenue
  • If you want, you can also filter out the data to include only if Ad Distribution Network contains ‘Search’ & Search query does not contain ‘not set’.
  • Just pointing out the obvious, but please use the same time period when exporting data from both queries.


We are using the keyword-level data to see what is the total number of clicks, cost and sessions from the search network. If we don’t know this data, it’s difficult to see how much of the data we’re missing. These reported keywords essentially form our benchmark data.

Next we tackle the search term data. From here we can divide the search terms into two groups:

  1. Reported search terms, meaning the search terms that have clicks and cost associated with them.
  2. Ghost terms, meaning the search terms that don’t have clicks and cost associated with them, but still report sessions.

If we combine these data sets, we should be able to create the following graph:


OIKIO Ghost terms - clicks and cost
Adding ghost terms’ sessions to the reported search terms’ sessions matches the actual keyword level data


As you can see, the added data from these ghost terms matches quite nicely to the keyword-level data. This phase alone gives us some degree of visibility of what used to be 51% visibility back closer to 100% visibility.

Now onto the cost itself.

Even if sessions and clicks are not exactly the same, they are roughly the same. And I’d always rather choose, heaven forbid, a well-reasoned good estimate against a certain unknown. By using the keyword-level data set, we can calculate what is the average cost per session for each individual ad group.

By calculating these ghost terms’ sessions with the average cost per session on search term level, we get the estimated cost that went into these searches. With this data, we can update our graph to include cost as well:


Using the sessions as the same datapoint, we’re able to calculate the estimated cost of these ghost terms


The results are the same here and give us back close to 100% visibility to costs as well. 

Remember, all these calculations have now been done on search term level, meaning it’s time to start separating the well-performing searches from the low-performing searches.


How to manage these ghost terms

Since these ghost terms are searches that are not found in Google Ads in any way, I reckon there are three possible outcomes on how to deal with them now that you know where to find them:

  1. Add the poorest performing searches as negative keywords to the account in order to improve performance
  2. Add the best performing searches that don’t have an exact keyword already as new keywords in order to increase keyword visibility
  3. Do nothing, if the overall volume and sessions of these searches are low and check back later.

If you are reading this and you have followed the steps above, you should have all the data necessary to start implementing these changes.

We recognize that doing these steps manually can be a bit cumbersome at first and since this should be a repeatable process, we try to do our part in helping the community to overcome these issues. 

We are now collaborating with Supermetrics to create a shared template that would do all of the listed steps above automatically within minutes. It will be free to all Supermetrics users and distributed in their template gallery. Stay tuned!

Juha Viherväs


Olen intohimoinen hakumainonnan tekijä ja asiakkaiden verkkoliiketoiminnan kehittäjä lähes yhdeksän vuoden kokemuksella. Olen erikoistunut suuren kokoluokan mainostileihin sekä kansainväliseen hakumainontaan. Kehitän aktiivisesti toimialalle uusia työkaluja ja käytäntöjä.