zuckerbot_upload_ad_asset
Upload a NEW image or video file into the connected Meta ad account's library from a publicly reachable https URL or an absolute local file_path (local stdio/CLI only).
Instructions
Upload a NEW image or video file into the connected Meta ad account's library from a publicly reachable https URL or an absolute local file_path (local stdio/CLI only). Choose exactly one of asset_url, file_path, or files (a batch of up to 20 local files). Local jpg/png images are limited to 30 MB; mp4/mov videos to 4 GB. Files transfer privately without manual hosting. Images return original width/height/name with image_hash. Batch results preserve input order and report per-file failures; all local files are validated before uploading. Returns image_hash (images) or video_id (videos) for use in zuckerbot_create_ad or a zuckerbot_create_campaign_from_spec IMAGE_SET/VIDEO ref. This is the ONLY supported way to get a usable image_hash: Meta scopes image hashes to a single ad account, so a hash copied out of the Meta business media library or out of a different ad account is rejected at ad-creation time as "Image Not Found". Videos need Meta-side processing: the tool waits briefly and polls; if still processing, call zuckerbot_get_ad_asset_status until ready=true before creating an ad with the video. Library assets are non-delivering and spend nothing. This is the first step for adding a brand-new creative file to an EXISTING (even live) campaign: upload here, then zuckerbot_create_ad into the target ad set.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| name | No | Optional library name for the uploaded video | |
| files | No | Batch of local files; mutually exclusive with asset_url and file_path | |
| asset_url | No | Publicly reachable https:// URL; mutually exclusive with file_path and files | |
| file_path | No | Absolute local jpg/png/mp4/mov path; local stdio/CLI MCP only | |
| asset_type | No | Auto-detected from the URL extension when omitted; pass explicitly for extension-less URLs | |
| business_id | No | Optional business ID override for the authenticated API key |