
フックとは、注意を引くために冒頭に置く仕掛けです。収集ツールは、フックに効果があったかどうかを判断しません。Actorは、ホスティング環境で動作し、ソースのデータ行を収集するプログラムです。Taskは、保存済みの入力設定です。Actorは時間情報付きの発話テキストを返します。分類ラベルを付けるのは、あなた自身です。
分析区間とは、調査対象とする冒頭の時間範囲です。たとえば0-3秒のように、すべての動画で同じ分析区間を使います。分析単位は動画全体ではなく、固定した冒頭の区間です。この方法は、成果に基づいて動画を順位付けするものではありません。
公開再生数では視聴維持を測定できません。視聴維持とは、視聴者がどれだけ長く見続けるかを指します。再生数だけでは、あるフックが成果を生んだことは示せません。こちらの投稿では、冒頭が異なると成果が変わる理由を尋ねています。その投稿の「いいね」から、競合の視聴維持を知ることはできません。こちらの投稿は、フックを手作業で一覧にする必要性を示しています。参考にするのは、その必要性だけにしてください。インストール数、クリック率、因果関係、推奨ツールに関する主張は、そのまま取り入れないでください。
収集できるもの
TikTok Transcript Actorを使います。現在の公開ビルドは0.1.36です。既知の公開対象を1件から100件まで入力できます。対象には、動画URL、短縮リンク、数字の動画IDを指定できます。プロフィールの検索はできません。キーワード検索もできません。サウンドページを開くことも、有料広告を識別することもできません。
preferredLanguagesには、公開字幕で優先する言語を順番に並べたリストを指定します。字幕トラックとは、ある1つの言語で公開されている字幕です。Actorは、リストの順に、既存の公開字幕トラックを選びます。空のリストを指定すると、最初の公開字幕トラックを使います。Actorは翻訳しません。公開字幕トラックがない音声を文字起こしすることもありません。コメントは収集しません。フックの分類ラベルも付けません。
languageCodeには、eng-USのような地域を含むコードが入る場合があります。データ行にあるコードを確認してください。短い言語名と地域を含むコードが、同じ字幕トラックを指すとは限りません。
送信した入力1件につき、データセットに1行が返されます。文字起こしの取得に成功しなかった場合も同じです。videoIdは文字列として保存してください。長いIDを数値として保存すると、値が変わることがあります。
各行には、次のフィールドがあります。
- inputIndex
- inputUrl
- videoId
- videoUrl
- authorHandle
- durationSeconds
- languageCode
- text
- segments
- status
- statusReason
- isBillable
- scrapedAt
セグメントとは、時間情報が付いた字幕テキストの1区間です。各セグメントにはstartSeconds、endSeconds、textがあります。セグメントの時刻は、取得した値をそのまま使ってください。durationSecondsは動画の長さです。フックを調べる分析区間ではありません。
statusは、その入力の処理結果を示す値です。succeeded、no_public_captions、language_unavailable、duplicate_input、not_tiktok、invalid_input、unsupported_url、video_unavailable、not_public、blocked_or_challengedのいずれかになります。字幕トラックの読み取り失敗もstatusで示されます。succeededになるには、textが空でないことが必要です。失敗を示すstatusでtextが空でも、発話がなかったことにはなりません。
isBillableがtrueになるのは、公開字幕の取得に成功した結果だけです。それ以外の行も、確認の根拠になります。プラットフォームの利用は、このフラグとは別に扱われます。実行全体が無料だと説明しないでください。1回の実行は、Actorの1ジョブを指します。
ジョブは、OUTPUTに次の集計値も返します。
- inputsReceived
- resultRows
- billableTranscriptRows
- nonBillableResultRows
- duplicateVideosSkipped
- statusCounts
これらの集計値が示すのは、ジョブの処理内容です。選んだ動画が動画全体を代表していることは示しません。duplicateVideosSkippedは、ジョブ内で重複のため処理を省略した動画を数えます。これは調査結果ではありません。
公開ソースの確認日は2026-10-13です。この確認では、ビルド0.1.36と、保存済みの動画1件の入力を使いました。返された行の動画IDは、要求したIDと一致していました。テキストは空ではありませんでした。その行には、startSeconds、endSeconds、textを持つセグメントが12件ありました。この確認では、字幕の文言は保存していません。確認できたのは、その1件のソースから公開字幕を取得できることです。すべての動画に字幕があることは示していません。文言が完全に正確であることも、フックの分類ラベルが妥当であることも示していません。
保存済みのTaskは、TikTokフック調査Taskです。現在の入力は次のとおりです。
{
"startUrls": ["https://www.tiktok.com/@hankgreen1/video/7047596209028074758"],
"preferredLanguages": []
}このサンプルを、調査したい既知の公開動画1件に置き換えてください。そのサンプル動画自体が調査対象に含まれている場合を除き、サンプルを残さないでください。Taskは、入力の出発点にすぎません。分類ラベルを代わりに付けるものではありません。
英語を対象とする調査では、次の動画1件の予備調査用入力を使います。
{
"startUrls": ["PASTE_ONE_KNOWN_PUBLIC_VIDEO_URL"],
"preferredLanguages": ["en"]
}["en"]を使うのは、調査対象の言語を英語と定めた場合だけです。別の言語を調べる場合は、その言語に関するルールを明記してください。["en"]をそのまま使わないでください。空のリストを指定すると、最初の公開字幕トラックが選ばれます。そのトラックが対象言語とは限りません。
8つの手順
- フックを比較する前に、調査の問いと動画リストを書きます。
広告クリエイティブに関する調査の問いを1文で書きます。自分で選んだ、既知の公開動画だけをリストに載せてください。分析区間を1つ決め、すべての動画で統一します。同じ分析区間を使うことで、ある動画では早い時点の発話を、別の動画では遅い時点の発話を分類してしまうことを防げます。Actorは、競合の投稿をすべて検索することはできません。有料広告かどうかを推定することもできません。リストは、あなたが定めたサンプルです。プラットフォーム全体ではありません。
- 字幕トラックを1つ取得し、対象の一致、言語、処理結果、テキストを確認します。
まず、調査対象の動画1件から始めます。videoIdが対象のIDと一致するか確認してください。authorHandleも確認します。languageCodeが言語ルールに合うか確認します。statusがsucceededであることを確認します。textが空でないことも確認します。セグメントの時刻は元のまま保存してください。statusReasonがある場合は、その内容を読んでください。
次の処理結果では、冒頭の発話内容は不明のままです。no_public_captions、video_unavailable、not_public、blocked_or_challenged、language_unavailableです。字幕の読み取り失敗も不明として扱います。不明とは、発話を判断する根拠が欠けていることです。「フックがない」という意味ではありません。ゼロという意味でもありません。
statusがlanguage_unavailableの場合、別の言語を調査対象の言語として分類しないでください。入力の不備を示す処理結果は、フックの分析結果ではありません。not_tiktok、invalid_input、unsupported_urlの場合は、入力を修正する必要があります。duplicate_inputは、別の動画1件を意味しません。その動画は1回だけ数えてください。
- 分析区間と時間が重なるセグメントをすべて残します。重なる時間の割合で文字列を切り分けないでください。
2つの時間範囲は、共通する時間があれば重なっています。分析区間が0-3秒の場合、startSecondsが3未満のセグメントを残します。さらに、endSecondsが0より大きいことも条件にします。分析区間に完全に収まるセグメントは残します。3秒の境界をまたぐセグメントも残します。3秒以降に始まるセグメントは残しません。0秒以前に終わるセグメントも残しません。別の分析区間を選ぶ場合は、その終了時刻を使い、すべての動画に同じ判定を適用してください。
境界をまたぐセグメントには、分析区間が終わった後の発話が含まれる場合があります。取得したテキストは全文をそのまま残してください。動画を見て、どの語句が分析区間内に入るかを記録します。時間の割合に応じて文字列を切り分けないでください。発話には間が入ることがあります。短い単語が区切りの後に来る場合も、長い単語が区切りの前に収まる場合もあります。
- 結果を比較する前に、発話用の簡単な分類基準表を作ります。
分類基準表とは、発話の分類ラベルとルールを書いた一覧です。傾向を探す前に作成してください。冒頭を分類するとは、この一覧から発話の分類ラベルを1つ選んで付けることです。これらは、調査者が手作業で付ける調査用のラベルです。Actorのフィールドではありません。成果が出ると実証された形式でもありません。
複数のラベルを使うルールを先に定めていない限り、動画1件につき主分類ラベルを1つ使います。主分類ラベルとは、その動画に付ける1つの発話分類ラベルです。質問と問題提起は、question_problemにまとめます。分けてしまうと、問題について尋ねる1つの質問が、2つのフックに見えることがあります。promiseとresult-firstは分けてください。promiseは、これから得られる結果を示します。result-firstは、完成したものを冒頭に置きます。分類ラベルの一覧は、question_problem、promise、result-first、spoken_demonstration_cue、other、no_clear_deviceです。字幕が取得できない場合はunknownのままにします。unknownは、この発話分類の一覧には含めません。
- 同じ分析区間の映像を見て音声を聞き、それぞれ別のフィールドに記録します。
フィールドとは、シート内の名前付きの記録欄です。同じ0-3秒を再生します。見えた内容を映像欄に記録します。画面上の文字は、専用の欄に記録します。話し手とその他の音は、音声欄に記録します。意味のある動作のうち、最初に起きたものとその時刻を記録します。これは、分析区間内で最初に起きる重要な動作を指します。
字幕テキストが空でも、発話のない実演が映像のフックになる場合があります。文字起こしのどのフィールドも、場面を認識するものではありません。映像の観察メモを、発話の分類ラベルに貼り付けないでください。画面上の文字は、発話された言葉とは別です。記録していないフィールドは空欄にしてください。空欄と「なし」は同じではありません。
- 根拠、分類担当者、不確かな点を保存します。
取得した字幕テキストをそのまま残します。修正がある場合は、別の手作業メモに記録します。時間範囲、発話の分類ラベル、分類担当者、不確かな点を記録してください。分類担当者とは、ラベルを付ける人です。小規模な予備調査を別の分類担当者と確認するか、2回目の確認を行い、その実施を明記します。2回の確認で判断が異なる場合は、ルールかメモを変更してください。精度のスコアを作り上げてはいけません。元のテキストを、手作業で書いたテキストに置き換えないでください。両方が必要です。
- 定めたサンプル全体で、各分類ラベルの有無を比較します。
重複を除いた動画数を数えます。字幕のセグメント数は数えません。1つの分析区間にセグメントが2つあっても、動画は1件です。発話を確認できた冒頭と、字幕が不明なものは分けて報告してください。割合を出すときは、明示した分母だけを使います。分母とは、割る数のことです。結果には、その分母を記載してください。
後で公開されている件数指標を比較する場合は、投稿からの経過時間、話題、時期をそろえてください。条件をそろえた比較で分かるのは、その動画群の特徴に限られることを明記します。ある分類ラベルがその数値を生んだことは示せません。再生数の多い動画だけを残し、その分類ラベルを成果につながるものと断定しないでください。視聴維持に関する質問は原因を証明するものではなく、その投稿の「いいね」も視聴維持を示しません。
- シートを使って、新たな検証を1つ計画します。成果の向上が保証されるわけではありません。
分類ラベルとメモを使って、検証できる新しい冒頭を1つ設計します。この検証案が、広告クリエイティブに関する仮説です。改善を約束するものではありません。この方法で調べるのは、元の動画にすでにある冒頭です。新しい編集点を選ぶものではありません。新しいクリップを切り出すものでもありません。爆発的な拡散を予測するものでも、視聴維持を測定するものでもありません。映像を代わりに読み取ることもありません。
発話の分類基準表
この分類基準表の例文は、独自に作成した架空のものです。公開の確認用サンプルから取得した言葉ではありません。製品の出力結果でもありません。各動画に、主となる発話の分類ラベルを1つ付けます。
question_problemは、質問または明示された問題に使う、統合された主分類ラベルです。同じ動画に、別の発話分類ラベルを追加しないでください。架空の例文は「トレーがひっくり返ってしまいませんか?」です。
promiseは、話し手がこれから結果を示すと述べているものの、冒頭には完成した結果がない場合を指します。架空の例文は「水平を保てるトレーをお見せします」です。これは、これから示すものを予告しています。result-firstではありません。
result-firstは、完成した結果を冒頭ですぐに述べる場合を指します。架空の例文は「こちらが完成した花壇です」です。この言葉によって、完成した花壇が冒頭に登場します。後で結果を示すと予告するものとは異なります。
spoken_demonstration_cueは、動作を見るように発話で視聴者に促す場合を指します。架空の例文は「このふたがパチッと閉まるところを見てください」です。発話のない動作には、この発話分類ラベルを付けません。その動作は映像欄に記録してください。
otherは、適切な確認によって、分析区間内に発話による明確な仕掛けが1つ見つかったものの、既定の分類に当てはまらない場合を指します。その仕掛けを明確に識別できることが必要です。どのような仕掛けかを短いメモで記してください。
no_clear_deviceは、適切な字幕確認または手作業での確認によって、分析区間内に発話による仕掛けが見つからなかった場合を指します。発話を確認したものの、発話による仕掛けがない場合に使います。発話がないことを確認できた場合にも使います。根拠が欠けている場合や、字幕の確認に失敗した場合には使わないでください。根拠が得られない場合や取得に失敗した場合は、unknownのままにします。
unknownは、利用できる発話の根拠がないことを示します。これは根拠の欠損を示す印であり、フックの分類ラベルではありません。no_public_captionsの行は、unknownのままにします。unknownをno_clear_deviceに変更しないでください。unknownを「フックなし」に変更してもいけません。unknownをゼロとして扱わないでください。
架空のデータを使った具体例
以下の4件の動画は、独自に作成した架空のものです。公開の確認用サンプルではなく、実在するクリエイターの結果でもありません。すべての動画で、分析区間を0-3秒にします。発話の分類には、上記の分類基準表だけを使います。動画1件につき、主となる発話の分類ラベルを1つ付けるか、unknownとします。
startSecondsが3未満で、endSecondsが0より大きいセグメントを残します。
| 動画 | 処理結果 | 分析区間と重なる字幕の原文 | 発話の分類ラベル | 映像欄 | 音声欄 | 最初の動作 | 画面上の文字 | 分類担当者 | 不確かな点 |
|---|---|---|---|---|---|---|---|---|---|
| V1 | succeeded | 0.0-1.5「トレーがひっくり返ってしまいませんか?」。加えて、1.5-3.5「このシンプルな持ち手で水平を保てます。」 | question_problem | 傾くトレー | 0.0秒に発話が始まる | 冒頭でトレーが傾く | 情報の提供なし | 分類担当者A | 2つ目のセグメントが3秒の境界をまたぐ |
| V2 | succeeded | 0.0-2.0「こちらが完成した花壇です」 | result-first | 完成した花壇 | 話し手が完成した花壇を紹介する | 完成した花壇がすでに映っている | 情報の提供なし | 分類担当者A | セグメント全体が0-3秒に収まる |
| V3 | no_public_captions | なし | unknown | 発話のない実演 | 利用できる発話の根拠がない | 発話のない実演 | 情報の提供なし | 分類担当者A | 冒頭の発話内容は不明 |
| V4 | succeeded | なし。最初の字幕は4.0秒に始まる | no_clear_device | 定規を使った実演 | 0-3秒の分析区間内に発話はない | 1.0秒に定規を使う動作がある | 情報の提供なし | 分類担当者A | 動画を見て、3秒より前に発話がないことを確認 |
V1にはセグメントが2つあり、どちらも分析区間との重なりの条件を満たします。1つ目は0.0秒から1.5秒までです。全文は「トレーがひっくり返ってしまいませんか?」です。このセグメントは分析区間内に収まります。2つ目は1.5秒から3.5秒までです。取得した原文の全文は「このシンプルな持ち手で水平を保てます。」です。この文全体を原文欄に残してください。文が終わるのは3.5秒なので、分析区間内に入るのは文の最初の部分だけです。境界を確認した結果は、手作業のメモに記録します。文字列を一定の割合で切り分け、その部分を分析区間内の発話とみなしてはいけません。主となる発話の分類ラベルはquestion_problemです。セグメントが2つあっても、動画は1件として数えます。主分類ラベルをもう1つ追加することはありません。
V2には、0.0秒から2.0秒までのセグメントが1つあります。セグメント全体が分析区間内に収まっています。発話は完成した花壇をその場で紹介しているため、発話の分類ラベルはresult-firstです。冒頭で結果を後回しにしていないため、promiseではありません。映像欄には、完成した花壇が映っていることを別のメモとして記録します。このメモは、2つ目の発話分類ラベルではありません。
V3のstatusはno_public_captionsなので、分類する字幕テキストがありません。動画を見ると、発話のない実演が映っています。これは映像欄だけに記録します。発話の判定はunknownのままです。字幕がないことは、発話がないことを意味しません。no_clear_deviceでも、発話による「フックなし」でもありません。
V4の字幕取得結果はsucceededですが、最初の字幕は4.0秒に始まります。startSecondsが3未満のセグメントがないため、分析区間内に入る字幕テキストはありません。最初の字幕の開始が遅いというだけでは、証拠になりません。動画を見て、0秒から3秒まで発話がないことを確認しています。発話の分類ラベルはno_clear_deviceです。1.0秒に定規を使う動作があります。これは映像による実演です。分析区間内に発話による呼びかけがないため、spoken_demonstration_cueではありません。
この動画群には、選定した動画が4件あります。4件すべてに、手作業による映像の観察メモがあります。発話を確認できたものは3件で、V1、V2、V4です。発話が不明なものは1件で、V3です。確認できた3件のうち1件がquestion_problemです。確認済み動画に占める割合は3件中1件で、33.3パーセントです。習慣的に4件中1件と報告しないでください。4を使うのは、選定したすべての動画を対象にするときだけです。その場合も、不明な動画が1件あることを示す必要があります。V3を、発話による「フックなし」として加えてはいけません。V1はセグメントが2つあっても、1回だけ数えます。この4行では、otherのラベルは使っていません。この架空の例では再生数を使っておらず、成果につながる分類ラベルも指定していません。
原文と手作業のメモは、別々のフィールドに残します。この例では、一致度のスコアを作り上げていません。別の分類担当者による確認、または2回目の確認を行う場合は、この4行を見直します。判断が一致しなければ、メモかルールを変更します。
出典と参考資料
著者 Chronometrica · 更新日
ページの先頭へ ↑

