πŸ€–chiliad
ClaudePricing
Help CenterGAQL Lab

How to export Google Ads data to CSV with a query

Pull exactly the columns you need from Google Ads with a GAQL query and download the result as CSV.

The Google Ads interface exports the columns of whichever table you are looking at. When you need a specific combination of fields β€” or the same export from several accounts β€” a query is quicker.

Export from GAQL Lab

  1. Open GAQL Lab and pick the account.
  2. Write the query, start from an example, or assemble it in the Builder tab.
  3. Click Run Query.
  4. Click CSV to download the rows, or Copy CSV to paste them straight into a spreadsheet.

Cost values are already converted from micros, and columns have readable headers.

A few useful queries

Search terms with cost and conversions:

SELECT search_term_view.search_term, campaign.name,
  metrics.clicks, metrics.cost_micros, metrics.conversions
FROM search_term_view
WHERE segments.date DURING LAST_30_DAYS
ORDER BY metrics.cost_micros DESC

Keywords with quality score:

SELECT ad_group_criterion.keyword.text,
  ad_group_criterion.quality_info.quality_score,
  metrics.impressions
FROM keyword_view
WHERE segments.date DURING LAST_30_DAYS

Performance by device:

SELECT campaign.name, segments.device,
  metrics.clicks, metrics.conversions
FROM campaign
WHERE segments.date DURING LAST_30_DAYS

The same export from several accounts

Switch the account in the dropdown and run the query again; your recent queries are kept in History.

Making it automatic

If you run the same export every week, turn it into a script. Click AdsApp.search() to copy a snippet that runs the query inside Google Ads, add a few lines to write the rows to a Google Sheet, and schedule it. Deployed through chiliad, one script can fill a separate sheet for each client: see How to use different script settings for each account.

app.chiliad.io/gaql

GAQL Lab

EditorBuilder
1GrowthLab Store 234-567-8901 β–Ύ
SELECT campaign.name, metrics.clicks, metrics.cost_micros
FROM campaign
WHERE campaign.status = 'ENABLED'
  AND segments.date DURING LAST_7_DAYS
ORDER BY metrics.cost_micros DESC

Valid query

Examples:Campaign PerformanceKeywords + Quality ScoreSearch Terms2
Run Query3AdsApp.search()CSV5βŒ˜β†΅ run
Results 4
3 rows Β· 0.8s
Copy CSV
#Campaign NameClicksCost
1Brand β€” Search1,204$312.40
2Shopping β€” Core986$281.75
3PMax β€” Prospecting540$198.10
  1. 1

    Pick the account to query.

  2. 2

    Start from an example and adapt it.

  3. 3

    Run Query, or press Cmd+Enter. The validator flags unknown fields and syntax errors before you run.

  4. 4

    Results with readable column names. Cost values in micros are converted for you.

  5. 5

    Copy the query as an AdsApp.search() snippet for a script, or download the rows as CSV.

Part of the guideGAQL Lab

More on this topic

  • What is GAQL (Google Ads Query Language)?
  • GAQL date ranges: DURING, BETWEEN and the predefined ranges
  • What is cost_micros in Google Ads and how do you convert it?
  • AdsApp.search() vs AdsApp.report(): which should you use?
  • AWQL vs GAQL: updating old Google Ads scripts

Still stuck?

Send us a question from the help center β€” we read every message.

Ask a question
πŸ€–chiliad

The platform for managing and automating Google Ads scripts at scale. Built for PPC agencies and freelancers.

chiliad β€” Google Ads Script Management - Monitor and manage Google Ads scripts across every account | Product Hunt

Product

  • Use Cases
  • Features
  • Claude connector
  • Pricing
  • Marketplace
  • Blog
  • About
  • Roadmap
  • Changelog

Support

  • Contact Us
  • Help Center
  • Terms of Service
  • Privacy Policy

Β© 2026 chiliad. All rights reserved.