Zernio
Zernio
API Reference

Insights

List lead conversationsGETGoogle Local Services Ads leadsGETSubmit async insights reportPOSTGet ad analyticsGETPoll an async insights report runGETGoogle Ads search terms reportGETGet campaign analyticsGETGet historical keyword metricsPOSTGenerate keyword ideasPOSTFlexible live insights queryGET
Dashboard
llms.txtOpenAPI
OverviewPlatformsAPI ReferenceResources
Insights

Get historical keyword metrics

Google Ads only. Runs Keyword Planner's generateKeywordHistoricalMetrics for up to 1,000 exact keywords: historical search volume, competition and top-of-page bid ranges, plus averageCpcMicros when includeAverageCpc is set. Rows come back verbatim; counters are int64s encoded as strings, bid/CPC values are micros of the account currency.


PlatformsGoogle
POST
/v1/ads/keywords/historical-metrics

Authorization

bearerAuth
AuthorizationBearer <token>

API key authentication: send your Zernio API key in the Authorization header, prefixed with Bearer.

In: header

Request Body

application/json

TypeScript Definitions

Use the request body type in TypeScript.

Response Body

application/json

application/json

application/json

application/json

{  "customerId": "string",  "data": [    {}  ],  "aggregateMetricResults": {}}
Was this page helpful?

Get campaign analytics

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. Google adds searchImpressionShare, searchBudgetLostImpressionShare, searchRankLostImpressionShare, searchTopImpressionShare and searchAbsoluteTopImpressionShare under analytics.summary for the requested inclusive range. These ratios are queried together without daily segmentation and cached for 10 minutes. Unavailable values are null. analytics.impressionShareCache reports cachedAt and stale independently of synced metrics.

Generate keyword ideas

Google Ads only. Runs Keyword Planner's generateKeywordIdeas from seed keywords, a seed URL, or both, returning idea rows verbatim (avgMonthlySearches, competition, competitionIndex, top-of-page bid micros, monthlySearchVolumes). Counters are int64s encoded as strings; bid values are micros of the account currency. Omitting `countries` targets worldwide.

accountId*string

Zernio googleads SocialAccount id.

customerId?string

Numeric Google Ads customer id (no dashes); only needed when the connection has several accounts.

keywords*array<>
Items1 <= items <= 1000
countries?array<>

ISO 3166-1 alpha-2 country codes. Omitted = worldwide.

Items1 <= items <= 10
languageConstantId?string

Google languageConstant id (1000 = English).

Default"1000"
network?string
Default"GOOGLE_SEARCH"

Value in

  • "GOOGLE_SEARCH"
  • "GOOGLE_SEARCH_AND_PARTNERS"
includeAdultKeywords?boolean
includeAverageCpc?boolean

Adds averageCpcMicros to each row's keywordMetrics.