POST /api/v2/buyer/advertisers/{advertiserId}/catalogs/{catalogId}/activation-plan/execute
Persists a catalog’s activation plan as durable downstream jobs: campaign-activation requests, creative-generation requests, and seller-syndication steps. Each job is written with status pending.
Execution currently records these jobs; a runner that carries them out (creating live campaigns, generating creative, and pushing to sellers) is not yet available, so executing does not by itself make anything go live. The creative-generation leg additionally depends on brand identity and per-format output before it produces deliverables.
planId you pass, else the latest saved plan, else a plan built on the fly from the catalog’s active transform. Pass dryRun: true to build and return the execution without persisting any jobs.
Request
curl
Parameters
Response
Theplan object is the same activation plan shape returned by preview.
plan and the execution it produced. The overall execution.status is pending, completed, or failed, and its trigger is manual, feed_refresh, or scheduled. Each steps[] entry is one downstream job (campaign_activation_request, sync_catalogs, sync_creatives, creative_generation_request, third_party_creative_agent, or unsupported) with its own status of pending, completed, failed, or skipped. Creative work surfaces separately under creativeGenerationRequests. On a dryRun, the execution is built and returned but no jobs are persisted.
Errors
400 VALIDATION_ERROR— no plan is available and none can be built (“No activation plan is available. Save a catalog transform and sync or refresh the catalog first.”).404 NOT_FOUND—advertiserIdorcatalogIddoes not exist or is not visible to the authenticated account.
Related
Preview activation
Dry-run the fan-out first
Save catalog transform
Define the fan-out rules
Refresh catalog
Pull the latest feed and re-activate
List catalogs
See synced catalogs