TikTok Ad Keyframe Curve by Material ID (retain_ctr Metric)
omnial/tiktok-ads-get-ad-keyframe-analysis-2
Given a TikTok ad's material ID, returns TikTok's keyframe analysis of that ad for the retain_ctr metric: one value per second of the video, the video's length in seconds, and the seconds TikTok flags as highlights, with a status code and message. Only the retain_ctr metric is offered.
Price
Up to $0.00205 per call; you pay what the call used
The price shown is the price you pay. No monthly minimum. Top-ups start at $5.
Data source
TikTok
Data from TikTok.
Use it
Five steps: search, inspect, learn, run, settle. No per-tool setup; your agent reaches this tool through the meta-tools it already has.
// 1. search: find the tool
omnial_search({ query: "what you need" })
// 2. inspect: price and input schema
omnial_inspect({ tool: "omnial/tiktok-ads-get-ad-keyframe-analysis-2" })
// 3. learn: read the usage guide at runtime
omnial_learn({ tool: "omnial/tiktok-ads-get-ad-keyframe-analysis-2" })
// 4. run: price the exact call first, then run it
omnial_execute({ tool: "omnial/tiktok-ads-get-ad-keyframe-analysis-2", input: { /* see input_schema */ }, dry_run: true })
omnial_execute({ tool: "omnial/tiktok-ads-get-ad-keyframe-analysis-2", input: { /* ... */ } })
// 5. settle: the call is charged when it finishes, nothing to doNot connected yet? Point your MCP client at https://mcp.eden-engine.com/mcp, then copy a config for your client.
Pricing
Every charge this tool can incur.
| Charge | Price |
|---|---|
Per call | $0.00205 |
- Updated
- Oct 14, 2026
Input and output schemas
Input schema
{
"type": "object",
"required": [
"material_id",
"metric"
],
"properties": {
"metric": {
"enum": [
"retain_ctr"
],
"type": "string",
"default": "retain_ctr",
"description": "The metric the curve is computed for; only retain_ctr is offered."
},
"material_id": {
"type": "string",
"pattern": "^[0-9]+$",
"description": "The numeric material ID of a TikTok ad creative, as a string (the ID TikTok's top ads listings give each ad)."
}
},
"additionalProperties": false
}Output schema
{
"type": "object",
"properties": {
"msg": {
"type": "string",
"description": "OK on success."
},
"code": {
"type": "number",
"description": "0 on success."
},
"data": {
"type": "object",
"properties": {
"analysis": {
"type": "array",
"items": {
"type": "object",
"properties": {
"value": {
"type": "number",
"description": "The retain_ctr value at that second (between 0 and 1 in testing)."
},
"second": {
"type": "number",
"description": "The second of the video, from 0."
}
}
},
"description": "One point per second of the video, in order."
},
"duration": {
"type": "number",
"description": "The video's length in seconds."
},
"highlight": {
"type": "array",
"items": {
"type": "number"
},
"description": "The seconds TikTok flags as highlights."
}
}
}
},
"description": "The keyframe analysis, as returned after shaping."
}