TikTok Ads Manager ACTION
Upload Creative
Upload an image or video to the TikTok Ads Asset Library and return its asset ID. Always run this tool before Create or Update Ad when using new creative — the ad creation API requires asset IDs, not file URLs. Provide a publicly accessible URL or a
/tmp file path. Returns image_id for images and video_id for videos. Supported image formats: JPG, JPEG, PNG. Supported video formats: MP4, MOV, MPEG, AVI. For images, see See the documentation. For videos, see See the documentation.- Action
- Writes data
- OAuth
- SDK
- MCP
IMPLEMENTATION
Call this tool
Connect a user's TikTok Ads Manager account once, then configure and run Upload Creative from your backend or agent.
import { PipedreamClient } from "@pipedream/sdk"
const pd = new PipedreamClient({
projectId: process.env.PIPEDREAM_PROJECT_ID!,
clientId: process.env.PIPEDREAM_CLIENT_ID!,
clientSecret: process.env.PIPEDREAM_CLIENT_SECRET!,
projectEnvironment: "production",
})
const result = await pd.actions.run({
id: "tiktok_ads_manager-upload-creative",
externalUserId: "{external_user_id}", // any stable ID for this user in your system
configuredProps: {
tiktok_ads_manager: { authProvisionId: "apn_xxxxxxx" },
advertiserId: "Advertiser ID",
creativeType: "Creative Type",
},
})
console.log(result)curl -X POST https://api.pipedream.com/v1/connect/{project_id}/actions/run \
-H "Content-Type: application/json" \
-H "X-PD-Environment: production" \
-H "Authorization: Bearer {access_token}" \
-d '{
"external_user_id": "{external_user_id}",
"id": "tiktok_ads_manager-upload-creative",
"configured_props": {
"tiktok_ads_manager": { "authProvisionId": "apn_xxxxxxx" },
"advertiserId": "Advertiser ID",
"creativeType": "Creative Type"
}
}'// accessToken: mint a short-lived token with the Connect SDK — see the MCP guide
const transport = new StreamableHTTPClientTransport(
new URL("https://remote.mcp.pipedream.net/v3"),
{
requestInit: {
headers: {
Authorization: `Bearer ${accessToken}`,
"x-pd-project-id": "{project_id}",
"x-pd-environment": "production",
"x-pd-external-user-id": "{external_user_id}", // any stable ID for this user in your system
"x-pd-app-slug": "tiktok_ads_manager",
},
},
},
)
const mcp = new Client({ name: "my-agent", version: "1.0.0" })
await mcp.connect(transport)
const { tools } = await mcp.listTools()
// listTools() hands your model this tool's input schema, so it can
// fill the arguments itself:
const result = await mcp.callTool({
name: "tiktok_ads_manager-upload-creative",
arguments: {
advertiserId: "Advertiser ID",
creativeType: "Creative Type",
},
})SCHEMA
Inputs
Pipedream supplies the connected account. Your application provides the operation-specific values below. Dynamic inputs are resolved against that user's account.
| Property | Type | Description |
|---|---|---|
advertiserId Advertiser ID | string | Your TikTok Ads Manager advertiser ID. Find it in the Ads Manager URL after aadvid= (e.g., aadvid=7123456789012345678). Also visible under Account Info in Business Center. Required |
creativeType Creative Type | string | Type of creative asset to upload. Required |
filePath File Path or URL | string | Publicly accessible URL or /tmp file path. For URL upload, TikTok fetches the file directly. For file upload, the file is read from /tmp. Required |
fileName File Name | string | Display name for the asset in the Asset Library (max 100 characters). Defaults to the original filename. File names must be unique per advertiser. Optional |
syncDir SyncDir | dir | Optional |
REFERENCE
Tool details
Behavior hints are published with the component in the Pipedream registry and surface as MCP tool annotations, so an agent can reason about a tool before it calls it.
- Registry key
- tiktok_ads_manager-upload-creative
- Version
- 0.0.2
- App
- TikTok Ads Manager
- Authentication
- OAuth
- Read-only
- No
- Destructive
- No
- Open world
- Yes
- Source
- View on GitHub ↗