A spark code is the small string of characters that makes TikTok Spark Ads possible: the creator generates it in the app, the brand redeems it in Ads Manager, and from that moment the creator's real post can run as a paid ad from their own handle. Every guide on this topic walks through the same four screenshots of the toggle. Almost none of them cover the two decisions that determine whether the boost makes money: which post you ask for a code on, and how you track the authorization once you have it.
I look at creator programs from the data side, so I see where spark-code workflows actually fall apart. It's never the toggle. It's a brand boosting the wrong post, or an ad dying mid-flight because nobody wrote down when the code expired. This guide covers the mechanics from both sides, then the operational layer that the mechanics guides skip.
What a spark code actually is
A spark code (TikTok's official term is "video code") is a one-off authorization token attached to a single TikTok post. It grants one advertiser permission to use that post as ad creative for a fixed window. Three properties matter:
- It's per-post, not per-account. A creator authorizing one video gives you nothing on their other videos. Each post you want to boost needs its own code.
- It's time-boxed. The creator picks the authorization window when they generate it: 7, 30, 60, or 365 days. When the window ends, the ad stops delivering.
- It's not account access. No passwords, no shared logins, no content files. The creator keeps full ownership of the post, sees that it's being promoted, and can end the authorization early.
Creator
Authorizes the post
Ad settings on the video: toggle ad authorization, pick 7 to 365 days
Code
Spark code issued
One code per post per window. No logins or files change hands
Brand
Redeems in Ads Manager
Assets, then Creative: paste the code, the post becomes boostable
That last property is why creators say yes to spark codes far more readily than to older whitelisting arrangements that asked for business-account access. The ask is small and reversible, which is exactly why it should be your default.
How creators generate a spark code
If you're a brand, this is the part you'll paste into a DM at some point, so here it is in creator-facing steps:
- Turn on ad settings once. In the TikTok app: Profile, then the menu, then Settings and privacy, then Creator tools, then Ad settings. Toggle on ad authorization. This is an account-level switch that unlocks the per-video option.
- Open the video to authorize. On the post itself, tap the three dots, then Ad settings.
- Agree and pick the window. Accept TikTok's advertising terms, then choose how long the brand can use the post: 7, 30, 60, or 365 days.
- Generate and copy the code. Tap Generate code, copy it, and send it to the brand over whatever channel you're already talking in.
Ninety seconds, start to finish. Two creator-side warnings worth passing along: don't delete or set the video to private while the ad runs (the ad dies with it), and know that ending the authorization early is always available in the same menu.
How brands redeem one
- In TikTok Ads Manager, go to Assets, then Creative.
- Open the Spark Ads posts tab and click Apply for Authorization.
- Paste the code. The post appears as an authorized creative under your account, still owned by and attributed to the creator's handle.
- Build your campaign as usual and select that post as the creative. Budget, targeting, and objectives work like any other TikTok campaign; the difference is that the ad is the live post, so every like and comment it earns stays on the creator's video permanently.
One quiet detail that trips up first campaigns: the authorization window starts when the creator generates the code, not when you redeem it. A 7-day code that sat in someone's inbox for five days buys you two days of delivery.
The step the tutorials skip: which post gets the code?
Here's the thing about the whole spark-code workflow: it presumes you already know which post to boost. That's the actual hard part, and the data says most brands are choosing from a fraction of the candidates.
96%
of tracked creator posts never @-mention a brand in the caption
The product shows up in the video, the caption, or a verbal mention. The @ almost never comes.
Watching the creator's handle catches those posts. Waiting for the tag doesn't.
Across the 7,000+ creator posts UGCSignal tracks, 96% never @-mention the brand in the caption. The creator shows the product in a get-ready-with-me, says the name out loud, spells it without the @. If your shortlist of boostable posts comes from your tagged-mentions folder, the post most worth a spark code is probably not on it, and you'll never DM that creator for a code because you never saw the post.
The fix is watching handles and brand terms instead of waiting for tags, which is what social listening does continuously. And once you can see every post, rank them by what they sold, not what they reached: revenue attribution turns "this clip has good views" into "this clip drove 38 orders," which is the difference between boosting content and boosting receipts. The full decision framework lives in our TikTok Spark Ads guide.
The operating rule: the spark-code ask should be a consequence of detection, not a prerequisite for it. You find the post that converted, then you ask for the code. Brands that do it backwards end up boosting whatever the creators they happen to know happened to authorize.
Track codes like the contracts they are
A spark code is a usage right with an expiry date. Treat it with the same discipline you'd give any other rights record:
| Track | Why it matters |
|---|---|
| Post and creator behind each code | Six months later, "which video was SPARK-XK42?" should have an answer |
| Authorization window and end date | Ads stop delivering at expiry; renewals need lead time to re-ask |
| What you agreed to pay | Free, flat fee, or usage bonus; the deal lives in a DM unless you move it |
| Performance against the organic baseline | The boost's return only means something next to what the post did unpaid |
At two or three codes, a spreadsheet handles this. The failure mode arrives with scale: ten creators, staggered windows, half the deals negotiated by someone who left. That's the point where the record belongs on the asset itself, in a content library where the post, the rights window, and the revenue it drove sit on one row, and expiry warnings fire before the media buyer finds out the hard way.
Mistakes that quietly kill spark ads
- The video gets deleted or set private. The ad stops immediately. Ask creators to keep the post live for the full window, and put it in the agreement.
- The window expires mid-campaign. Set your campaign end date inside the authorization window, and calendar the renewal ask two weeks out for anything performing.
- The music isn't cleared for commercial use. A post using a trending commercial track can be blocked from ad use. Original audio and commercially-licensed sounds sail through; check before you ask for the code.
- The ask comes with a 400-word brief. You're asking for permission to boost something that already works. Keep the ask as small as the favor is: what you want to boost, for how long, what you're offering.
The short version
Spark codes are the easy half of Spark Ads: a ninety-second toggle for the creator, a paste into Ads Manager for you. The hard half is upstream and downstream of the code. Upstream, find the post that actually converted, including the 96% that never tagged you, and let receipts pick the boost. Downstream, track every code like the time-boxed contract it is, so ads don't die at expiry and renewals don't start from scratch. The brands that win with Spark Ads aren't better at generating codes. They're better at knowing which post deserves one.
Nora EllisUGCSignal
Nora writes about creator programs and the numbers behind them, drawing on the posts, views, and revenue UGCSignal tracks every day.
