Tiktok Spark Ads logo

Tiktok Spark Ads

Organization
appeeky
tiktok-spark-ads

When the user needs to publish TikTok organic posts and use Spark Ads codes to run them as paid ads. Use when the user mentions "Spark Ads", "spark code", "authorization code", "post video then promote", "TikTok organic to paid", or "add videos to TikTok campaign". Follows tiktok-creative-strategy and tiktok-campaign-setup.

Overview

Publisherappeeky
Repositoryua-skills
Skill nametiktok-spark-ads
Stars
73
Forks
5
Bundled files
Instructions only
Links
  • Markdown instructions

    A SKILL.md file the model loads on demand, so it only costs tokens when a request actually matches.

  • Works with any LLM

    AI skills are plain Markdown, not provider-specific code, so this works with GPT, Claude, Gemini, Grok, or a local model.

  • Self-contained

    Everything the model needs lives in the instructions — no extra files to sync.

  • Open source

    Published by appeeky on GitHub. Read the source before you install it.

Installation

Install the Tiktok Spark Ads AI skill in TypingMind to use it with any LLM, or drop it into another agent that reads SKILL.md.

1

Install in TypingMind

TypingMind installs a skill straight from its GitHub folder — it reads SKILL.md, bundles the resource files, and stores the result locally.

  1. Open the app and go to Plugins → Skills.
  2. Choose "Install from GitHub".
  3. Paste the skill folder URL below and confirm.
    https://github.com/appeeky/ua-skills/tree/main/skills/tiktok-spark-ads
  4. Enable the skill in any chat where you want it available.
Plugins → Skills → Add skill → From GitHub URL, then paste the folder URL and press Continue.
2

Install in another agent

Any agent that reads the Agent Skills format can use this skill — copy the folder into that agent's skills directory.

Claude Code — .claude/skills
git clone --depth 1 https://github.com/appeeky/ua-skills.git /tmp/ua-skills
mkdir -p .claude/skills
cp -r /tmp/ua-skills/skills/tiktok-spark-ads .claude/skills/tiktok-spark-ads
Restart Claude Code after copying so it picks up the new skill.

Use it in TypingMind

Enable Tiktok Spark Ads in any TypingMind chat and the model takes it from there. Its name and description sit in the system prompt, and the moment a request matches, the model loads the full instructions itself — you never invoke it by hand, and it costs no tokens until it is actually used.

The model loads Tiktok Spark Ads on its own as soon as a request matches it.

Works with any AI model

AI skills are plain Markdown instructions rather than provider-specific code, so Tiktok Spark Ads is not tied to the model it was written for. Install it once in TypingMind and use it with GPT-5, Claude, Gemini, Grok, DeepSeek, Mistral, Llama, or a local model you run yourself — all on your own API keys.

  • Loaded only when it is needed

    The system prompt carries just the name and description. The instructions are fetched on the first matching request, so an idle skill costs nothing.

  • Switch models mid-chat

    Because the skill is instructions rather than code, changing model does not break it — the next model reads the same SKILL.md.

Skill instructions

This is the SKILL.md content the model loads. Read it before installing — a skill is instructions your model will follow.

TikTok Spark Ads Workflow

You are a TikTok Spark Ads specialist. Spark Ads run organic posts as paid ads — they preserve social proof (likes, comments) and typically outperform uploaded creatives for consumer app install campaigns.

Initial Assessment

  1. Confirm 6 videos produced per tiktok-creative-strategy matrix (A/A′/B/B′/C/C′)
  2. Confirm TikTok ad account connected — tiktok_ads_credentials_status
  3. Confirm MMP + tracking live — mmp-setup complete
  4. Ask which TikTok account(s) will host posts (brand vs persona)
  5. Confirm campaign structure ready or planned — tiktok-campaign-setup
  6. Check if user needs new account setup or has aged account

Why Spark Ads (Not Uploaded Creatives)

DimensionUploaded adSpark Ad
Feed appearanceLooks like an ad immediatelyLooks native in For You feed
Social proofNone — starts at 0 engagementShows real likes, comments, shares
Trust signalLower — users skip "Ad" content fasterHigher — feels like creator content
CTR (typical)0.3–0.7% for app install0.8–1.5% for same creative
Comment sectionEmpty or disabled feelOrganic comments build credibility
API pathtiktok_ads_upload_video_from_urlIdentity + tiktok_item_id or auth code
RecommendationFallback onlyDefault for app install tests

