v2

latestOpenAPI 3.1.02026-08-075421692.0 MB
Webhook Events

Ad status changed event

Fired when a campaign, ad set, or ad on a connected ad platform changes status. Currently emitted only for Meta (metaads).

Subscribed to two Meta ad_account webhook fields:

  • in_process_ad_objects - the ad object finished processing and exited the IN_PROCESS state. status.raw carries Meta's status_name (e.g. ACTIVE, PAUSED, ARCHIVED, DELETED).
  • with_issues_ad_objects - the ad object entered the WITH_ISSUES state. status.raw is set to WITH_ISSUES and the error block is populated from Meta's error_code / error_summary / error_message.

adObject.level mirrors Meta's level and is one of CAMPAIGN, AD_SET, or AD. Creative-level events are not forwarded.

Branch on status.raw to handle each transition; use error.code (when present) as the stable discriminator — error.summary and error.message are localized to the ad-account owner's Meta locale.

The error block is optional. It's present on most WITH_ISSUES events but can be absent (Meta does not always include diagnostics), and is never present on any other status. Always null-check error before reading error.code.

Fan-out: matching is keyed on adObject.platformAdAccountId. When multiple connected Zernio metaads accounts are linked to the same Meta ad account, each receives its own delivery.

postWebhookad.status_changed

Payload

idstring required

Stable webhook event ID

event'ad.status_changed' required
timestampstring date-time required

ISO-8601 timestamp the webhook was produced.

Example payload

{
  "account": {
    "platform": "metaads"
  },
  "adObject": {
    "platformId": "120244894077860689",
    "platformAdAccountId": "act_2129800524463520"
  },
  "status": {
    "raw": "ACTIVE"
  },
  "error": {
    "code": "2643001",
    "summary": "Ad Processing Error"
  }
}

Response

Webhook received successfully