← AdspirerCONTENT HISTORY

Update to Adspirer

Snapshot Oct 28, 2026 · 12:05 UTC · version 2.1.0

Collection source: downloaded plugin package.

WHAT CHANGED

First saved snapshot

No earlier snapshot is available to establish a change.

Save Adspirer and check future changes in Following.

Up to 10 plugins free · no card required.

Compare saved observations

Download comparison JSON
Full technical diff · 0 changed fields
Full snapshot data
{
  "description": "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.",
  "included_files": [
    {
      "relative_path": "references/validity-matrix.md",
      "size_in_bytes": 2930
    }
  ],
  "name": "adspirer-tiktok-ads",
  "skill_md_contents": "---\nname: adspirer-tiktok-ads\ndescription: 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.\n---\n\n# TikTok Ads\n\nEverything on TikTok goes through the `tiktok_ads` router. Follow `adspirer-mcp` for the two-step.\n\nAccount parameter: `advertiser_id`, as a **string**. Budgets are in the account's currency.\n\nTikTok rejects invalid combinations of objective, optimization goal, and tracking rather than\ncorrecting them. **Check `references/validity-matrix.md` before you build an ad group.** A rejected\ncall fails the same way on retry.\n\n## The pixel rule — read this before anything else\n\nWhere the pixel goes depends on the objective:\n\n- Objective is `CONVERSIONS`, `WEB_CONVERSIONS`, `PRODUCT_SALES`, or `SHOP_PURCHASES` →\n  set `pixel_id` on the **ad group**, and `optimization_event` becomes required.\n- **Any other objective** → the pixel goes on the **ad** as `tracking_pixel_id`. An ad-group\n  `pixel_id` is rejected with `PIXEL_ID_NOT_ALLOWED_FOR_OBJECTIVE`.\n\nThis single rule is the most common TikTok error we see. A traffic campaign with a pixel on the ad\ngroup fails every time.\n\n## There is no single-image in-feed ad\n\nTikTok does not support one static image as an in-feed ad. It returns error 40002. Use:\n\n- a **video** ad (`create_tiktok_video_campaign`),\n- a **Spark Ad** boosting an existing organic post (`tiktok_item_id`), or\n- a **carousel**, 2–10 images with music (`create_tiktok_carousel_card`).\n\nIf the user only has one image, say so and offer the carousel or a video.\n\n## Uploads fail quietly\n\nAfter uploading a video, check `video_id`. If it comes back as the **string `\"None\"`**, the upload\nfailed — it is not null and it will not error. Re-upload. Never create an ad with `video_id: \"None\"`.\n\n## Budgets have per-currency floors\n\nUSD 20 · EUR 20 · GBP 15 · CAD 25 · AUD 30 · SGD 25 · BRL 100 · HKD 150 · MXN 350 · ZAR 500 ·\nTWD 600 · PHP 1000 · INR 1500 · JPY 2500. Lifetime budgets floor at roughly 7× the daily figure.\nThe full table is in the reference. Below the floor TikTok replies \"Your budget setting must not be\nless than X.\"\n\n## Objectives\n\nValid: `REACH`, `RF_REACH`, `VIDEO_VIEWS`, `ENGAGEMENT`, `TRAFFIC`, `APP_INSTALL`, `APP_PROMOTION`,\n`LEAD_GENERATION`, `CONVERSIONS`, `WEB_CONVERSIONS`, `PRODUCT_SALES`, `SHOP_PURCHASES`,\n`CATALOG_SALES`.\n\nSome accounts lack the permission scope for a given objective and get a generic \"objective isn't\nsupported.\" Run `explain_tiktok_objective` to check before building.\n\nDependencies worth knowing up front:\n\n- `promotion_type` is required unless the objective is `REACH`, `RF_REACH`, `VIDEO_VIEWS`, or `ENGAGEMENT`.\n- `REACH` and `RF_REACH` require `frequency` and `frequency_schedule` (3 impressions / 7 days is a sane start).\n- `APP_INSTALL` and `APP_PROMOTION` require `app_id` and `operating_systems` — one OS per ad group.\n- `secondary_optimization_event` is only valid when `optimization_goal` is `INSTALL` or `VALUE`.\n\n## Call-to-action\n\n`LEARN`, `VISIT`, and `GO` are rejected. Use `LEARN_MORE`, `SHOP_NOW`, `DOWNLOAD_NOW`, `SIGN_UP`,\n`GET_QUOTE`, `BOOK_NOW`, or `INSTALL_NOW`.\n\n## Build order\n\nCampaign → `add_tiktok_ad_group` → `add_tiktok_ad`. Campaigns are created **paused**.\n\nYou need an identity (the account the ad posts as) — `list_tiktok_identities`. Without one, the ad\nhas no author and creation fails.\n\n## References\n\n- `references/validity-matrix.md` — the full objective × pixel × optimization matrix, currency\n  floors, and CTA list. Read it before building an ad group.\n"
}

SHA-256 of public snapshot: 6e36ae95cb43fff8a1e4ef86a03c3382d19f4bcb27d717e3a89a6314e212a2a2