amekala/ads-mcp/adspirer-tiktok-ads

Claude Code and agent skill by amekala/ads-mcp

Trust tier 3
  • community
Source check pending

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-ads

SKILL.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, or SHOP_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_type is required unless the objective is REACH, RF_REACH, VIDEO_VIEWS, or ENGAGEMENT.
  • REACH and RF_REACH require frequency and frequency_schedule (3 impressions / 7 days is a sane start).
  • APP_INSTALL and APP_PROMOTION require app_id and operating_systems — one OS per ad group.
  • secondary_optimization_event is only valid when optimization_goal is INSTALL or VALUE.

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

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
vskill VERIFIED badge
[![vskill VERIFIED](https://verified-skill.com/api/v1/skills/amekala/ads-mcp/adspirer-tiktok-ads/badge)](https://verified-skill.com/skills/amekala/ads-mcp/adspirer-tiktok-ads)

Something wrong with this skill or its page? Tell us.