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 <https://developers.google.com/adwords/api/docs/appendix/reports#field-attributes> for more information.
Let me know if you have any other questions. Regards, Bharani, AdWords API Team On Friday, September 21, 2018 at 6:54:31 AM UTC-4, [email protected] wrote: > > 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 > -- -- =~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~ Also find us on our blog: https://googleadsdeveloper.blogspot.com/ =~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~ You received this message because you are subscribed to the Google Groups "AdWords API and Google Ads API Forum" group. To post to this group, send email to [email protected] To unsubscribe from this group, send email to [email protected] For more options, visit this group at http://groups.google.com/group/adwords-api?hl=en --- You received this message because you are subscribed to the Google Groups "AdWords API and Google Ads API Forum" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. Visit this group at https://groups.google.com/group/adwords-api. To view this discussion on the web visit https://groups.google.com/d/msgid/adwords-api/6e3d6e15-c95e-4744-a5e7-7b0bc3f07195%40googlegroups.com. For more options, visit https://groups.google.com/d/optout.
