meta_ads_videos_upload
Uploads a video to a Meta Ads account from a public HTTPS URL and returns the video_id needed to build ad creatives. Meta fetches and processes the file asynchronously; poll status until ready.
Instructions
Uploads a video to the Meta Ads account by fetching it from a public HTTPS URL. Returns the video_id to reference in creative-construction tools. Mutating — the asset is persisted. Meta fetches the URL itself and then processes the video asynchronously: poll meta_ads_videos_get until status.video_status reports ready (typically a few minutes) before attaching it to a creative. Supported formats: MP4, MOV, AVI, WMV, MKV, up to 1 GB via this tool; larger files need resumable upload (not yet supported). For uploads from local files use meta_ads_videos_upload_file.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| title | No | Optional title stored with the uploaded video. Used for library organization; not shown in ads. | |
| reason | No | Why this change is being made: one or two sentences naming the evidence and the expected effect. Stored in the journal and on the action_log entry this call produces, for the operator and the next session. | |
| approval | No | External approval this change carries out (recorded and shown, never verified) | |
| expected | No | Expected effects [{metric, direction, target?, horizon_days?, primary?}], exactly one primary:true when several; metric cpa/cpc/cpl/cpm/conversions/cvr/ctr/roas/cost/spend/clicks/impressions; direction up/down/hold. | |
| video_url | Yes | Public HTTPS URL of the video. Meta fetches it once at upload time. Supported formats: MP4, MOV, AVI, WMV, MKV, up to 1 GB; larger files need resumable upload (not yet supported). | |
| account_id | No | Meta Ads account ID in the format 'act_XXXXXXXXXX' (e.g. 'act_1234567890'). Optional — falls back to META_ADS_ACCOUNT_ID from the configured credentials. The leading 'act_' prefix is required. | |
| decision_id | No | A proposed decision this change carries out. |