create_update_ctv_ad
Create OR update a LinkedIn CTV (Connected TV) video ad.
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 LinkedIn CTV (Connected TV) video ad. LinkedIn only.
TO UPDATE: include `id`; to CREATE: omit it.
CTV ads play on streaming TV inventory through the LinkedIn Audience
Network. On the platform they are LinkedIn VIDEO ads with adType=CTV,
and they carry rules the campaign must meet:
- Campaign type Brand Awareness only (never Lead Gen); the LinkedIn
channel launches as objective BRAND_AWARENESS optimized for REACH.
- The LinkedIn channel MUST use AUTO_BID (a manual bid fails
pre-launch validation); `update_linkedin_channel_settings` sets it.
- Audiences and target groups may target the United States and
Canada ONLY; any other location fails pre-launch validation.
- Video spec, enforced when the creative is uploaded: 6 to 60 seconds,
1920x1080 or 1280x720, at most 500 MB. LinkedIn recommends exactly
15, 30, 45 or 60 seconds for delivery.
CREATIVE WORKFLOW:
1. Upload the video via `upload_video_creative` with `usage_type: "CTV"`
-> response gives `id` (the videoLibraryId). The platform runs the
CTV checks at that step and rejects a non-compliant file.
2. Pass that integer as `creativeID` here. A video uploaded without
the CTV usage type is not eligible for a CTV ad.
3. Ann attaches the returned ad id to a Brand Awareness campaign's
LinkedIn channel like any other ad.
ALSO KNOWN AS: connected tv ad, ctv ad, streaming tv ad, linkedin tv ad,
ott ad, tv commercial on linkedin.
KEYWORDS: ctv, connected tv, streaming, tv, ott, linkedin ctv, video,
brand awareness, reach, audience network, commercial.
CLIENT-SIDE VALIDATION (refuses what the platform UI would also reject):
- adName: required, max 50 chars, same pattern as the other ad tools.
- creativeID: required integer (videoLibraryId).
- linkedinDisplayURL: required, ABSOLUTE (http:// or https://), max 2000.
- linkedinHeadline: required, max 200. linkedinCTA: required enum.
- linkedinText: optional, max 3000. No description field (same DTO as
LinkedIn VIDEO ads).
COMMON CTA VALUES: same as `create_update_video_ad` on LinkedIn.
RESPONSE: same envelope as `create_update_video_ad` (`created_ads[]` with
adType "CTV", channelType "LINKEDIN").
See `create_update_video_ad` for in-feed video ads and
`create_update_image_ad` for image / GIF ads.Arguments
| Argument | Type | Notes | |
|---|---|---|---|
ads_data |
array | required | Array of LinkedIn CTV ads to create or update. |
Request
Request template, not a complete runnable example. Replace placeholders, empty objects, arrays, and zero values with valid account-specific inputs. Read required fields and nested constraints in the full schema. Confirm the account, connected channels, and referenced assets before calling a write tool.
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_ctv_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 is an illustrative template. Fill required fields and check the current schema before calling it. No response is fabricated.
Related
Other creative tools: