How to connect Google Ads to Google Sheets
Download any statistics table in Google Ads straight to Google Sheets, or connect Google Ads to Google Sheets with Fresh Sheets so a tab refreshes on a schedule.
Ways to get Google Ads data into Google Sheets
| Method | Refreshes | Cost | Limit |
|---|---|---|---|
| Download a table | No | Free | One table, once; each download is a new file |
| Scheduled report by email | Yes, by email | Free | A file in an inbox, not a spreadsheet |
| Google Ads add-on | When you run it | Free | United States and English-language Sheets only |
| Google Ads script or API | On your script's schedule | Free | Code you maintain; scripts run for up to 30 minutes |
| Fresh Sheets | On your schedule | Free for 30 days, then one weekly report free. Paid plans from £12 a month, billed annually. | Up to 100,000 rows a run |
Download a table to Google Sheets
- Open any statistics table in Google Ads: campaigns, ad groups, keywords and so on.
- Click the download icon above the table.
- Choose Google Sheets.
You get exactly what the table shows, once, as a new file.
Schedule a report by email
In Insights and reports, then Report editor, schedule a report and choose how often it's sent and in what format, such as CSV or PDF. It's a file in an inbox, not a spreadsheet that updates.
Source: Download and schedule reports, Google Ads Help; Scheduling reports, Google Ads Help
The Google Ads add-on for Google Sheets
Google publishes a Google Ads add-on for Google Sheets that creates and runs reports in a spreadsheet. It's only available in the United States, in the English-language version of Google Sheets.
Source: The Google Ads add-on for Google Sheets, Google Ads Help; Google Ads add-on, Google Workspace Marketplace
A Google Ads script, or the API
- In Google Ads, go to Tools, then Bulk actions, then Scripts, and click +.
- Paste in a script, such as Google's own Ad Performance Report example, and click Authorize.
- Preview it, run it, and set how often it runs: daily, weekly or monthly.
Scripts can read and write spreadsheets, and each run is limited to 30 minutes. The Google Ads API is free to use too, with daily operation limits set by your Google Cloud project's access level. Either way, it's code you maintain.
Source: Google Ads scripts, Google Ads Help; Ad Performance Report, Google Ads scripts documentation; Working with spreadsheets, Google Ads scripts documentation; Access levels, Google Ads API documentation
Set it up with Fresh Sheets
- Click Start free, sign in with the Google account that can see your Google Ads account, then choose Connect Google and approve access.
- Under Source, pick Google Ads and the account.
- Under Data, pick the level, fields and dates.
- Under Destination, choose Connect Google if it asks, then pick a spreadsheet from your Google Drive or create a new one, and name the tab.
- Under Schedule, pick how often, then Save and run.
Prefer to work inside Google Sheets? Install the add-on from the Google Workspace Marketplace and build the same report from Extensions, then Fresh Sheets, then Open sidebar.
Some columns are required at each level, including Cost, Clicks and Conversions, so the builder ticks them for you.
Fresh Sheets writes a Google Ads report into a tab of its own and refreshes it on the schedule you choose. Fresh Sheets replaces that tab's contents on every refresh, so keep your own formulas on another tab.
Every column it can write is listed on the Google Ads connector page.
Want it in Excel instead? See Google Ads to Excel.
Worked example: ROAS by campaign
A campaign report with Conversion value and Cost writes these columns, in this order, into a tab called ROAS by campaign:
| A | B | C | D | E | F | G |
|---|---|---|---|---|---|---|
| Campaign name | Campaign status | Clicks | Impressions | Cost | Conversions | Conversion value |
On another tab, each row's ROAS is:
='ROAS by campaign'!G2/'ROAS by campaign'!E2
And the ROAS across every row:
=SUM('ROAS by campaign'!G2:G)/SUM('ROAS by campaign'!E2:E)Use the totals, not the average of the row figures.
More on the formula: ROAS in Google Sheets.
Questions
Can Google Ads export to Google Sheets on its own?
Yes, one table at a time: any statistics table downloads straight to Google Sheets as a new file. Scheduled reports arrive by email as a file, not in a spreadsheet.
Does it refresh automatically?
Google Ads' own downloads don't. A Fresh Sheets report refreshes on a schedule, as often as your plan allows: every week on Free, every day on Plus, every 6 hours on Pro and every hour on Max.
Can I pull more than one account into one spreadsheet?
Yes. Each report reads one account, and several reports can write to different tabs of the same spreadsheet. Under a manager account, the client accounts directly beneath it are listed.
Can I pull Google Ads data into Google Sheets with the API?
Yes, if you write and maintain the code. The API is free, with daily limits set by your Google Cloud project's access level, and Google Ads scripts can write to a spreadsheet too.
Source: Access levels, Google Ads API documentation; Working with spreadsheets, Google Ads scripts documentation
Why don't my figures match the Google Ads interface?
Check the dates and the account first. What usually moves is conversions: Google Ads counts them on the date of the click, so recent days keep changing. When a report's dates reach into the last 7 days, each run fetches those days again, so late conversions are picked up.