Communitygithub.com

mardab96/tiktok-ads-claude-skills

Scores the opening seconds of TikTok ads by computing 2-second and 6-second view rates and a thumb-stop proxy from ad-level export columns, comparing them with like-for-like ads, and scoring the script opening on a five-point rubric. Use when the user asks "which TikTok hook is weak", "what's my hook rate", "why do people scroll past my ad", wants a hook test plan, or pastes a transcript of the first seconds next to video-view columns.

tiktok-ads-claude-skills 是什么?

tiktok-ads-claude-skills is a Claude Code agent skill that scores the opening seconds of TikTok ads by computing 2-second and 6-second view rates and a thumb-stop proxy from ad-level export columns, comparing them with like-for-like ads, and scoring the script opening on a five-point rubric. Use when the user asks "which TikTok hook is weak", "what's my hook rate", "why do people scroll past my ad", wants a hook test plan, or pastes a transcript of the first seconds next to video-view columns.

兼容平台✓Claude Code~Codex CLI~Cursor
npx skills add https://github.com/mardab96/tiktok-ads-claude-skills/tree/HEAD/hook-rate-scorer-tiktok-ads

在你喜欢的 AI 中提问

打开一个已预加载此 Agent Skill 的新对话。

文档

Hook Rate Scorer - TikTok Ads

Use this skill when

Use this when you want an attention read on how an ad opens before anyone writes new scripts. Two kinds of evidence are joined: export math (who watched past 2 and 6 seconds) and a read of the actual opening (what the viewer saw and heard).

Common requests:

  • "What's my hook rate on these ads?"
  • "Which of these openings is losing people?"
  • "Score these three scripts before we shoot."
  • "Write me a hook test plan for this winner."

When not to use

  • Delivery is repeating and CTR is sliding over weeks -> creative-fatigue-detector-tiktok-ads.
  • Hook is fine but clicks do not convert -> landing-page-match-tiktok-ads or cpa-spike-diagnosis-tiktok-ads.
  • The user wants full new scripts -> winning-ad-remix-tiktok-ads.

Required input

Ad-level export, aggregated over the date range (daily rows are not required). Label the range in the filename. Use Ads Manager Reporting, ad level, and add the video-view columns; column labels vary, so keep them as labelled in your Ads Manager and map them in the first reply.

FieldWhy it is needed
ad id, ad nameRow identity
campaign objective, ad group nameComparable-set grouping
Audience type (prospecting or retargeting), as stated by the userRetargeting viewers open differently
Format: Spark or brand-handle, video length, placementComparable-set grouping
impressionsDenominator for both view rates
2-second video views, 6-second video viewsHook and hold numerators
clicks, spendPost-hook read

Also needed: the exact first spoken line (word for word), the first frame described, any on-screen text in seconds 0 to 6, and the product facts the opening claims. Optional: other video-view columns your export carries (watch-time or completion columns, as labelled), creative previews, comments.

A generic video views column is not a 2-second column. If only that exists, mark T02 needs_data and say so.

Metric definitions

All are calculated per ad from the same row, so they share one denominator. Label every one a proxy: TikTok does not publish a metric named "hook rate" in this pack's references.

MetricFormulaReads as
2s view rate2-second views / impressionsThumb-stop proxy: share of impressions that held for 2 seconds
6s view rate6-second views / impressionsEarly interest proxy
6s-to-2s ratio6-second views / 2-second viewsDiagnostic ratio of differently defined metrics, never viewer retention; it may exceed 1
Click per 6s viewclicks / 6-second viewsPost-hook click intent proxy [heuristic]

Autoplay, sound state, and placement change how a "view" is counted by viewers, so compare only inside a comparable set.

