Estimate audience reach
Returns a normalized pre-flight audience-size estimate for a targeting spec,
before any campaign is created. Backed by each platform's native reach API
(Meta delivery_estimate, LinkedIn audienceCounts, X audience_summary,
Pinterest audience_sizing).
Platforms without a usable pre-flight reach API (Google Search/Display, TikTok)
return available: false with no bounds, so clients can hide or grey out the
estimate rather than treat the absence as an error.
API key authentication - use your Zernio API key as a Bearer token
In: header
Zernio social account ID on the target ad platform (the estimate runs against its platform).
Required. The platform ad-account ID the reach call runs against (Meta act_..., LinkedIn numeric sponsoredAccount ID, Pinterest ad-account ID, X account ID) - every backing reach API is scoped to one ad account. Get it from GET /v1/ads/accounts.
Optional. The optimization goal the estimate should assume (platform's
own vocabulary, e.g. Meta REACH, LINK_CLICKS, OFFSITE_CONVERSIONS).
Some platforms vary the estimate by goal; omit to use the platform default.
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.adtargeting.estimateAdReach({ body: { accountId: 'account_abc123', adAccountId: 'adaccount_abc123', spec: { countries: [ 'string', ], regions: [ { key: 'tok_abc123', }, ], cities: [ { key: 'tok_abc123', }, ], }, },});console.log(data);{
"available": true,
"lower": 0,
"upper": 0,
"daily": 0,
"currency": "string",
"estimateReady": true
}{
"error": "Unauthorized"
}{
"error": "Not found"
}Impressions, clicks and spend forecast POST
LinkedIn-only. Forecasted impressions, clicks, spend and ~20 other metrics for a targeting spec over a time range. Wraps LinkedIn's `adSupplyForecasts` finder. Each returned series carries a `metricType` (IMPRESSION, CLICK, SPENDING, MAX_POTENTIAL_BUDGET, COST_PER_MILLION_IMPRESSIONS, ...) and a `granularity` (DAILY, SEVEN_DAY, THIRTY_DAY, CUSTOM). LinkedIn caps the daily spending forecast at 1.2x the daily budget and returns 0 once the total budget is exhausted. Non-LinkedIn accounts return `available: false`.
Submit an async insights report run POST
Submits an asynchronous Meta insights report. Same query surface as GET /v1/ads/insights, but in the JSON body; Meta processes the report server-side, which is the right choice for long ranges or large accounts where the sync query is slow or rate-limited. Returns a `reportRunId` to poll via GET /v1/ads/insights/reports/{reportRunId}.