Google Ads geographic_view report misses data

390 views
Skip to first unread message

Oksana Sulyma

unread,
Feb 3, 2022, 8:26:44 AM2/3/22
to Google Ads API and AdWords API Forum
Hi Google Ads / AdWords API support team!
We are in process of migration from AdWords API to Ads API and I have a question on geographic_view.
I have 2 reports for the same account_id / date got from AdWords API https://developers.google.com/adwords/api/docs/appendix/reports/geo-performance-report and Ads API https://developers.google.com/google-ads/api/fields/v9/geographic_view?hl=en. Data for Clicks, Impressions, other metrics differs. Data got from AdWords API matches Campaign report data. I wonder what could be missed, may be some filters, or wrong segments usage...

Here are my reports definitions for comparison.
Google Adwords:
<reportDefinition xmlns="https://adwords.google.com/api/adwords/cm/v201809"> <selector> <fields>CampaignId</fields> <fields>AdGroupId</fields> <fields>AdNetworkType1</fields> <fields>CityCriteriaId</fields> <fields>CountryCriteriaId</fields> <fields>RegionCriteriaId</fields> <fields>MetroCriteriaId</fields> <fields>Date</fields> <fields>Impressions</fields> <fields>Clicks</fields> <fields>Cost</fields> <fields>Conversions</fields> <fields>ViewThroughConversions</fields> <fields>ConversionValue</fields> <fields>VideoViews</fields> <fields>AllConversions</fields> <fields>AllConversionValue</fields> <fields>CrossDeviceConversions</fields> <fields>Interactions</fields> <predicates> <field>AdGroupId</field> <operator>IN</operator> <values>*my adgroup id*</values> </predicates> <dateRange> <min>20220115</min><max>20220115</max></dateRange> </selector> <reportName>adwords_adgroup_geo</reportName> <reportType>GEO_PERFORMANCE_REPORT</reportType> <dateRangeType>CUSTOM_DATE</dateRangeType> <downloadFormat>CSV</downloadFormat> </reportDefinition>
Summary result: Impressions = 1851, Clicks = 39, Rows 521.

Google Ads:
Request:
{"customerId":"*my customer id*","query":"SELECT campaign.id, ad_group.id, segments.ad_network_type, segments.geo_target_city, geographic_view.country_criterion_id, segments.geo_target_region, segments.geo_target_metro, segments.date, metrics.impressions, metrics.clicks, metrics.cost_micros, metrics.conversions, metrics.view_through_conversions, metrics.conversions_value, metrics.video_views, metrics.all_conversions, metrics.all_conversions_value, metrics.cross_device_conversions, metrics.interactions FROM geographic_view WHERE segments.date>='2022-01-15' AND segments.date<='2022-01-15'  ORDER BY segments.date DESC "}
Summary result: Impressions = 1555, Clicks = 32, Rows 498.

I'll be happy to provide complete details privately if needed. But may be some miss is already visible from report definition. Goal is to get same result from Google Ads API which I have from Google AdWords API.

Thanks so much for looking at this!
Oksana

Google Ads API Forum Advisor

unread,
Feb 3, 2022, 3:58:15 PM2/3/22
to adwor...@googlegroups.com
Hi Oksana,

Could you try taking out segments.geo_target_region, segments.geo_target_metro and replacing them with segments.geo_target_most_specific_location? I am asking this because you are filtering out all metrics that aren't from a region and a metro area.

If this still doesn't fix the issue, could you privately send us a full report definition from each API with account Id's combined with a full screen screenshot of the UI that is supposed to match?

Regards,

Google Logo
Aryeh Baker
Google Ads API Team
 


ref:_00D1U1174p._5004Q2W3xu1:ref
Message has been deleted

Oksana Sulyma

unread,
Feb 4, 2022, 10:09:32 AM2/4/22
to Google Ads API and AdWords API Forum
Hi Aryeh,

"Could you try taking out segments.geo_target_region, segments.geo_target_metro and replacing them with segments.geo_target_most_specific_location? " - just tried this, no change in summaries.