Analysis workflow

  1. Verify impressions and the exact exported metric definitions. TikTok 6-second views can include an early interaction or completion of a shorter video; 2-second views require two seconds of playback. A 6s count above 2s is therefore valid and must not stop analysis. See https://ads.tiktok.com/help/article/video-play?lang=en . Check missing denominators and incompatible report scopes instead.
  2. Build the comparable set: same objective, same audience type, same format (T02). Drop ads under 3,000 impressions from the set (T02). State the set size. A median over two or three ads is fragile; cap the verdict at possible and say why.
  3. Compute each ad's 2s rate, 6s rate, diagnostic 6s-to-2s ratio, and click per 6s view. Mark zero denominators undefined. Take the median 2s rate across the comparable set.
  4. Apply T02: flag an ad when its 2s rate is at least 25% below the comparable median, after at least 3,000 impressions. Gap = (median - ad rate) / median.
  5. Score the opening with the rubric below, from the transcript and first-frame description, not from the metrics. Score blind to the metrics where possible, then compare.
  6. Cross the two reads using the quadrant table in Decision rules.
  7. Check delivery differences before blaming the script: audience type, placement mix, ad age, learning window (T05), budget skew, sound-on share if known.
  8. Write a controlled hook test: one ad, 3 openings, everything after second 2 identical.

Opening rubric (house heuristic, not a predictor)

Score each 0 absent, 1 partial, 2 clear. Maximum 10.

#CriterionClear means
C1Subject in first frameProduct, problem, or person visible at frame 1; no logo card, fade, or black frame
C2Tension lineA spoken or on-screen line states a problem, question, claim, or surprise
C3SpeedThe tension line lands before second 2; count words (about 2 to 3 spoken words per second [heuristic])
C4Visual changeA cut, motion, or hand action inside the first 2 seconds
C5Sound-off readOn-screen text carries the point, sits inside the safe area, readable on a small screen

Bands: 0 to 4 weak, 5 to 7 workable, 8 to 10 strong [heuristic]. Separate claim check: every claim in the opening must trace to a supplied product fact, else hold on reusing that hook.

Scoring scripts that have not run yet

When no export exists (pre-shoot, or a brand-new ad), run the rubric alone. Each candidate needs its first spoken line, first frame, and any on-screen text from seconds 0 to 6. Tag the evidence creative_script.

  • Score every candidate side by side, 0 to 10, and count the spoken words before second 2.
  • The score orders ideas to test. It is not evidence of performance, so the verdict ceiling is possible.
  • Recommend the top two plus one deliberately different opening, so the test spans a spread instead of three near-copies.

Illustrative candidates for a silicone food-lid set (fictional):

CandidateFirst lineFirst frameC1-C5ScoreNote
A"Hi, we're Lumo Home"Logo card0,0,0,1,12Greeting before the problem
B"Silicone lids always pop off."Bowl held upside down2,2,2,2,19Tension in 5 words
COn-screen only: "Do these stay on?"Hand pressing a lid2,1,1,2,28Works with sound off

Partial exports

What you haveWhat you can computeVerdict ceiling
Impressions, 2-second views2s rate, T02 gappossible on cause, gap confirmed
Impressions, 2s and 6s viewsAdds diagnostic 6s-to-2s ratio, not retentionSame
Only a generic video views columnNothing for T02needs_data
Impressions and clicks onlyCTR, not a hook readneeds_data for the hook

Decision rules

T02 flags a gap in attention. It never supports a purchase conclusion.

ConditionVerdictNext step
Gap at least 25% (T02), 3,000 or more impressions, rubric 0 to 4, set is like-for-likeGap: confirmed for the supplied export. Opening as cause: likelyHook test, then winning-ad-remix-tiktok-ads
Gap at least 25% (T02), rubric 8 to 10possible delivery or audience differenceCheck placement, audience, sound, learning (T05)
2s rate fine, diagnostic 6s-to-2s ratio below the set medianpossible metric-definition, interaction or duration differenceCompare duration and interaction counts; inspect seconds 2 to 6 before proposing edits
2s and diagnostic ratio comparable, click per 6s view lowpossible CTA or offer mismatchlanding-page-match-tiktok-ads
2s rate high, clicks and conversions weakpossible curiosity without payoffCompare opening claim with page and offer
Under 3,000 impressions, or set too thinneeds_data or monitorWait or widen the set
2-second column missingneeds_dataRe-export with the video-view columns

