A/B test titles, thumbnails or descriptions
create_ab_testRuns a balanced A/B test of up to three challenger title, thumbnail, or description versions against a live YouTube video, compares analytics, and optionally applies the significant winner.
Instructions
Tests 1-3 challenger versions of a live video against its current version (A). The server rotates which version is live one full day at a time (Pacific days, matching YouTube Analytics), in balanced random order so weekdays even out, then compares daily views, watch time, average view percentage, subscribers or engagement, adjusting for the video's natural decline in daily views, with a significance test. At the end it restores A, waits ~3 days for analytics to land, and (if auto_apply_winner) puts a significant winner live. YouTube Studio's own Test & Compare (with impressions click-through rate) has no API; this works on any channel through the official APIs. Each variant can change title, thumbnail and/or description. Changes are public, so the user confirms first.
Tool call template
Replace each placeholder with a value matching the input schema. Only required parameters are included; add optional parameters as needed.
{
"id": 1,
"jsonrpc": "2.0",
"method": "tools/call",
"params": {
"arguments": {
"video_id": "<video_id>",
"variants": "<variants>"
},
"name": "create_ab_test"
}
}Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| days | No | Test length; at least 3 days per version. | |
| start | No | "tomorrow" (recommended: full clean days), "today", or YYYY-MM-DD (Pacific). | tomorrow |
| metric | No | What decides the winner. | views |
| channel | No | Which connected channel: channel ID (UC...), @handle or name. Omit to use the default channel. | |
| variants | Yes | Challengers B, C, D. Fields left out stay as in A. | |
| video_id | Yes | ||
| auto_apply_winner | No | ||
| confirmation_token | No | Only after the user approved: the confirmation_token returned by the previous call with identical arguments. | |
| original_thumbnail_path | No | The current thumbnail file (needed for thumbnail tests when YouTube has no 1280x720 copy of it). |