Submit an async insights report run (Meta)
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}. Meta only.
API key authentication - use your Zernio API key as a Bearer token
In: header
Zernio SocialAccount id (posting or ads variant).
Meta insights node: act_, campaign id, ad set id or ad id.
"ad" | "adset" | "campaign" | "account"Comma-separated Graph insights fields.
Comma-separated Graph breakdowns.
Meta filter objects, applied server-side.
Mutually exclusive with fromDate/toDate.
datedateResponse Body
application/json
application/json
import Zernio from '@zernio/node';const zernio = new Zernio({ apiKey: process.env.ZERNIO_API_KEY });const { data } = await zernio.ads.createAdInsightsReport({ body: { accountId: 'account_abc123', objectId: 'object_abc123', },});console.log(data);{
"reportRunId": "string",
"status": "Job Started"
}{
"error": "Unauthorized"
}Get aggregated event stats GET
Returns aggregated event counts for the pixel (`GET /{pixel_id}/stats`). Rows are passed through from Meta as-is — their shape depends on the `aggregation` requested. Meta only (platform `metaads`); other platforms return 405.
Poll an async insights report run (Meta) 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`.