catalog_management. See Meta Ads.
Read the catalog
get_connections_status, thenget_ad_accounts.get_meta_product_catalogslists catalogs for oneaccount_id.limitis optional.get_meta_product_setslists product sets for onecatalog_id.
Validate before a catalog ad
validate_meta_catalog_ad_draft is a read. It blocks the draft when any of these fail:
account_id,catalog_id, andproduct_set_idare missing.destination_urlis not anhttpsURL.daily_budgetis not a number of at least 5.campaign_objectiveis notOUTCOME_SALESorPRODUCT_CATALOG_SALES.execution_modeis notpausedorapproval_required.
creative object is a warning. The draft can still be valid. The later create requires creative.
Create
create_meta_product_set needs catalog_id, name, and filter. It does not create the ad.
create_meta_catalog_ad needs account_id, catalog_id, product_set_id, ad_set_id, name, and creative. The queued ad payload sets status to PAUSED. The call waits in Approvals and does not post until that approval runs. If the queue is unavailable, the result is approval_queue_required.
execution_mode on these writes is paused or approval_required. Other values are rejected. Enabling the campaign is enable_campaign, and that is a separate approval.
Dynamic creative
validate_meta_creative_assets is a read. When dynamic_creative is true, it requires at least two titles, one body, and one call to action. Every title must be 255 characters or fewer. A body longer than 500 characters is a warning. The asset set also needs one image of at least 600 by 600 with an https URL, or one video of at least 1 second with an https URL or a video_id.
create_meta_dynamic_creative needs account_id, page_id, and asset_feed_spec. Optional fields are name, object_story_spec, and degrees_of_freedom_spec. It is the same approval-gated write. get_meta_creative_variants reads variants for an account_id or creative_id and does not create one.