---
title: "Ad video processed event"
method: POST
path: "ad.video.processed"
tags: ["Webhook Events"]
---

# Ad video processed event

`POST ad.video.processed` (webhook)

Fired once per `POST /v1/ads/videos` call made with `async: true`, when Meta finishes
processing the uploaded video. `video.status` is `ready` (reference it as `video.id`
on the create endpoints) or `error` (Meta could not process it; `video.error` carries
the reason).

Zernio watches the video for up to about 13 minutes after the upload request. A video
still processing after that sends no event, so keep `GET /v1/ads/videos/{videoId}`
as the source of truth for long videos.

## Payload

- WebhookPayloadAdVideoProcessed — Webhook payload for the `ad.video.processed` event. Fires once per `POST /v1/ads/videos` call made with `async: true`, when Meta finishes processing the video (Meta only).
  - `id` string, required — Stable webhook event ID: the dedupe key, also sent as the X-Zernio-Event-Id header and identical on every retry and redelivery.
  - `event` 'ad.video.processed', required
  - `account` object, required — The connected ads account the video was uploaded with.
    - `accountId` string, required — Internal Zernio account ID.
    - `profileId` string, required — Internal Zernio profile ID this account belongs to.
    - `platform` string, required — Ads connection platform. Currently always `metaads`.
    - `username` string, required
    - `displayName` string, nullable
  - `video` object, required
    - `id` string, required — Meta video id, as returned by the 202 upload response.
    - `platformAdAccountId` string, required — Meta ad account id (act_<n>) the video was uploaded to.
    - `status` 'ready' | 'error', required — `ready`: usable as `video.id` on the create endpoints. `error`: Meta could not process it; upload again.
    - `error` string, nullable, required — Meta's processing error when status is `error`, otherwise null.
    - `thumbnailUrl` string, nullable, required — Meta's auto-generated poster when status is `ready` and Meta produced one, otherwise null.
  - `timestamp` string, date-time, required — UTC time at which Zernio generated this event.

## Acknowledgement `200`

Webhook received successfully

---

[API](https://skmtc.dev/zernio/apis/zernio-api.md) · [All operations](https://skmtc.dev/zernio/apis/zernio-api/llms.txt) · [OpenAPI document](https://skmtc.dev/zernio/apis/zernio-api/revisions/698fd1d46648?raw)
