create_update_video_ad
Create OR update a VIDEO ad on Facebook, Instagram, LinkedIn, and/or Reddit.
Destructive creative
Deletes, archives, launches or moves budget. Do not give an agent this one without a human gate.
What it does
Create OR update a VIDEO ad on Facebook, Instagram, LinkedIn, and/or Reddit.
TO UPDATE: include `id`; to CREATE: omit it.
CREATIVE WORKFLOW:
1. Upload the video via `upload_video_creative` → response gives `id` (the videoLibraryId).
2. Pass that integer as `creativeID` here.
- For Reddit, ALSO upload a still thumbnail via `upload_image_creative` and pass
its imageLibraryId as `redditThumbnailLibraryId` (required; the video cannot
be its own thumbnail).
ALSO KNOWN AS: create video ad, update video ad, edit video ad,
modify video ad, video creative, post video, video post, motion ad.
KEYWORDS: video, create, update, edit, modify, ad, ads, video ad, video ads, mp4, motion,
video creative, video campaign, video upload, video post, video promo,
LinkedIn video, Facebook video, Instagram video, Reddit video, IG reel.
CLIENT-SIDE VALIDATION (refuses what the platform UI would also reject):
- adName: required, max 50 chars, pattern `[a-zA-Z0-9 _.?,:'/+\-=&;%$#\[\]|()]`.
- creativeID: required integer (videoLibraryId from `upload_video_creative`).
- Landing-page URL is per channel (`facebookDisplayURL`,
`instagramDisplayURL`, `linkedinDisplayURL`, `redditDisplayURL`).
Required for FB/IG/LinkedIn, optional for Reddit. Per-channel
caps: LinkedIn max 2000, Reddit max 100, FB/IG no length rule.
For VIDEO the URL MUST be ABSOLUTE (http:// or https:// is
required); inputs like `metadata.io` or `www.foo.com` are
rejected the same way the UI rejects them. If only one channel's
URL is set the server fans it across the other targeted channels.
- LinkedIn: linkedinText (max 3000, OPTIONAL for VIDEO unlike IMAGE),
linkedinHeadline (required, max 200), linkedinCTA (required, valid enum).
linkedinDescription is NOT accepted on VIDEO ads (the platform DTO
does not declare it).
- Facebook: metaCTA (required), facebookText (required, no length rule on
Facebook), facebookHeadline (required, max 250), facebookDescription
(optional, max 300).
- Instagram: metaCTA (required), instagramText (required, max 125),
instagramHeadline (required, max 40), instagramDescription (optional, max 30).
- FB+IG ad with one body text: set just one of facebookText / instagramText
and the server copies it across (capped at the receiving channel's limit).
Set both explicitly only when you want per-channel copy.
- Reddit: redditHeadline (required, max 300), redditCTA (required, valid enum),
redditThumbnailLibraryId (REQUIRED — separate IMAGE library id).
COMMON CTA VALUES: same as `create_update_image_ad` (see that tool for the lists).
See `create_update_image_ad` for image/GIF ads (the URL rule is looser there).Arguments
| Argument | Type | Notes | |
|---|---|---|---|
ads_data |
array | required | Array of VIDEO ads to create or update. Each item targets one or more of FB/IG/LinkedIn/Reddit; the platform creates one ad row per (ad, channel). |
Request
curl
curl -s -X POST https://mcp-server.metadata.io/mcp \
-H "Authorization: $METADATA_PAT" \
-H "Content-Type: application/json" \
-H "Accept: application/json, text/event-stream" \
-H "MCP-Protocol-Version: 2025-11-25" \
-d '{"jsonrpc":"2.0","id":1,"method":"tools/call","params":{"name":"create_update_video_ad","arguments":{"ads_data":[]}}}'
Response
No recorded response. This tool can delete, archive, launch or move budget, so it is never executed to build these docs.
The request above is still the exact shape to send. Nothing on this page is invented.
Related
Other creative tools: