Tiktok Ad Research
Published by crawlora-org in crawlora-skills
What this skill does
Research TikTok Creative Center Top Ads by brand, market, industry, and objective through Crawlora. Use for competitor-ad comparisons, creative briefs, messaging and format analysis, and inspection of public ad-performance charts.
Add Tiktok Ad Research to your agent
Review the source and files first. When you are ready, copy the prompt instruction or use the CLI command supported by your environment.
Install with a prompt
Paste this into a compatible coding agent:
add this skill "tiktok-ad-research" from https://github.com/crawlora-org/crawlora-skillsInstall with the CLI
Run this command in a controlled environment after reviewing the repository:
npx skills add https://github.com/crawlora-org/crawlora-skills --skill tiktok-ad-researchSkill instructions
TikTok ad research
Build a sourced comparison of TikTok Top Ads and explain which creative ideas are supported by observed content and public performance signals. Top Ads is a selected collection of high-performing auction ads, not every advertiser's campaigns.
Setup and requests
Set CRAWLORA_API_KEY to your key from crawlora.net.
Run the bundled scripts/crawlora.sh from this skill directory or by absolute
path. It sends x-api-key to https://api.crawlora.net/api/v1 and prints JSON.
Keep the key in the environment. Read reference/endpoints.md
for the ten Top Ads endpoints and their exact parameters.
Workflow
- Determine the brands/product keywords, market, objective, lookback period,
and requested sample size from the brief. Discover current industry,
objective, language, and country IDs through
/tiktok/top-ads/filters; use/locationsand/location-infowhen the geography needs clarification. - Search
/tiktok/top-ads/list, keeping market, period, and objective consistent across competitors.periodis7,30, or180;limitis at most 100.order_byacceptsfor_you,impression,ctr,play_2s_rate,play_6s_rate,cvr, orlike. State the sort because it changes the sample. - Deduplicate by Top Ads material ID and fetch
/tiktok/top-ads/detailfor a bounded shortlist. Use the returned material ID, not a TikTok video ID. Recommendations and spotlight ads can widen discovery, but mark them as supplemental rather than silently mixing them into a matched comparison. - Use
/tiktok/top-ads/analysiswhen performance over the ad's duration matters. Metrics areretain_ctr,retain_cvr,click_cnt,convert_cnt, andplay_retain_cnt;period_typeis7,30, or180. Match metric and period across ads before comparing charts or percentiles. - Inspect the actual creative when the environment supports video/image viewing. If only metadata is accessible, limit conclusions to title/copy and returned fields. Do not claim to have watched a hook or heard audio from metadata alone.
- Summarize recurring messaging, format, offer, and call-to-action patterns with linked examples. Present proposed creative tests as hypotheses; public charts do not establish what caused conversion performance.
scripts/crawlora.sh /tiktok/top-ads/filters
scripts/crawlora.sh /tiktok/top-ads/list \
keyword=skincare country_code=US period=30 limit=10 order_by=ctr
Output and interpretation
Return a comparison with material_id, available advertiser/title, source link,
country, objective, lookback, duration, observed messaging/format, returned
performance fields, and retrieval time. Preserve metric labels and units as
reported; a percentile is not a raw CTR, spend estimate, or ROI.
- Keyword results may mention a brand without belonging to it. Verify advertiser identity where available and mark uncertain matches.
- No matches means none in the queried Top Ads sample, not that the competitor is inactive. Describe the filters and coverage rather than claiming all ads.
- Keep signed media URLs as returned; they may expire. Retain material IDs and source-page links when available so the research can be repeated.
- The response can contain nested upstream
code/msg/data. Check both the Crawlora envelope and any upstream code before treatingmaterialsas results. Stop atpagination.has_more=falseor the agreed sample bound. - On
429, back off; retry a transient5xxonce. Stop on401/403and report the source limitation. Preserve a partial comparison if only some details/charts load, clearly marking missing observations.
Files included
- reference/endpoints.md
- scripts/crawlora.sh
- SKILL.md

