I was very excited about the prospect of being able to submit a single query in the Google Ads API to pull all campaign level negative keywords for an entire account. However, when I submit the query, it only returns a subset of the keywords for each campaign. I have had to resort to making a separate call for each individual campaign which is much slower and less efficient.
Should I be able to make the single call?
I have approx. 400 campaigns with a total of 50K campaign level negative keywords across all campaigns.
SELECT campaign_criterion.criterion_id
, campaign_criterion.keyword.text
, campaign_criterion.keyword.match_type
FROM campaign_criterion
WHERE campaign_criterion.type = 'KEYWORD'
AND campaign.status NOT IN ('REMOVED')
AND campaign.advertising_channel_type NOT IN ('DISPLAY')
AND campaign_criterion.negative = TRUE
This single query only pulls about 10K negative keywords. It pulls a subset of each campaign's negative keywords. For example, one of the campaigns has 65 negative keywords and the query on pulls 15 of them.