PLACEHOLDER_FEED_ITEM_REPORT not returning all feed items

147 views
Skip to first unread message

jim.m...@ticketnetwork.com

unread,
Aug 3, 2017, 3:26:36 PM8/3/17
to AdWords API Forum
Hi,  We have run into an EntityCountLimitExceeded.ACCOUNT_LIMIT problem, based on limit type "ACTIVE_ADGROUP_FEEDS_PER_ACCOUNT". We only use sitelink and price extensions so it's due to too many of those. However, when we run the PLACEHOLDER_FEED_ITEM_REPORT it's clearly not returning all of our items, so we can't figure out which ones need to be removed.

For example, we use the below query with include_zero_impressions=True and get only 66,923 results for PlaceHolderType = 1, and 20,000 results for PlaceHolderType = 35, which is nowhere near the 250,035 the adwords API is telling us we have (limit is 250,000):

query =  "SELECT FeedId, FeedItemId, Status FROM PLACEHOLDER_FEED_ITEM_REPORT WHERE PlaceholderType = '1' AND Status IN ['ENABLED']"
file_format
= "CSVFOREXCEL"

with open(local_raw_path, 'w') as output_file:
  ca
.gs.report_downloader.DownloadReportWithAwql(query, file_format, output_file, skip_report_header=True, skip_column_header=False, skip_report_summary=True, include_zero_impressions=True)


Then if I run this code using the AdGroupFeedService, it tells me that there are 152679 totalNumEntries for sitelinks and 97347 totalNumEntries for price extensions, which gives us the 250,000 limit.  But I can't use this method to get all of the ones that need to be removed, because A) it only lets me return 100,000 results when I use the AdGroupFeedService, and B) it only returns FeedId and not FeedItemId:

predicates = []
predicates
.append({'field': 'Status', 'operator': 'EQUALS', 'values': 'ENABLED'})
predicates
.append({'field': 'PlaceholderTypes', 'operator': 'EQUALS', 'values': '1'})
fields
= ['AdGroupId', 'FeedId', 'PlaceholderTypes', 'Status']
selector
= {'fields': fields, 'predicates': predicates}
selector
['paging'] = {'startIndex':0, 'numberResults': 10 }
result
= ca.gs.client.GetService('AdGroupFeedService', version='v201702').get(selector)
print 'totalNumEntries: {0}'.format(result[0])

--> totalNumEntries: 152679


So how can I get the full list of ad group feed items tied to my account at once?  Why does the AWQL report not return the same results as the AdGroupFeedService?

Thanks,
Jim

Shwetha Vastrad (AdWords API Team)

unread,
Aug 3, 2017, 5:33:42 PM8/3/17
to AdWords API Forum
Hi Jim, 

The ACTIVE_ADGROUP_FEEDS_PER_ACCOUNT limit applies to non-removed AdGroupFeed objects in an account. If a set of FeedItems are added as extensions to N AdGroups, it counts as N ad group-level extensions. The Placeholder Feed Item Report aggregates statistics at the FeedItem level and may not be a good indicator of the total number of AdGroup-level extensions in an account. You can use predicates to narrow the query and group queries by Campaign and AdGroup to retrieve only required data and to fit all results into one response. You can submit multiple requests to get all the AdGroupFeeds in an account by using appropriate predicates. To free up space, you need to REMOVE the AdGroupFeeds for your REMOVED adGroups using AdGroupFeedService, then retry your request.

Regards,
Shwetha, AdWords API Team.

jim.m...@ticketnetwork.com

unread,
Aug 4, 2017, 5:19:02 PM8/4/17
to AdWords API Forum
Thank you.  It turns out that we were removing ad groups using the API, and we assumed all of their children would be removed as well automatically.  However, it appears that we have to also call the ad group feed service to remove the feeds from them.  It's an annoying extra step that you guys should get rid of if possible, but we can work around it for now.

Thanks
Reply all
Reply to author
Forward
0 new messages