amekala/ads-mcp/adspirer-tiktok-ads
Claude Code and agent skill by amekala/ads-mcp
- community
Checking that the SKILL.md file is still in the repository.
Create and manage TikTok Ads through Adspirer — in-feed video, Spark Ads, carousel, app promotion, and conversions campaigns. Use for anything on TikTok. Covers the pixel-placement rule that causes most TikTok failures, the unsupported single-image ad, and per-currency budget floors.
Install
npx vskill@latest install amekala/ads-mcp/adspirer-tiktok-adsSKILL.md
TikTok Ads
Everything on TikTok goes through the tiktok_ads router. Follow adspirer-mcp for the two-step.
Account parameter: advertiser_id, as a string. Budgets are in the account's currency.
TikTok rejects invalid combinations of objective, optimization goal, and tracking rather than correcting them. Check `references/validity-matrix.md` before you build an ad group. A rejected call fails the same way on retry.
The pixel rule — read this before anything else
Where the pixel goes depends on the objective:
- Objective is
CONVERSIONS,WEB_CONVERSIONS,PRODUCT_SALES, orSHOP_PURCHASES→
set pixel_id on the ad group, and optimization_event becomes required.
- Any other objective → the pixel goes on the ad as
tracking_pixel_id. An ad-group
pixel_id is rejected with PIXEL_ID_NOT_ALLOWED_FOR_OBJECTIVE.
This single rule is the most common TikTok error we see. A traffic campaign with a pixel on the ad group fails every time.
There is no single-image in-feed ad
TikTok does not support one static image as an in-feed ad. It returns error 40002. Use:
- a video ad (
create_tiktok_video_campaign), - a Spark Ad boosting an existing organic post (
tiktok_item_id), or - a carousel, 2–10 images with music (
create_tiktok_carousel_card).
If the user only has one image, say so and offer the carousel or a video.
Uploads fail quietly
After uploading a video, check video_id. If it comes back as the string `"None"`, the upload failed — it is not null and it will not error. Re-upload. Never create an ad with video_id: "None".
Budgets have per-currency floors
USD 20 · EUR 20 · GBP 15 · CAD 25 · AUD 30 · SGD 25 · BRL 100 · HKD 150 · MXN 350 · ZAR 500 · TWD 600 · PHP 1000 · INR 1500 · JPY 2500. Lifetime budgets floor at roughly 7× the daily figure. The full table is in the reference. Below the floor TikTok replies "Your budget setting must not be less than X."
Objectives
Valid: REACH, RF_REACH, VIDEO_VIEWS, ENGAGEMENT, TRAFFIC, APP_INSTALL, APP_PROMOTION, LEAD_GENERATION, CONVERSIONS, WEB_CONVERSIONS, PRODUCT_SALES, SHOP_PURCHASES, CATALOG_SALES.
Some accounts lack the permission scope for a given objective and get a generic "objective isn't supported." Run explain_tiktok_objective to check before building.
Dependencies worth knowing up front:
promotion_typeis required unless the objective isREACH,RF_REACH,VIDEO_VIEWS, orENGAGEMENT.REACHandRF_REACHrequirefrequencyandfrequency_schedule(3 impressions / 7 days is a sane start).APP_INSTALLandAPP_PROMOTIONrequireapp_idandoperating_systems— one OS per ad group.secondary_optimization_eventis only valid whenoptimization_goalisINSTALLorVALUE.
Call-to-action
LEARN, VISIT, and GO are rejected. Use LEARN_MORE, SHOP_NOW, DOWNLOAD_NOW, SIGN_UP, GET_QUOTE, BOOK_NOW, or INSTALL_NOW.
Build order
Campaign → add_tiktok_ad_group → add_tiktok_ad. Campaigns are created paused.
You need an identity (the account the ad posts as) — list_tiktok_identities. Without one, the ad has no author and creation fails.
References
references/validity-matrix.md— the full objective × pixel × optimization matrix, currency
floors, and CTA list. Read it before building an ad group.
Security
- Security scanPassed, 95 of 100Pattern checks on the skill's files.
- Model reviewPassed
Quality evaluation
- Task evaluationNot runNo evaluation yet. Run one in Skill Studio.
Source
- SKILL.md in the repositoryCheckingskills/adspirer-tiktok-ads/SKILL.md
Popularity
- Repository stars
- 75
- Repository forks
- 12
- 7-day trend score
- 22
Stars and forks are for the whole GitHub repository, not this skill alone. Not refreshed yet.
Works with
Any agent vskill installs to: 56 targets in all. These 39 have a page on this site.
- Claude Code
- Cursor
- GitHub Copilot
- Windsurf
- Codex
- Gemini CLI
- Cline
- Amp
- Roo Code
- Goose
- Continue
- Kilo Code
- Junie
- Trae
- OpenHands
- Qwen Code
- AI Agent
- Tabnine Chat
- Sourcegraph Cody
- Amazon Q
- Firebase Genkit
- Sweep
- Devin
- Phind
- Mentat
- Claude Desktop
- Aider
- GPT Pilot
- Plandex
- bolt.new
- v0
- Replit Agent
- Anse
- TypingMind
- BetterChatGPT
- LibreChat
- Warp AI
- Pieces
- Fig AI
Embed badge
[](https://verified-skill.com/skills/amekala/ads-mcp/adspirer-tiktok-ads)