Zernio
Zernio
API Reference

Targeting

Search targeting optionsGETSuggested bid and budget boundsPOSTImpressions, clicks and spend forecastPOSTEstimate audience reachPOST
Dashboard
llms.txtOpenAPI
OverviewPlatformsAPI ReferenceResources
Targeting

Impressions, clicks and spend forecast

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.


PlatformsLinkedIn
POST
/v1/ads/targeting/supply-forecast

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

{  "available": true,  "forecast": [    {      "metricType": "string",      "granularity": "DAILY",      "timeSeries": [        {          "timestamp": 0,          "value": 0,          "adForecastRange": {            "lowEnd": 0,            "highEnd": 0          }        }      ]    }  ]}
Was this page helpful?

Suggested bid and budget bounds

LinkedIn-only. Returns the suggested bid and bid limits for a targeting spec, plus the daily-budget bounds LinkedIn will accept. Use it before creating a campaign to pick a bid inside the allowed range and warn the user if their daily budget is below the minimum. Wraps LinkedIn's `adBudgetPricing` finder. Non-LinkedIn accounts return `available: false` so clients can hide the pricing UI without treating it as a failure.

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.

accountId*string
adAccountId*string
spec*

Normalized, platform-agnostic ad-targeting spec. Every field is optional, an empty object targets the platform's default broadest audience. Field names are camelCase and identical across POST /v1/ads/create (the targeting object), POST /v1/ads/targeting/reach-estimate, and saved_targeting audiences, so a spec resolved once can be reused verbatim.

Entity ids (regions[].key, cities[].key, zips[].key, metros[].key, interests[].id, behaviors[].id) are the platform's opaque identifiers resolved via GET /v1/ads/targeting/search. A spec is therefore meaningful only for the platform it was built against, except the portable fields (countries, ageMin/ageMax, gender, incomeTier, languages) which carry across platforms. Fields a platform cannot honour are rejected at create time with INVALID_FIELD_VALUE naming the offending field (not silently dropped).

campaignType?string

Defaults to SPONSORED_UPDATES.

Value in

  • "SPONSORED_UPDATES"
  • "SPONSORED_INMAILS"
  • "DYNAMIC"
timeRangeStart*integer

Unix ms. Must be in the future.

timeRangeEnd*integer

Unix ms. Must be after start and within LinkedIn's max horizon.

objectiveType?string
optimizationTarget?string

When set, the forecast assumes auto-bidding. When unset, competingBid is required.

dailyBudget?number

Either dailyBudget or totalBudget is required.

totalBudget?number
currency?string

ISO 4217, defaults to USD.

Length3 <= length <= 3
competingBid?

Required for manual-bid forecasts (when optimizationTarget is not set).

enableAudienceNetwork?boolean

Defaults to false. Required true for connectedTelevisionOnly.

enableAudienceExpansion?boolean

Defaults to false.

connectedTelevisionOnly?boolean

Defaults to false.