When to Use Uploaded Creatives Instead

  • Spark authorization expired and no time to re-post
  • API automation without linked TikTok identity
  • Brand policy prohibits organic posting from persona accounts

For first tests, always prefer Spark.

Prerequisites Checklist

RequirementStatusSkill
6 videos finalized (9:16, 15–30s, captioned)tiktok-creative-strategy
TikTok posting account readyThis skill
Ad account OAuth connectedtiktok_ads_credentials_status
Identity linked in Ads ManagerStep 3 below
MMP events verifiedmmp-setup
Campaign/ad group created (paused)tiktok-campaign-setup

Account Strategy

ApproachProsConsBest for
Brand accountOfficial, trustworthyLower organic reachEstablished apps
Persona accountNative feel, higher trustNeeds consistent niche contentConsumer/subs apps
Creator accountMaximum authenticityCoordination overheadUGC production

New Account Aging (If Needed)

If the posting account is new:

  1. Post 3–5 organic niche videos (no ads) over 3–7 days
  2. Engage normally — don't mass-follow
  3. Then post Spark-bound creatives
  4. Aged accounts get better initial delivery

One account can host all 6 Spark ads — no need for 6 separate accounts.

Step 1 — Post Organically

For each of your 6 ads:

StepAction
1Open TikTok app on posting account
2Upload video from camera roll
3Add caption: hook text + 2–3 relevant hashtags
4Do not require link in bio — ad drives to App Store
5Post and wait for processing (< 5 min)
6Copy post URL and note post time

Caption Template

[Hook line from brief — first sentence of video]

[Optional: 1 line expanding benefit]

#niche #glowup #[category]

Posting Rules

RuleWhy
Post all 6 within 24–48hKeeps batch timing aligned for audit
Use TikTok library sounds when possibleAvoids music rights rejection
Don't edit after postingEdits can invalidate Spark codes
Keep posts publicPrivate posts can't Spark
Match brief exactlyHook A vs A′ must differ only in video, not unrelated posts

Tracking Sheet (Start Here)

Ad slotPost URLPosted dateCaptionHashtagsStatus
APosted
A′
B
B′
C
C′

Step 2 — Get Spark Authorization Code

On each posted video:

StepUI path
1Open the post on TikTok
2Tap ⋯ (more options)
3Select Ad settings or Authorize for ads
4Generate Spark Ads authorization code
5Set authorization period: 60 days (maximum practical)
6Copy code — format like #XXXXXXXX or alphanumeric string

Authorization Settings

SettingValueNotes
Authorization duration60 daysRegenerate before expiry
Allow ad commentsOnEnables comment strategy
Allow ad sharingOn (default)

Update tracking sheet:

Ad slotPost URLSpark codePosted dateExpiresCode status
A#xxx+60dActive
A′#xxx+60dActive

Appeeky MCP — Verify Identity

tiktok_ads_credentials_status

tiktok_ads_list_identities
  advertiser_id: "<id>"

If no identity exists, create one linked to the posting account via Ads Manager → Assets → Identities, then re-list.

Step 3 — Link Identity to Ad Account

In TikTok Ads Manager:

StepAction
1Go to Assets → Identities
2Click Add identity → TikTok account
3Log in to posting account or enter authorization
4Confirm identity appears in ad creation flow

Without linked identity: Spark codes still work via paste, but selecting posts from library is faster for management.

Step 4 — Add to TikTok Campaign

Navigate: Ad group → Add ads

UI fieldValueNotes
Ad creation modeCreate ad
Creative typeSpark AdsNot standard video upload
Creative selectionCustomNOT automatic
IdentitySelect linked TikTok accountOr paste auth code
TikTok postSelect post OR paste Spark codeOne post per ad
Ad nameA - Story transformation v1Match matrix slot
CTA buttonInstall now
DestinationApp Store / Google PlayMatch platform
Display nameApp name or persona name
Ad textInherited from caption — can overrideKeep hook visible
Selling points1–2 optional bullets"Free trial", "Top rated"

Repeat for all 6 posts. Confirm 6 separate ads in one ad group.

Appeeky MCP — Create Spark Ads

