Quick overview
📺 Full walkthrough video: https://youtu.be/62QIMjT2u-E
Automatically pulls monthly Google Ads campaign metrics for multiple clients via the API and appends the data into dedicated Google Sheets tabs — triggered on the 3rd of each month.
How it works
- A Schedule Trigger fires on the 3rd of each month at 10 AM to kick off the reporting process.
- A Google Sheets node reads the full client list (with their Google Ads Customer IDs) from a source sheet.
- A SplitInBatches loop iterates over each client one by one, sending a POST request to the Google Ads searchStream API endpoint to fetch last month's campaign metrics (cost, clicks, impressions, conversions, conversion value).
- A JavaScript Code node flattens the raw API response, converts cost from micros to euros, rounds numeric values, and normalizes the month format.
- The processed rows are appended to a dedicated per-client tab (named Data {Client}) in the same Google Sheet.
- A Wait node pauses execution between each client to respect API rate limits before looping to the next.
Setup
- Duplicate the template spreadsheet — Google Sheets Template — and save it to your Google Drive.
- Connect your Google Sheets OAuth2 credentials and point the "Read Clients from Sheets" node to your spreadsheet and the "Client" source sheet.
- Connect your Google Ads OAuth2 credentials in the HTTP Request node.
- Replace the developer-token and login-customer-id header values in the HTTP Request node with your own.
- Ensure each client tab in the spreadsheet is named Data {Client} to match the dynamic sheet name expression.
- Adjust the Wait node delay if needed to avoid hitting API rate limits.
Requirements
- Google Ads account with API access and a valid developer token
- Google Sheets account with OAuth2 credentials
- A spreadsheet with a "Client" sheet listing client names and their Google Ads Customer IDs
- One tab per client named Data {Client} in the same spreadsheet
Customization
- Modify the GAQL query in the HTTP Request node to pull different metrics or date ranges (e.g., LAST_7_DAYS, THIS_MONTH)
- Extend the JavaScript transformation to compute additional KPIs such as CPC or ROAS before appending to the sheet
- Add a Slack or email notification after each client iteration to alert stakeholders when the report is ready
Additional info
Template maintained by Growth AI — a Lyon-based automation agency specializing in n8n workflows. For custom enterprise reporting pipelines, reach out via LinkedIn.