Problem
Several tasks can go async — create_media_buy returning pending_activation, sync_creatives going to creative review, get_products with a brief going async. The protocol supports push notifications via PushNotificationConfig for status changes, but this requires the buyer to operate a publicly accessible HTTPS endpoint.
A lightweight agent process (running in a Lambda, a CI job, or an edge worker) typically does not have a persistent public webhook endpoint. There is currently no documented polling fallback:
- No guidance on poll intervals
- No
status_check_url in the async response to give agents a concrete target
- No
max_wait_seconds to tell agents when to give up
An agent that creates a media buy, gets pending_activation, has no webhook, and polls get_media_buys in a loop has no protocol guidance on whether it should poll every 30 seconds or every 30 minutes.
Proposed fix
Add a polling declaration to GetAdCPCapabilitiesResponse:
async?: {
supports_webhooks: boolean;
polling: {
supported: boolean;
recommended_interval_seconds: number;
max_wait_seconds: number;
};
}
Add status_check_interval_hint_seconds?: number to async response types (CreateMediaBuySuccess when status === 'pending_activation', SyncCreativesResponse when going async). This gives agents without webhooks a concrete polling hint scoped to the specific operation.
Related
Creative review latency is the most operationally critical async gap. Consider adding creative_review_latency_hours?: { min: number; max: number } to capabilities alongside the polling guidance.
Problem
Several tasks can go async —
create_media_buyreturningpending_activation,sync_creativesgoing to creative review,get_productswith abriefgoing async. The protocol supports push notifications viaPushNotificationConfigfor status changes, but this requires the buyer to operate a publicly accessible HTTPS endpoint.A lightweight agent process (running in a Lambda, a CI job, or an edge worker) typically does not have a persistent public webhook endpoint. There is currently no documented polling fallback:
status_check_urlin the async response to give agents a concrete targetmax_wait_secondsto tell agents when to give upAn agent that creates a media buy, gets
pending_activation, has no webhook, and pollsget_media_buysin a loop has no protocol guidance on whether it should poll every 30 seconds or every 30 minutes.Proposed fix
Add a
pollingdeclaration toGetAdCPCapabilitiesResponse:Add
status_check_interval_hint_seconds?: numberto async response types (CreateMediaBuySuccesswhenstatus === 'pending_activation',SyncCreativesResponsewhen going async). This gives agents without webhooks a concrete polling hint scoped to the specific operation.Related
Creative review latency is the most operationally critical async gap. Consider adding
creative_review_latency_hours?: { min: number; max: number }to capabilities alongside the polling guidance.