Dear Google Ads API Team,
we noticed an issue with the criteria performance views (e.g. age_range_view, gender_view , etc.) in Google Ads API (using API v9 currently via the google-ads-ruby gem v15.0.0). When fetching the performance data along with ad_group_criterion.display_name, the display_name is only filled if ad_group_criterion.status is not "REMOVED". Probably there are more statuses or other column values affecting, this is the pattern we observed. In case ad_group_criterion.status is "REMOVED", the ad_group_criterion.display_name contains only an empty string. The ad_group_criterion.criterion_id is provided nonetheless.
To check run following simplified GAQLs for any account which has both ad_group_criterion.status REMOVED and ENABLED for age range or gender criteria types and check the content of ad_group_criterion.display_name:
SELECT ad_group_criterion.criterion_id, ad_group_criterion.display_name, ad_group_criterion.status, metrics.impressions
FROM age_range_view
WHERE segments.date = '2022-02-20' AND ad_group_criterion.status = 'ENABLED'
LIMIT 1
Here response contains something like:
<Google::Ads::GoogleAds::V9::Services::GoogleAdsRow: ad_group_criterion: <Google::Ads::GoogleAds::V9::Resources::AdGroupCriterion: resource_name: "customers/REDACTED/adGroupCriteria/REDACTED~503002", criterion_id: 503002, display_name: "25to34", status: :ENABLED, ...
SELECT ad_group_criterion.criterion_id, ad_group_criterion.display_name, ad_group_criterion.status, metrics.impressions
FROM age_range_view
WHERE segments.date = '2022-02-20' AND ad_group_criterion.status = 'REMOVED'
LIMIT 1
Here response contains something like:
<Google::Ads::GoogleAds::V9::Services::GoogleAdsRow: ad_group_criterion: <Google::Ads::GoogleAds::V9::Resources::AdGroupCriterion: resource_name: "customers/REDACTED/adGroupCriteria/REDACTED~503001", criterion_id: 503001, display_name: "", status: :REMOVED, type: ...
Notice the missing display_name in latter case. We also observed the same behavior for gender criteria via gender_view, so we assume this issue is affecting potentially all Google Ads API criteria performance views.
One workaround is to sync the criteria IDs and their labels (aka display names) from
https://developers.google.com/google-ads/api/reference/data/codes-formats and always look them up on our side based on the criteria type and ID. However it would be more consistent if the Google Ads API would reliably fill and provide the ad_group_criterion.display_name, no matter what value ad_group_criterion.status has. Otherwise due to lack of reliability, providing ad_group_criterion.display_name makes no sense.
Thanks,
Robert