Retrieve Audience Stats from the Google Ads API

52 views
Skip to first unread message

Sergio Ortiz

unread,
Sep 4, 2025, 6:49:31 PM (5 days ago)  Sep 4
to Google Ads API and AdWords API Forum

Hello Support Team,

I’m working on pulling audience level stats through Fivetran. Since Fivetran connects directly to the Google Ads API and loads raw data into our warehouse without transformations, my goal is to replicate the same audience level data I see in Google Ads. In the console, when I query ad or ad group stats, I get the expected results with the raw data from Fivetran, but that is not currently happening with audiences. I am facing two main issues:

  1. I’m seeing discrepancies across metrics when pulling data via Fivetran. To get audience-level stats, I union data from both  ad_group_audience_view  and  campaign_audience_view , but the resulting values don’t match what I see in the Google Ads console for most metrics such as cost, impressions, interactions, and conversions. The only metric that aligns perfectly is views , which makes me doubt that aggregation is the root issue; if it were, I wouldn’t expect views to match while the others don’t.
  2. When I query the raw data in our warehouse, I find that views only match the Google Ads console if I filter out the “ Removed ” state from the audience segment state in the console. I raised this with Fivetran, and they shared the API query they use to pull the data:

    query: "SELECT campaign.base_campaign, metrics.conversions, ad_group_criterion.status, metrics.interactions, metrics.interaction_event_types, campaign.id , segments.device, metrics.active_view_impressions, metrics.clicks, ad_group_criterion.criterion_id, metrics.active_view_measurable_impressions, metrics.active_view_measurability, ad_group_audience_view.resource_name, metrics.conversions_value, segments.ad_network_type, metrics.impressions, metrics.view_through_conversions, metrics.active_view_viewability, ad_group.id , metrics.video_views, customer.id , ad_group_criterion.user_list.user_list, ad_group_criterion.user_interest.user_interest_category, metrics.active_view_measurable_cost_micros, ad_group.base_ad_group, metrics.cost_micros, segments.date FROM ad_group_audience_view WHERE segments.date BETWEEN \'2025-01-01\' AND \'2025-01-31\'"

    As you can see here, there are no filters applied besides from the date. Since the views match with Google Ads console, why can't I get the same value for the other metrics?
Could you provide guidance on the proper way to retrieve accurate audience level stats so they match the results I see at other granularities (campaign, ad group, ad) in Google Ads console?

Google Ads API Forum Advisor

unread,
Sep 8, 2025, 3:29:01 AM (yesterday)  Sep 8
to adwor...@googlegroups.com
Hi,

Thank you for reaching out to the Google Ads API support team.

An audience is a reusable collection of focused segments, demographic targeting, and exclusions. In order to these  retrieve audiences  please refer to the sample query below:
SELECT audience.id 
,
  audience.resource_name, audience.name 
,
  audience.status,
  audience.description,
  audience.dimensions,
  audience.exclusion_dimension
FROM audience
You can try making a request using the  Search  or  SearchStream  by passing the customer Id. Also, you can use  QueryBuilder  to create your query and  QueryValidator  to validate your query.

If this is not what you are looking for, provide us with the uncropped UI screenshot with a visible customer Id by highlighting the audience level stats that you are trying to retrieve using the Google Ads API. 

You can send the details via Reply privately to the author option , or direct private reply to this email.

Thanks,
Google Logo
Google Ads API Team

Feedback
How was our support today?

rating1 rating2 rating3 rating4 rating5
[2025-09-08 07:28:22Z GMT] This message is in relation to case "ref:!00D1U01174p.!500Ht01u5vGQ:ref" (ADR-00331941)



Sergio Ortiz

unread,
Sep 8, 2025, 6:27:01 PM (yesterday)  Sep 8
to Google Ads API and AdWords API Forum
Hello,

The answer provided does not address what I am trying to achieve. As explained earlier, I am retrieving the data through Fivetran, which leverages the Google Ads API to provide audience stats via both  ad_group_audience_view  and  campaign_audience_view . Below is the script I am currently using to extract the unaggregated data:

with audience_stats_custom_reports as (
select
    round(sum(cost_micros/1000000), 4) as cost,
    sum(clicks) as clicks,
    sum(impressions) as impressions,
    sum(interactions) as interactions,
    sum(video_views) as video_views
from $source_ad_group_audience
where date between $date_1 and $date_2
union all
select
    round(sum(cost_micros/1000000), 4) as cost,
    sum(clicks) as clicks,
    sum(impressions) as impressions,
    sum(interactions) as interactions,
    sum(video_views) as video_views
from $source_campaign_audience
where date between $date_1 and $date_2
)

select
    sum(cost) as cost,
    sum(clicks) as clicks,
    sum(impressions) as impressions,
    sum(interactions) as interactions,
sum(video_views) as video_views
from audience_stats_custom_reports

After running the query, the results do not align with what I see in the Google Ads console. The only exception is video_views, which matches only when I filter out the “ Removed ” state from the audience segment state , as explained above.

Could you clarify why video_views matches the console while the other metrics do not?

Query Results.png
Console Results with Removed Audience State.png
Console Results with All Audience States.png

Google Ads API and AdWords API Forum

unread,
5:56 PM (1 hour ago)  5:56 PM
to Google Ads API and AdWords API Forum
Hi,

Could you please email us the below required details directly to ' googleadsa...@google.com ' for further investigation.
  • Complete API logs  ( request  and  response with  request-id  and  request header generated at your end for both ad_group_audience_view and campaign_audience_view reports
  • Uncropped UI screenshot of audience stats (with visible customer Id)
If you are using a client library and haven't enabled the  logging  yet, I would request you to enable  logging  for the specific client library that you are using. You can refer to the guides  Java .Net PHP Python Ruby  or  Perl  to enable  logging  at your end. For REST interface requests, you can enable  logging  via the curl command by using the -i flag.

Regards,
Google Ads API Team.

Reply all
Reply to author
Forward
0 new messages