Pause or resume a single ad
Ad-scoped pause/resume — touches ONLY this ad, never its parent ad set or
campaign (so sibling ads keep running). Thin wrapper over the status
field of PUT /v1/ads/{adId}, for callers that want a URL symmetric to
/v1/ads/campaigns/{campaignId}/status and /v1/ads/ad-sets/{adSetId}/status.
{adId} accepts the same identifier dialects as GET/PUT /v1/ads/{adId}
(Zernio hex _id, Meta numeric platformAdId, or the creative's
effective story/media IDs). platform is inferred from the ad, so it's
not required in the body. Ads in terminal statuses (rejected, completed,
cancelled) and no-op flips (already in the target state) are skipped.
Authorization
bearerAuth API key authentication - use your Zernio API key as a Bearer token
In: header
Path Parameters
Zernio _id (hex), Meta platformAdId (numeric), or one of the creative's effective story/media IDs.
Request Body
application/json
TypeScript Definitions
Use the request body type in TypeScript.
Response Body
application/json
application/json
{ "updated": 0, "skipped": 0, "message": "string"}Cancel an ad
Cancels the ad on the platform and marks it as cancelled in the database. The ad is preserved for history. OpenAI Ads has no delete API; the ad is archived instead (a terminal state, the closest equivalent).
Add Search keywords to an ad group
Adds one or more keyword criteria to an existing Google Search ad group, without touching the keywords already there (unlike the whole-set diff on `PUT /v1/ads/{adId}`, `keywords`/`negativeKeywords` in `platformSpecificData`, which replaces the set). Set `negative: true` to add ad-group-level negatives instead of positive keywords.