tiktok_ads_list_ads
  advertiser_id: "<id>"
  adgroup_id: "<id>"

tiktok_ads_create_ad
  advertiser_id: "<id>"
  adgroup_id: "<id>"
  creatives:
    - ad_name: "A - Story transformation v1"
      identity_id: "<from tiktok_ads_list_identities>"
      tiktok_item_id: "<post id from organic video>"
      call_to_action: "INSTALL_NOW"

creatives is required. Alternative with authorization code (when item ID unavailable):

tiktok_ads_create_ad
  advertiser_id: "<id>"
  adgroup_id: "<id>"
  creatives:
    - ad_name: "A - Story transformation v1"
      identity_id: "<id>"
      spark_ads_auth_code: "<code from TikTok app>"
      call_to_action: "INSTALL_NOW"

Fallback — Uploaded Video (Not Recommended)

tiktok_ads_upload_video_from_url
  advertiser_id: "<id>"
  video_url: "<hosted mp4 url>"

tiktok_ads_create_ad
  advertiser_id: "<id>"
  adgroup_id: "<id>"
  creatives:
    - ad_name: "A - Uploaded fallback"
      video_id: "<from upload response>"
      call_to_action: "INSTALL_NOW"

Step 5 — Text & CTA Settings

Per ad in Ads Manager:

FieldRecommendationCommon mistake
CTAInstall now"Learn more" for install campaigns
Display nameApp name or personaMismatched name confuses users
Ad textKeep organic caption hookOverwriting with generic ad copy
Selling points1–2: "Free trial", "Top rated"Listing 5+ bullets — cluttered
Creative selectionCustomAutomatic hides performance data

Step 6 — Pre-Publish Verification

CheckHow to verify
6 ads in ad groupAds Manager ad list count = 6
All Spark (not upload)Each ad shows linked TikTok post
Tracking 0 errorsAd group → Tracking tab
Custom selectionNo "automatic creative" toggle on
Campaign paused or readyUser confirms before activate
tiktok_ads_list_ads
  advertiser_id: "<id>"
  adgroup_id: "<id>"

Step 7 — Publish

  1. Resolve any tracking errors before publish
  2. Publish all ads in the ad group
  3. Confirm campaign status: Active
  4. Note start timestamp for 48h review
  5. Schedule tiktok-campaign-audit at T+48h
tiktok_ads_update_campaign_status
  campaign_id: "<id>"
  operation_status: "ENABLE"

Post-Publish: Comment Strategy

High-performing app advertisers use Spark comment sections as conversion assets.

Optional Tactics (User Discretion)

TacticImplementationEthics
Pinned commentPin benefit summary or FAQ from brand account✅ Helpful
Reply to questionsAnswer pricing, platform, trial questions✅ Genuine support
Comment keyword filteringFilter "scam", "AI", "fake", "bot", "money"✅ Spam reduction
Seeded commentsPre-post friendly questions from alt accounts⚠️ Use sparingly; focus on real FAQ
Hide toxic commentsModerate via TikTok comment tools✅ Standard practice

Comment Filtering Setup

TikTok Ads Manager → Campaign/Ad settings → Comment management:

Filter keywordWhy
scamReduces conversion sabotage
fakeCommon on transformation ads
AITriggers skepticism on edited content
botUndermines trust
moneyAttracts "is this free" pile-ons

Frame ethically: helpful pinned comments and spam filtering — not fake engagement farms.

Spark Ads Lifecycle Management

EventAction
Day 0Publish + note all Spark code expiry dates
Day 48Audit per tiktok-campaign-audit
Day 5–7Plan creative refresh even on winners
Day 50Regenerate Spark codes before 60-day expiry
Winner identifiedCreate A′/B′ hook variants → new Spark posts

Troubleshooting

IssueLikely causeFix
Spark code invalidExpired or typoRegenerate on post; copy full code
Post not found in Ads ManagerIdentity not linkedLink TikTok account under Assets → Identities
"Creative rejected"Prohibited claims, music rightsRemove claims; use TikTok library audio
Low deliveryBudget too low or policy flagCheck policy center; confirm $50/day
1 error on publishTracking misconfigurationRevisit mmp-setup; verify optimization event
Ad shows wrong videoWrong post selectedRe-link correct tiktok_item_id
Comments hurting CVRToxic spam visibleEnable filtering + pin FAQ
Auth code works once then failsCode already used on another adOne code per ad instance; regenerate if needed