Output format

### Comparable set
Objective: [..] | Audience: [..] | Format: [..] | Ads in set: [n] | Median 2s rate: [x%] | T02 line: [y%] [ads_export]

### Hook scorecard
| Ad | Impr | 2s rate | 6s rate | Diagnostic 6s-to-2s ratio | Gap vs median | First spoken line | First frame | Rubric C1-C5 | Verdict | Next hook |
|---|---|---|---|---|---|---|---|---|---|---|

### Hook test plan
Control: [ad, retained] | Variants: V1 [..], V2 [..], V3 [..] | Held constant: [body, CTA, audience, budget] | Read after: 3,000 impressions per variant (T02) | Metric: 2s rate; 6s-to-2s ratio as context, never retention

### Decision table
| Finding | Evidence | Verdict | Severity | Confidence | Business impact | Next step |
|---|---|---|---|---|---|---|

### Data gaps and approval needed
[missing item] -> [verdict prevented]. [live change] -> [named owner].

Practical example

Illustrative numbers only. Prospecting purchase ads, in-feed vertical video, six ads each past 3,000 impressions. 2s rates: A 31%, B 28%, C 33%, D 30%, E 26%, F 19%. Sorted median = (28% + 30%) / 2 = 29%; T02 line = 29% x 0.75 = 21.75%.

Ad F: 12,400 impressions, 2,356 2-second views (19.0%), 1,178 6-second views (9.5%), diagnostic 6s-to-2s ratio 0.50 against a comparable-set median near 0.61, 112 clicks. This ratio does not measure retention. Gap = (29 - 19) / 29 = 34.5%, so F clears T02. Opening: a "Hi, we're Lumo Home" logo card for 1.5 seconds, greeting line, product appears at second 3. Rubric: C1 0, C2 0, C3 0, C4 1, C5 1 = 2 of 10, weak. Claim check passes.

Verdict: the gap is confirmed for this export; the opening as the cause is likely, severity medium, impact conversion only as an attention input. Hook test: V1 problem-first line over the product in frame 1; V2 on-screen question with a hand demo; V3 result shown first, then the line. Body and CTA identical.

Common failure modes

  • Comparing a retargeting ad with prospecting ads; warm audiences stop and watch for different reasons.
  • Comparing a 9-second ad with a 45-second ad on 6s view rate.
  • Reading a high 2s rate as a win when clicks and conversions are weak; the hook may promise something the offer does not.
  • Mixing Spark and brand-handle ads in one set without saying so (spark-vs-brand-ad-split-tiktok-ads).
  • Scoring a script from memory instead of from the first 2 seconds as filmed.
  • Declaring a hook weak from an ad still in learning or under 3,000 impressions.
  • Treating the rubric score as a forecast; it orders ideas to test, nothing more.

Guardrails

  • Do not score a hook from fewer than 3,000 impressions or from a median built on two or three ads without capping the verdict at possible (T02).
  • Do not substitute a generic video views column for 2-second views.
  • Do not compare across objective, audience type, or format without labelling the mismatch.
  • Do not write a claim in a new hook that is absent from the supplied product facts.
  • Do not present a hook gap as a conversion finding or a sales prediction.
  • Do not change a live ad or budget; stop at a test plan awaiting approval.
  • Do not present rubric bands or the diagnostic 6s-to-2s ratio as platform benchmarks or viewer retention.

Individual skills in this repo

This repo contains 18 individual skills — each has its own dedicated page.

mardab96/tiktok-ads-claude-skills

Runs an ordered, layer-by-layer triage of an unfamiliar TikTok Ads account (tracking, structure, learning, creative, bidding, landing page) and hands the first blocker to one named sibling skill. Use when the user inherits a TikTok account, onboards a client, asks where to start, says TikTok results dropped with no known cause, asks whether an account is ready to scale, or says "audit this TikTok account" without naming a problem.

