How to tell if a TikTok video is an ad: is_ad and other signals
If you analyse creator content, you need to separate paid posts from organic ones. A sponsored video with ad spend behind it will have more plays than the creator's normal work, and mixing the two distorts every average. There is no single perfect flag, but there are several signals you can combine.
Signal 1: the is_ad flag
TikTok's own video data includes a true or false field called is_ad. Treat true as the strongest machine-readable sign of paid distribution. It does not tell you about a gifted product or an undisclosed deal, and a creator's post can be organic one week and boosted the next, so record it with a date.
Signal 2: the disclosure label
TikTok has a commercial content disclosure setting. When a creator turns it on, they pick "Your brand" or "Branded content". Branded content shows a "Paid partnership" label, and the setting adds a commercial content label to the post source. This is the creator saying "a brand is involved", which is a different fact from "this is running as an ad".
Signal 3: caption words
Many creators disclose in the caption: #ad, #sponsored, #partner, "paid partnership with", "thanks to @brand", "use my code". These are easy to match with a regular expression. Watch for false positives such as #adhd or #adventure.
Signal 4: a brand tag, a code or a product link
A tagged brand account, a discount code, or a TikTok Shop product link on the video are commercial signals. A product link alone may be affiliate content rather than a paid deal, so record it as "commercial", not "paid".
Signal 5: the ad library
If the video ran as an ad to users in Europe, TikTok's Commercial Content Library should have it, with dates, targeting and reach source. Coverage is the EU, EEA, Switzerland and the UK only source.
A scoring checklist
| Signal | Points | Classify as |
|---|---|---|
| is_ad is true | 3 | Paid distribution |
| Found in the ad library | 3 | Paid distribution |
| Paid partnership label | 2 | Sponsored |
| #ad, #sponsored or "paid partnership" in caption | 2 | Sponsored |
| Discount code or brand thanked in caption | 1 | Commercial |
| Product link only | 1 | Commercial |
Score 3 or more: exclude from organic benchmarks. Score 1 to 2: keep, but tag it. Score 0: treat as organic, while knowing some deals go undisclosed.
import re
SPONSOR = re.compile(r"(#ad\b|#sponsored|#partner\b|paid partnership|#gifted)", re.I)
COMMERCIAL = re.compile(r"(use (my )?code|discount code|link in bio|thanks to @)", re.I)
def ad_score(video):
s, cap = 0, video.get("caption") or ""
if video.get("is_ad"):
s += 3
if SPONSOR.search(cap):
s += 2
if COMMERCIAL.search(cap):
s += 1
return s
Why the label alone is not enough
The US Federal Trade Commission tells influencers to disclose any financial, employment, personal or family relationship with a brand, including free products. It also says not to assume that a platform's disclosure tool is good enough, and that in videos the disclosure belongs in the video itself source. So a compliant sponsored post may carry the label, a caption tag and a spoken mention, and a non-compliant one may carry none. Your score is a signal, not proof. This is not legal advice.
Practical uses
- Clean benchmarks: report a creator's organic median plays separately from sponsored ones.
- Competitor deal mapping: list which creators a brand works with by scanning creators' recent videos for that brand's tag and sponsor words.
- Rate sanity check: compare a creator's sponsored median plays to their organic median. A big drop means their audience tunes out ads.
Edge cases
- Brand accounts. Every post on a brand's own account is commercial. Score creators, not brands.
- Affiliates. Creators who earn commission on Shop links may not label posts as paid partnerships. Track them as commercial.
- Old posts. A video from last year can be boosted today. Re-check before you report.
How to do it with ScrapeIO
Every TikTok video from tiktok profile videos API and tiktok video API includes is_ad and the caption, so the score above runs on the response as is. Check European ad runs with tiktok ad library search API.
Sources
Checked on 8 November 2026 from each vendor's own pages. Prices and limits change; follow the links before you decide.
- https://ads.tiktok.com/resources/help/article/how-to-turn-on-the-commercial-content-disclosure-setting-in-tiktok
- https://developers.tiktok.com/products/commercial-content-api
- https://developers.tiktok.com/docs/en/commercial-content-api-supported-countries
- https://www.ftc.gov/business-guidance/resources/disclosures-101-social-media-influencers
100 free credits, no card. Credits never expire.
Get API key