Spark Setup Scoring Rubric

Score 0–2 per item. Minimum 14/16 to publish.

#CheckScore
1All 6 videos posted organically
2Spark codes generated (60-day auth)
3Identity linked to ad account
46 ads created with custom selection
5Each ad maps to correct matrix slot
6CTA = Install now on all ads
7Tracking 0 errors
8Comment filtering configured (optional +1 bonus)

Output Template

markdown
# Spark Ads Launch Sheet

**App:** [name]
**Campaign:** [name]
**Ad Group:** [name]
**Posting account:** @[handle]
**Published:** [datetime]
**Review date:** [+48h]

## Spark inventory
| Slot | Post URL | Spark code | Expires | CTA | Ad ID | Status |
|------|----------|------------|---------|-----|-------|--------|
| A | | #xxx | | Install now | | Live |
| A′ | | #xxx | | Install now | | Live |
| B | | #xxx | | Install now | | Live |
| B′ | | #xxx | | Install now | | Live |
| C | | #xxx | | Install now | | Live |
| C′ | | #xxx | | Install now | | Live |

## Comment strategy
- [ ] Keyword filtering enabled
- [ ] Pinned FAQ comment on top performer
- [ ] Brand account monitoring replies

## Next steps
1. Wait 48h — no hourly dashboard checks
2. Run tiktok-campaign-audit at [date/time]
3. Regenerate codes before [earliest expiry - 10d]

Related Skills

  • tiktok-creative-strategy — videos to post
  • tiktok-campaign-setup — campaign structure
  • tiktok-campaign-audit — 48h performance review
  • mmp-setup — tracking prerequisite
  • campaign-profitability — CPA vs LTV after launch

Frequently asked questions

What does the Tiktok Spark Ads AI skill do?

When the user needs to publish TikTok organic posts and use Spark Ads codes to run them as paid ads. Use when the user mentions "Spark Ads", "spark code", "authorization code", "post video then promote", "TikTok organic to paid", or "add videos to TikTok campaign". Follows tiktok-creative-strategy and tiktok-campaign-setup.

Why use Tiktok Spark Ads on TypingMind?

Because you install it once and use it with any model. Tiktok Spark Ads is plain Markdown rather than provider-specific code, so the same skill runs on GPT-5, Claude, Gemini, Grok, or a local model — and you can switch model mid-chat without it breaking. TypingMind runs on your own API keys, so you pay providers directly instead of a per-seat subscription, and your skills and chats stay in your own storage.

How do I install Tiktok Spark Ads in TypingMind?

Open Plugins → Skills → Install from GitHub in TypingMind and paste https://github.com/appeeky/ua-skills/tree/main/skills/tiktok-spark-ads. TypingMind reads its SKILL.md and installs it as a skill you can enable per chat.

Which AI models can use Tiktok Spark Ads?

Any model you connect in TypingMind. AI skills are plain Markdown instructions rather than provider-specific code, so GPT, Claude, Gemini, Grok, and local models can all load this skill when a request matches it.

How many AI models can I use with Tiktok Spark Ads?

As many as you like. As long as a model supports skills, you can use Tiktok Spark Ads with it — GPT, Claude, Gemini, Grok, DeepSeek, Mistral, Llama and more — all on TypingMind with your own API keys.

Is the Tiktok Spark Ads AI skill free?

It is published on GitHub by appeeky. Check the repository for licensing terms. You only pay your own AI provider for the tokens you use.

What are AI skills?

An AI skill is a reusable instruction bundle that teaches an AI model how to do one specific task. It follows the open Agent Skills format: a SKILL.md file with a name and description, plus any scripts, templates or reference files the model may need. The model reads the instructions only when your request matches the skill, so an installed skill costs nothing until it is used.

How are AI skills different from plugins or MCP servers?

A plugin or MCP server gives a model new tools to call — code that runs somewhere and returns a result. An AI skill gives the model knowledge and process instead: how to approach a task, which steps to follow, what good output looks like. Skills are plain Markdown, so they need no server, no API key and no runtime, and they work with any model.

View all

Set up your own AI workspace now

Get notified about new features and future giveaways by subscribing to our newsletter 👇