mardab96/tiktok-ads-claude-skills

Reconciles TikTok Ads Manager conversions with GA4, Shopify, CRM, or app analytics using a baseline-ratio method, separating click-through from view-through credit, attribution window and timezone differences, and real tracking drift (T07). Use when a TikTok media buyer or client says "TikTok says 200 sales, Shopify says 90", "GA4 does not show our TikTok conversions", "TikTok ROAS looks too good", "the gap got bigger this month", or "which number do we report to the client".

mardab96/tiktok-ads-claude-skills

Checks whether a TikTok ad group's bidding strategy fits its goal, budget, and conversion volume using the labels TikTok currently lists (Maximum Results, Target Cost per Result, value options as shown in the account) and asks for a screenshot before mapping any legacy name. Use when someone types "Maximum Results or Target Cost per Result", "Cost Cap vs Lowest Cost on TikTok", "our target CPA is too low and delivery died", "bid strategy check", or "should we use hybrid bidding".

mardab96/tiktok-ads-claude-skills

Builds a staged TikTok budget plan with entry gates, one change per observation window, stop rules, and a recorded rollback, using T04, T05, T06, and T10 from the shared register. Use when someone types "can we scale this TikTok campaign", "double the budget on the winner", "how fast can I raise the daily budget", "scale before the sale", or "plan the budget increase for next week".

mardab96/tiktok-ads-claude-skills

Strips personal data from TikTok ad comments, clusters them into objections, questions, proof requests, and noise with counts, links each cluster to product facts, and drafts reply options and hook ideas for approval. Use when the user pastes TikTok comments and asks "what are people objecting to", "mine the comments for hooks", "draft replies to these comments", "what do viewers keep asking", or wants an FAQ and creative briefs built from comment themes.

mardab96/tiktok-ads-claude-skills

Diagnoses a TikTok CPA jump by splitting it into CPM, CTR, and CVR movement between a baseline and a current window with the cpa_decompose.py helper, then checking tracking, changes, mix, creative, and landing page in that order. Use when someone types "TikTok CPA doubled", "cost per purchase is up 40%", "why did CPA spike", "CVR dropped but clicks are fine", or "the client wants to know what broke".

mardab96/tiktok-ads-claude-skills

Detects whether a TikTok ad is tiring by comparing the last seven distinct dates with the preceding seven for frequency and CTR, using the bundled fatigue_scan.py script and a 14-date rule, then builds a control-versus-refresh queue. Use when the user asks "is this TikTok ad fatigued", says CTR is dropping while frequency climbs, wants to know when to refresh TikTok creative, or pastes a daily ad export and asks which ads to replace.

mardab96/tiktok-ads-claude-skills

Turns TikTok Shop and GMV Max reporting into a per-product cost-stack ledger with refunds, affiliate commissions, seller-funded coupons, referral fees, ad spend, COGS, and seller-borne shipping, using gmv_profit.py to flag any incomplete cost stack (T09). Use when a TikTok Shop seller or media buyer says "GMV Max ROI looks great but we are not making money", "is this product profitable on TikTok Shop", "check our TikTok Shop margins", "affiliate commissions are eating us", or before raising a GMV Max budget or ROI target.

mardab96/tiktok-ads-claude-skills

Sequences planned TikTok edits around the learning phase, separating urgent repairs from optimisation, naming which edits TikTok itself labels as affecting learning, and ordering one observable action at a time with rollback. Use when someone types "can I edit this ad group during learning", "will this reset the learning phase", "campaign is in learning, what can we change", "sequence these changes", or "the client wants five edits this week".

mardab96/tiktok-ads-claude-skills

