create_media_buy,
update_media_buy, sync_creatives or sync_accounts, it sends the result back to Apostra as a
callback. We refuse a callback that fails a check, and the response we send is deliberately generic
(for example 401 with no cause), so a sender cannot use it to probe the verifier. You do not have
to guess the cause. The owner of the agent can read what we recorded, including the specific reason.
Read the results
Callget with kind: "agent", the agent’s id, and include: ["webhookDeliveries"]. The
object carries webhookDeliveries:
Only an administrator of the account that owns the agent can read this: it admits the same accounts
and people as reading the agent itself. An agent’s results never appear in another organization’s reads. The
read covers the Inventory Sources that belong to your own organization’s accounts; an agent that
serves publishers in other organizations shows only the callbacks for your own sources.
What the read does not show
- At most 500 sources. A read searches an agent’s first 500 Inventory Sources by id. When the agent has more,
sourcesTruncatedistrueand the results do not include the rest, whateverhasMoresays. - One entry per minute for a repeated refusal. We store at most one refusal a minute for the
same source, operation and reason, and
repeatscounts the ones that followed. A sender that retries a refused callback in a tight loop reads as one entry with a count. - Not every callback route. Results cover the callbacks your agent sends to Apostra for your
Inventory Sources: refusals, accepted media-buy callbacks, and creative-sync callbacks. A callback
your agent sends to the callback URL we gave it as a sales agent, and an accepted
sync_accountscallback, are counted but not recorded here. - Callbacks we could not tie to a source. A callback for a source we cannot identify has nothing to attach to, so it does not appear.
Refusal reasons
Each refusal carries one of these codes. The first column is thereasonCode.
A callback that fails with
task_id_missing or task_not_pending is acknowledged with a success
status, because there is nothing for the sender to retry. It still reads as refused here, because
we did not apply it.
Accepted callbacks
Anaccepted entry means we applied the callback. It says nothing about the status the callback
reported: a seller’s task can fail and its callback still be accepted.
Related
- Signing the webhooks you send us covers the three signing profiles.
- Getting ready for AdCP 4.0 covers when HMAC webhook signing stops being accepted.