Quick overview
Runs manually to pull read-only Google Ads reporting for one account: campaign, ad group, keyword, ad and search-term performance over a chosen date range, plus a current-state snapshot of negative keywords, ad group targeting and campaign assets. Returns everything as one merged JSON object.
How it works
- Starts when you manually execute the workflow.
- Loads your Google Ads customer ID, developer token, API version and reporting date range from a Set node.
- Queries the Google Ads API (searchStream) for campaign performance, settings and bidding strategy over the date range.
- Queries ad groups, keywords (including Quality Score fields) and the top 300 search terms by spend for the same date range.
- Queries ads (including RSA headlines/descriptions and approval status) over the date range.
- Pulls current-state data not bound by the date range: campaign-level negative keywords, ad group targeting criteria, and campaign assets (call, callout, sitelink).
- Merges all eight datasets into a single JSON object, keyed by section.
Setup
- Create a Google Ads OAuth2 credential in n8n with access to the target customer account and attach it to the HTTP Request nodes.
- Get a Google Ads developer token from your Google Ads Manager (MCC) account → Tools → API Center, and set it in the .env node.
- Set the customer ID (sub-account, no dashes) and api_version (v23 tested).
- Set DATE_FROM and DATE_TO using fixed dates or the provided expressions to control the reporting period. Note: the negative keyword, audience and asset queries return current state and ignore this range.
Requirements
- Google Ads account with API access enabled
- Google Ads OAuth2 credential configured in n8n
- Google Ads developer token
Customization
- Edit the GAQL queries to add/remove fields or change filters (e.g. include REMOVED entities).
- Change the Search Terms ORDER BY/LIMIT (currently top 300 by cost).
- Add segments.date to the negative keyword, audience or asset queries to date-bound them too.
Additional info
Read-only, every node is a SELECT query; the workflow makes no changes to the account.
The "Audience Segments" node returns all ad group targeting criteria, not only audience segments.