Google Ads search terms report
The actual search queries that triggered your ads, with matched-keyword
status and spend metrics — the raw material for wasted-spend analysis and
negative-keyword lists. Reads Google's search_term_view live; defaults
to the last 30 days. Rows are ordered by cost, descending. Draws on the
shared Google Ads operations budget.
API key authentication - use your Zernio API key as a Bearer token
In: header
Query Parameters
Google ads SocialAccount id.
Numeric Google Ads customer id (no dashes). Defaults to the account's connected customer.
Defaults to 30 days ago.
dateDefaults to today.
dateNumeric Google campaign id filter.
Numeric Google ad group id filter.
Cursor from paging.nextPageToken of the previous page.
Response Body
application/json
application/json
application/json
import Zernio from '@zernio/node';const zernio = new Zernio({ apiKey: process.env.ZERNIO_API_KEY });const { data } = await zernio.adinsights.getAdsSearchTerms({ query: { accountId: 'account_abc123', },});console.log(data);{
"customerId": "string",
"data": [
{
"searchTerm": "string",
"status": "string",
"matchType": "string",
"campaignId": "string",
"campaignName": "string",
"adGroupId": "string",
"adGroupName": "string",
"impressions": 0,
"clicks": 0,
"costMicros": 0,
"conversions": 0,
"conversionsValue": 0
}
],
"paging": {
"nextPageToken": "string"
}
}{
"error": "string",
"type": "invalid_request_error",
"code": "string",
"param": "string",
"platform": "string",
"platformError": {},
"details": {}
}{
"error": "Unauthorized"
}Poll an async insights report run GET
Status and results for a report run created via POST /v1/ads/insights/reports. While the job runs, returns `status` and `percentCompletion`. Once `status` is "Job Completed" the response also carries a `data` page, cursor-paginated via `limit` / `after`.
Get campaign analytics GET
Returns performance analytics for a whole campaign in one call: summary metrics, a daily timeline over the requested date range (summed across the campaign's ads), and optional demographic breakdowns. Breakdowns are fetched live from Meta at the campaign level (one call per dimension, no per-ad fan-out), so an agency dashboard gets campaign-level age/gender/etc. without summing thousands of per-ad reads. `campaignId` is the platform campaign id; pass `platform` when a campaign id could be ambiguous across platforms. If no date range is provided, defaults to the last 90 days. Date range is capped at 730 days max.