Google Ads Quality Score Reporting in BigQuery

Use a pre-built Google Ads Quality Score data model for BigQuery, delivering structured, self-updating Quality Score metrics via Windsor.ai.

arrow
Google Ads Quality Score Reporting in BigQuery

Found this kit useful? Give it a boost by sharing with others!

Quality Score is a key diagnostic metric in Google Ads that helps you understand why some keywords or ads underperform.

The built-in Google Ads analytics shows basic Quality Score data, but it’s not ideal for analyzing trends over time, comparing campaigns, or drilling into the components that hold your score back. For deeper and more comprehensive insights, you can analyze Google Ads data in BigQuery

This guide explains how to use a pre-built Google Ads Quality Score data model to track self-updating metrics in BigQuery with Windsor.ai.

Google Ads Quality Score data model

By exporting the Quality Score data into BigQuery using Windsor.ai, you can create a structured dataset that tracks your Quality Score metrics over time. 

This allows you to:

  • Analyze Quality Score trends across ad groups and campaigns
  • Blend the Quality Scores with KPIs like impressions and clicks 
  • Automate reporting and integrate with tools like Looker Studio

Here’s a pre-built Google Ads data model for analyzing Quality Score in BigQuery:

google ads quality score reporting model bigquery

How this data model works

This Google Ads Quality Score data model is built using the star schema method, making it easy to analyse and scale.

At the center of the model is the fact_quality_score table, which holds all essential metrics such as Quality Score components, impressions, clicks, and costs.

Surrounding the fact table are four supporting dimension tables:

  • dim_account – account-level details
  • dim_campaign – campaign attributes
  • dim_ad_group – ad group information
  • dim_criterion – keyword or criterion-level details

These dimension tables provide all the descriptive context needed to break down and filter on your Quality Score data from any angle.

💡 If you’d like to learn how to design data models like this yourself, check out our guide: “How to Build a Facebook Ads Data Model in BigQuery.” There, we explain the star-schema modeling approach step by step, so that you can apply it to any marketing dataset.

How to deploy this model using Windsor.ai

To make your setup easier, we’ve prepared ready-to-use configurations for the tables defined in the above schema. These configurations can be copied right into Windsor.ai to create scheduled export tasks for BigQuery.

Quick setup steps:

  1. Connect your Google Ads account(s) to Windsor.ai and click ‘Next.’
  2. Scroll down to Destinations → BigQuery.
  3. Click “Create destination task” (create separate tasks for each config).
  4. Copy-paste the Connector URL from the config below.
  5. Set Schedule type as proposed in the config (or adjust to your needs).
  6. Set Columns to match from the config below.
  7. Save the task and see it’s running and streaming data to your BigQuery project.

📚 For detailed setup steps (including connecting your BigQuery project), visit documentation: How to Integrate Data into BigQuery with Windsor.ai.

Once set up, Windsor will automatically populate your BigQuery tables with data from Google Ads, so you can start analyzing your Quality Score right away. You can start with a 30-day free trial to test it out at no cost and see how it works for your campaigns.

Pre-built configurations for Windsor to BigQuery export tasks

Create BigQuery destination tasks in Windsor.ai with the following configurations (just copy-paste the connector URL and select/adjust the proposed settings).

❗ Important: Make sure to insert your actual API key into these connector URLs. For a quick API key insertion, first, paste a copied connector URL into the data preview field; Windsor will automatically add your API key. Preview your data and copy-paste this complete URL into the BigQuery destination task (repeat for each config).

google ads to bigquery query windsor

1) Destination task: fact_quality_score

Connector URL:

https://connectors.windsor.ai/google_ads?date_preset=last_7d&fields=account_id,ad_group_id,campaign_id,clicks,conversions,cost,criterion_id,date,historical_creative_quality_score,historical_landing_page_quality_score,historical_quality_score,historical_search_predicted_ctr,impressions

google ads bigquery data model windsor

Task settings:

Task nameGoogle Ads Quality Score -> BigQuery (fact_quality_score)
Schedule typeDaily
Columns to matchdate, account_id, campaign_id, ad_group_id, criterion_id

2) Destination task: dim_account

Connector URL:

https://connectors.windsor.ai/google_ads?date_preset=last_7d&fields=account_id,account_name,account_time_zone,currency_code,manager

Task settings:

Task nameGoogle Ads Quality Score -> BigQuery (dim_account)
Schedule typeDaily
Columns to matchaccount_id

3) Destination task: dim_campaign

Connector URL:

https://connectors.windsor.ai/google_ads?date_preset=last_7d&fields=account_id,bidding_strategy,campaign_budget,campaign_id,campaign_name,campaign_status,end_date,start_date

Task settings:

Task nameGoogle Ads Quality Score -> BigQuery (dim_campaign)
Schedule typeDaily
Columns to matchcampaign_id

4) Destination task: dim_ad_group

Connector URL:

https://connectors.windsor.ai/google_ads?date_preset=last_7d&fields=account_id,ad_group_id,ad_group_name,ad_group_status,campaign_id,cpc_bid_micros

Task settings:

Task nameGoogle Ads Quality Score -> BigQuery (dim_ad_group)
Schedule typeDaily
Columns to matchad_group_id

5) Destination task: dim_criterion

Connector URL: 

https://connectors.windsor.ai/google_ads?date_preset=last_7d&fields=account_id,ad_group_criterion_primary_status,ad_group_criterion_type,ad_group_id,campaign_id,criterion_id,final_urls,keyword_match_type,keyword_text

Task settings:

Task nameGoogle Ads Quality Score -> BigQuery (dim_criterion)
Schedule typeDaily
Columns to matchcriterion_id

What you get:

  • A reusable Google Ads Quality Score star schema in BigQuery
  • Fact table with Quality Score metrics + core KPIs (impressions, clicks, cost, conversions)
  • Dimension tables for account, campaign, ad group, and keyword/criterion
  • A clean dataset ready to plug into BI tools (Looker Studio, Tableau, etc.) for dashboards and reporting

By exporting your Quality Score metrics into BigQuery via Windsor.ai using a star-schema data model, you can easily track trends, diagnose low-performing keywords, and understand what’s impacting Ad Relevance, Expected CTR, and Landing Page Experience.

This structured approach gives you better visibility, faster analysis, and more informed optimization decisions. Ultimately, it helps you lower CPCs and improve campaign ROI.

🚀 Build your first Google Ads to BigQuery data integration through the Windsor connector right now: https://onboard.windsor.ai.

Explore other kits

connector arrowdestination
Facebook Ads Performance Reporting in BigQuery
connector connector arrowdestination
Google Ads CPA Tracking in BigQuery (with GA4)
connector connector arrowdestination
Bing Ads CPA Tracking in BigQuery (with GA4)
connector connector arrowdestination
Facebook Ads CPA Tracking in BigQuery (with GA4)