Checks TikTok Pixel and Events API health from Events Manager screenshots and an Ads Manager export, covering event match signals, event_id deduplication between browser and server events, parameter completeness on value events, and primary-event drops against stable clicks (T10). Use when a TikTok media buyer says "purchases dropped but clicks are flat", "check our TikTok pixel", "is Events API deduplicating", "Events Manager shows a diagnostic warning", "TikTok value does not match our orders", or before any bid, budget, or scale call that depends on TikTok conversion data.

mardab96/tiktok-ads-claude-skills

Reviews TikTok Ads delivery split between the TikTok placement and Pangle or TikTok Ad Network inventory (as labelled in your Ads Manager), testing CPA and downstream quality per placement against T08 and keeping brand safety and suitability as a separate question. Use when a TikTok media buyer says "should we turn off Pangle", "where is our TikTok spend actually going", "automatic placement is eating budget", "network traffic converts badly", "is our TikTok ad showing next to unsafe content", or when a client asks for a placement and brand safety readout.

mardab96/tiktok-ads-claude-skills

Reviews TikTok Search Ads search terms and keywords and decides what to add as a keyword, add as a negative, or watch, with match handling as labelled in the account and a lag-aware waste floor. Use when someone types "review our TikTok search terms", "negative keyword list for TikTok Search Ads", "which queries should become keywords", "broad match is bringing junk", or "Search Ads spend with zero conversions".

mardab96/tiktok-ads-claude-skills

Audits a TikTok Smart+ campaign by mapping what Smart+ automates against what the media buyer still controls (creative supply, audience exclusions, conversion event, budget, bidding), then ranks the risks. Use when someone types "audit our Smart+ campaign", "what does Smart+ actually control", "Smart+ vs manual", "Smart+ spend is up but results are flat", or "can we trust Smart+ with this budget".

mardab96/tiktok-ads-claude-skills

Compares TikTok Spark Ads with brand-handle ads like-for-like by matching objective, optimization event, audience, offer, placements, bidding label, dates, and concept before any metric is read, then records authorization status and designs a matched test when no clean pair exists. Use when the user asks "do Spark ads perform better than our brand ads", "Spark vs non-Spark", "should we boost creator posts", "why is the creator ad cheaper", or pastes ad-level data with a format column and wants a verdict.

mardab96/tiktok-ads-claude-skills

Writes a complete creator-facing UGC brief for TikTok ads, with viewer situation, one message, three hook options, scene structure, claims allowed and forbidden, do and don't lists, disclosure, usage rights, and a Spark authorization note, plus an internal approval checklist. Use when the user says "write a UGC brief for TikTok", "brief a creator", "I need a creator script with approved claims", "what rights do I need to run this creator video as an ad", or has product facts and needs something a creator can film from.

mardab96/tiktok-ads-claude-skills

Finds mature TikTok campaigns, ad groups, and ads that spent past a CPA-based floor with zero reported conversions, after excluding rows still inside the conversion lag, using the wasted_spend.py helper. Use when someone types "where is the wasted spend on TikTok", "which ad groups burn budget with no conversions", "what can we cut before we scale", "zero conversion ads", or "clean this account before the client call".

mardab96/tiktok-ads-claude-skills

Writes the weekly TikTok Ads client report as a plain-language narrative, a scorecard against the client goal, and next-week decisions with owners and approvals, after an integrity check on tracking, lag, and learning status (T04, T05, T07, T10). Use when an agency or freelance TikTok media buyer says "write the weekly TikTok report", "client update is due", "explain this week's TikTok results to the client", "what do we tell the client about CPA going up", or "set up a repeatable TikTok report format".

mardab96/tiktok-ads-claude-skills

Turns one proven TikTok ad into N distinct angle scripts, each with hook, body beats, CTA, on-screen text, and a shot list, after deconstructing why the winner worked and checking every claim against product facts and rights. Use when the user says "remix my winning TikTok ad", "give me new angles on this winner", "I need five scripts like this one", "my best ad is wearing out, what next", or pastes a winning transcript and asks for variations.

相关技能