Keyword Performance Report missing keywords

220 views
Skip to first unread message

tom.wa...@raisingit.com

unread,
Sep 21, 2018, 6:54:31 AM9/21/18
to AdWords API and Google Ads API Forum
Hi everyone,

I am accessing the Keyword Performance Report via the API (in Python3, using the standard libraries) and I'm making two separate requests, one to bring back a list of all my active (/enabled/eligible) keywords, and another to pull performance data for those keywords. I do this because the performance report returns data on inactive keywords that I want to filter out.

I'm puzzled because some active keywords are not being returned in the keyword performance report. According to this advice [https://support.google.com/google-ads/answer/2404039?hl=en-GB] the performance report will exclude keywords that got no impressions, but I see plenty of keywords with zero impressions that are returned in the keyword performance report. So why are the keywords missing from the performance report?

Here is the code snippet I use to access the (live) status data:

def getKeywordStatusReport(client):
   
# Initialize appropriate service.
    report_downloader
= client.GetReportDownloader(version="v201806")


   
# Create report query.
    report_query
= (adwords.ReportQueryBuilder()
                 
.Select("ExternalCustomerId", "CampaignId", "AdGroupId", "Id", "Criteria",
                         
"KeywordMatchType", "CampaignStatus", "AdGroupStatus", "Status")
                 
.From("KEYWORDS_PERFORMANCE_REPORT")
                 
.Where("Status").EqualTo("ENABLED")
                 
.Where("AdGroupStatus").EqualTo("ENABLED")
                 
.Where("CampaignStatus").EqualTo("ENABLED")
                 
.Build())

And the bit I use (the following day) to access the performance data:

def getKeywordPerformanceReport(client):
   
# Initialize appropriate service.
    report_downloader
= client.GetReportDownloader(version="v201806")


   
# Create report query.
    report_query
= (adwords.ReportQueryBuilder()
                 
.Select("ExternalCustomerId", "CampaignId", "AdGroupId", "Id", "Criteria",
                         
"KeywordMatchType", "Clicks", "Impressions", "Cost", "Conversions", "Date")
                 
.From("KEYWORDS_PERFORMANCE_REPORT")
                 
.During("YESTERDAY")
                 
.Build())

Why would this second query fail to return data on keywords that were active the previous day?

Cheers,
Tom

Bharani Cherukuri (AdWords API Team)

unread,
Sep 21, 2018, 2:42:08 PM9/21/18
to AdWords API and Google Ads API Forum
Hello Tom, 

I see that you're segmenting the report by Date, which will group the keywords based on the date. However, few fields (Id, Criteria, KeywordMatchType) in the report query are of the type Attribute. This type will return the current state of the account, ignoring the timespan of the report. This means, irrespective of the date range, the attributes will always return the current keywords that are active in the account. Please check this guide for more information. 

Let me know if you have any other questions. 

Regards,
Bharani, AdWords API Team

tom.wa...@raisingit.com

unread,
Oct 1, 2018, 10:05:41 AM10/1/18
to AdWords API and Google Ads API Forum
Hi Bharani,

Apologies for the delay in responding - I've been away - and thanks for your reply.

When your guidance says: 
The values returned will always reflect the current state of the account, ignoring the timespan of the report. 
I had taken this to mean that if the attribute value has changed, the current value will be returned instead of the value at the time - so if I changed the match type, and then queried performance data for last week - the current match type will be returned along with that historical performance data.

What you're saying is that if I pause a keyword, then I simply won't be able to recover historical performance data for that keyword from when it was active. Are you sure? I can get keyword performance reports that bring back data on keywords that are not currently active...

Cheers,
Tom

Bharani Cherukuri (AdWords API Team)

unread,
Oct 1, 2018, 5:02:16 PM10/1/18
to AdWords API and Google Ads API Forum
Hello Tom, 

The report metrics will return the historical stats while the Attributes will return the current state of the account. Could you share us the report definition along with the client customer Id, so I can take a look at the data you're pulling and then address your question? You can reply back via Reply privately to author option. 

Thanks,
Bharani, AdWords API Team

On Friday, September 21, 2018 at 6:54:31 AM UTC-4, tom.wa...@raisingit.com wrote:
Reply all
Reply to author
Forward
0 new messages