Summary: when the field segments.date is used in a Google Ads query, the data for some ads or ad groups is missing from the response.
Among other things, our app is using the Google Ads Api (v9) to retrieve data about the clicks, impressions, costs and conversions for each campaign, ad group and ad in our clients account. In order to achieve this we are using this type of query: Url:https://googleads.googleapis.com/v9/customers/59**43/googleAds:search Post content: {"query":"SELECT campaign.id, campaign.name ,campaign.status, campaign.serving_status, campaign.advertising_channel_type, campaign.advertising_channel_sub_type, campaign.bidding_strategy_type ,campaign.start_date, campaign.end_date, ad_group.id, ad_group.name, ad_group.status, ad_group.type, ad_group_ad.ad.id, ad_group_ad.ad.type, ad_group_ad.status, ad_group_ad.ad.added_by_google_ads, ad_group_ad.ad.name, metrics.all_conversions, metrics.all_conversions_value_by_conversion_date, metrics.average_cost,metrics.average_cpc, metrics.average_cpm, metrics.average_cpv, metrics.clicks, metrics.conversions, metrics.conversions_value_by_conversion_date, metrics.cost_micros, metrics.cost_per_all_conversions, metrics.cost_per_conversion, metrics.ctr, metrics.impressions, metrics.interactions, segments.date FROM ad_group_ad WHERE segments.date BETWEEN ? AND ?","pageSize":"50"} Recently, we noticed that we are missing values for some of the ads (by comparing with the reports from the Google Ads web interface). What seems to be common for these ads is that they report conversions (by conversion time), but they are not reporting impressions. We manage to find a precise example. We have a campaign, which has two adgroups. When we are running this query: SELECT campaign.id,campaign.name,campaign.status,campaign.serving_status,campaign.advertising_channel_type, campaign.advertising_channel_sub_type, campaign.bidding_strategy_type, campaign.start_date,campaign.end_date, metrics.all_conversions, metrics.all_conversions_value_by_conversion_date, metrics.average_cost,metrics.average_cpc, metrics.average_cpm, metrics.average_cpv, metrics.clicks,metrics.conversions,metrics.conversions_value_by_conversion_date, metrics.cost_micros,metrics.cost_per_all_conversions,metrics.cost_per_conversion,metrics.ctr, metrics.impressions,metrics.interactions,segments.date FROM campaign WHERE segments.date BETWEEN '2022-04-17' AND '2022-04-17' and campaign.id=16**38 The response is [{"campaign":{"servingStatus":"SERVING","endDate":"2037-12-30","advertisingChannelType":"SHOPPING","name":"Fo***ts", "resourceName":"customers/59**43/campaigns/16**38","id":"16**38","biddingStrategyType":"MANUAL_CPC","startDate":"2022-03-31", "status":"ENABLED"},"metrics":{"ctr":0.018867924528301886,"conversions":0,"averageCpc":330000,"impressions":"53","costPerAllConversions":330000,"interactions":"1","conversionsValueByConversionDate":97.336860384,"allConversionsValueByConversionDate":97.336860384,"costMicros":"330000","allConversions":1,"clicks":"1","averageCost":330000,"averageCpm":6226415.094339622},"segments":{"date":"2022-04-17"}}] The campaign has for 2022-04-17 a conversion of 97.336860384, which is in agreement with Google Ads reports. When we are trying to see the same data at the adgroup level, by running: SELECT campaign.id, campaign.name, campaign.status, campaign.serving_status, campaign.advertising_channel_type, campaign.advertising_channel_sub_type, campaign.bidding_strategy_type, campaign.start_date, campaign.end_date, ad_group.id, ad_group.name, ad_group.status, ad_group.type, metrics.all_conversions ,metrics.all_conversions_value_by_conversion_date, metrics.average_cost, metrics.average_cpc, metrics.average_cpm, metrics.average_cpv, metrics.clicks,metrics.conversions, metrics.conversions_value_by_conversion_date, metrics.cost_micros, metrics.cost_per_all_conversions, metrics.cost_per_conversion, metrics.ctr, metrics.impressions, metrics.interactions, segments.date FROM ad_group WHERE segments.date BETWEEN '2022-04-17' AND '2022-04-17' and campaign.id=16**38 The response is [{"adGroup":{"name":"P**k","resourceName":"customers/59**43/adGroups/14**32","id":"14**32","type":"SHOPPING_PRODUCT_ADS","status":"ENABLED"},"campaign":{"servingStatus":"SERVING","endDate":"2037-12-30","advertisingChannelType":"SHOPPING","name":"Focused Products", "resourceName":"customers/59**43/campaigns/16**38", "id":"16**38", "biddingStrategyType":"MANUAL_CPC", "startDate":"2022-03-31","status":"ENABLED"}, "metrics":{"ctr":0.018867924528301886, "conversions":0,"costMicros":"330000","averageCpc":330000, "allConversions":1, "clicks":"1","impressions":"53","costPerAllConversions":330000,"averageCost":330000,"averageCpm":6226415.094339622,"interactions":"1"},"segments":{"date":"2022-04-17"}}] Only one of the adgroups is returned, and it’s the one which has no conversions. We tested multiple queries, and I think that the one that points to the precise problem is this one: SELECT campaign.id,campaign.name,campaign.status,campaign.serving_status,campaign.advertising_channel_type, campaign.advertising_channel_sub_type, campaign.bidding_strategy_type, campaign.start_date, campaign.end_date, ad_group.id, ad_group.name, ad_group.status, ad_group.type , metrics.all_conversions, metrics.all_conversions_value_by_conversion_date, metrics.average_cost, metrics.average_cpc , metrics.average_cpm, metrics.average_cpv, metrics.clicks, metrics.conversions, metrics.conversions_value_by_conversion_date ,metrics.cost_micros, metrics.cost_per_all_conversions, metrics.cost_per_conversion, metrics.ctr ,metrics.impressions, metrics.interactions, segments.date FROM ad_group WHERE segments.date BETWEEN '2022-04-17' AND '2022-04-17' and ad_group.id=13**27 (where we are trying to retrieve the precise addgroup which is not retrieved at 2.). The response from this query is empty. But if we remove the segments.date field from the query SELECT campaign.id, campaign.name, campaign.status, campaign.serving_status, campaign.advertising_channel_type, campaign.advertising_channel_sub_type, campaign.bidding_strategy_type, campaign.start_date, campaign.end_date, ad_group.id, ad_group.name, ad_group.status, ad_group.type ,metrics.all_conversions, metrics.all_conversions_value_by_conversion_date, metrics.average_cost, metrics.average_cpc , metrics.average_cpm, metrics.average_cpv, metrics.clicks, metrics.conversions, metrics.conversions_value_by_conversion_date ,metrics.cost_micros, metrics.cost_per_all_conversions, metrics.cost_per_conversion, metrics.ctr , metrics.impressions, metrics.interactions FROM ad_group WHERE segments.date BETWEEN '2022-04-17' AND '2022-04-17' and ad_group.id=13**27 The response is: [{"adGroup":{"name":"À**te","resourceName":"customers/59**43/adGroups/13**27", "id":"13**27", "type":"SHOPPING_PRODUCT_ADS","status":"ENABLED"},"campaign":{"servingStatus":"SERVING","endDate":"2037-12-30","advertisingChannelType":"SHOPPING","name":"Focused Products","resourceName":"customers/59**43/campaigns/16**38", "id":"16**38","biddingStrategyType":"MANUAL_CPC","startDate":"2022-03-31","status":"ENABLED"},"metrics":{"conversions":0,"allConversionsValueByConversionDate":97.336860384,"costMicros":"0","allConversions":0,"clicks":"0","impressions":"0","interactions":"0","conversionsValueByConversionDate":97.336860384}}] Which is precisely the adgroup missing from our type 1 queries. Notes: -This behavior is manifest only for a small number of ads. -We absolutely need the segments.date field, because we are storing the data for each day, for reporting purposes. Our requests are usually used for a longer period of time (in order to minimize the number of calls made to the API) and if we remove the segments.date field we will not obtain the data for each day. -I removed the real Id’s from the request. -- -- =~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~ 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 adwords-api@googlegroups.com To unsubscribe from this group, send email to adwords-api+unsubscr...@googlegroups.com 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 "Google Ads API and AdWords API Forum" group. To unsubscribe from this group and stop receiving emails from it, send an email to adwords-api+unsubscr...@googlegroups.com. To view this discussion on the web visit https://groups.google.com/d/msgid/adwords-api/c94300de-1ceb-4e69-ac1a-6b4ff4c0b47en%40googlegroups.com.