Sent you complete request and response info in private message.

Will appreciate any other ideas.

Also this discrepancy exists for many client of us, so my guess is that I meet something in report definition. However I was following this migration guide https://developers.google.com/google-ads/api/docs/migration/mapping#geo_performance.

Thanks,
Oksana

Oksana Sulyma

unread,
Feb 4, 2022, 10:49:17 AM2/4/22
to Google Ads API and AdWords API Forum
Also if I remove 
geographic_view.country_criterion_id,
segments.geo_target_region,
segments.geo_target_metro,
from my report definition For Google Ads API call, I still get the same numbers (smaller than expected).
(Actually I need these fields, just trying to guess what could be wrong with segmentation / filtering)

Google Ads API Forum Advisor

unread,
Feb 7, 2022, 2:17:38 PM2/7/22
to adwor...@googlegroups.com
Hi Oksana,

I ran your Ads API report with modification  and summary row returned like AdWords:
 
curl -v "https://googleads.googleapis.com/v9/customers/1329679017/googleAds:search" \

--header "Content-Type: application/json" \

--header "developer-token:{}" \

--header "Authorization: Bearer {}" \

--data '{

"query": "SELECT campaign.id, ad_group.id, segments.ad_network_type, geographic_view.country_criterion_id, segments.geo_target_most_specific_location, segments.date, metrics.impressions, metrics.clicks, metrics.cost_micros, metrics.conversions, metrics.view_through_conversions, metrics.conversions_value, metrics.video_views, metrics.all_conversions, metrics.all_conversions_value, metrics.cross_device_conversions, metrics.interactions FROM geographic_view WHERE segments.date = 20220115 AND ad_group.id = 123224461846" , "returnTotalResultsCount": true, "summaryRowSetting": "SUMMARY_ROW_WITH_RESULTS" }'

 "summaryRow": {

  "metrics": {

   "clicks": "39",

   "videoViews": "0",

   "viewThroughConversions": "0",

   "conversionsValue": 0,

   "conversions": 0,

   "costMicros": "29506445",

   "allConversionsValue": 0,

   "allConversions": 21,

   "impressions": "1851",

   "interactions": "40"

  }

 }

Note that Ads API excludes metrics that don't fit into each and every segmentation field, hence when including segments.geo_target_region and/or segments.geo_target_metro you run the risk of losing metrics that don't fit. To get all the encompassing geo targets you can run a geo_target_constant report and walk up  the geo_target_constant.parent_geo_target field. Also, Ads API segments by location type of area of interest and location of presence. I added the LocationType field to AdWords report to split the rows. 

Regards,

Oksana Sulyma

unread,
Feb 8, 2022, 5:21:11 AM2/8/22
to Google Ads API and AdWords API Forum
Hi Aryeh,
I appreciate your help very much. The answer makes a lot of sense to me. I can confirm that I got data match.
Is it possible to edit your previous comment and remove customer_id from public visibility? 
Thanks again,
Oksana

Oksana Sulyma

unread,
Feb 10, 2022, 9:32:23 AM2/10/22
to Google Ads API and AdWords API Forum
Follow up question sent in one more private email. Thanks!

Google Ads API Forum Advisor

unread,
Feb 11, 2022, 12:00:05 AM2/11/22
to adwor...@googlegroups.com
Hi Oksana,

Glad to hear that the suggestion provided by my colleague helped you with your concern.

Moving forward, please note the geographic_view.location_type is not a segment field, with this, the data that you see mentioned is not segmented by the location type rather segmented by the other segments fields included in the report. With this, I am afraid that for your scenario, it is not possible to get summary data for area of interest and location of presence in one row as we don't have control over the values that show with segment fields, unless some of the segment fields will be removed.

Let me know if you have further questions.

Regards,
Google Logo
Ernie John
Google Ads API Team
 


ref:_00D1U1174p._5004Q2W3xu1:ref
Reply all
Reply to author
Forward
0 new messages