- a
taskId; - a
taskType:audience_syncormedia_buy_create; - a
statusthat follows AdCP task states:submitted,working, then a final state; - a
resourceTypeandresourceIdnaming the record the task works on; - an
errormessage when it fails; - a
responsewith the result once it completes; - a
retryAfterSecondshint for how long to wait before polling again.
Task polling is the only way to follow these operations today. Webhook notifications for tasks
aren’t available yet: the buyer webhook subscriptions only carry the
discovery.revision event.https://api.semicola.com/api/v2/buyer/.
Where task ids come from
Poll the task
404 NOT_FOUND.
Status values
Keep polling only while the status is
submitted or working. retryAfterSeconds is 5 for an
audience sync in progress, 30 for a buy under review, and null once the task is final.
Outcomes by task type
audience_sync. resourceType is advertiser and resourceId is the advertiser id. On
completed, response holds the sync result; read the audiences themselves with
GET /advertisers/{id}/audiences (or list_audiences over MCP).
media_buy_create. resourceType is media_buy and resourceId is the Semicola media buy id
(mb_…). The task mirrors the buy’s status: PENDING_APPROVAL reads as submitted,
INPUT_REQUIRED as input-required, REJECTED as rejected, FAILED as failed, and any other
status as completed. On completed, response is { "media_buy_id": "…" }, the seller’s own id for
the buy. error carries the seller’s message when there is one.
Semicola follows seller tasks for you: it polls the seller and updates the media buy when the seller
decides, so reading the buy (or its campaign’s media buy status) tells you the same thing.
Related
Media buy lifecycle
Every status a buy moves through.
Diagnosing stuck media buys
What to check when a buy doesn’t move.