mcpField
S
story-metrics-screenshot-parser

story-metrics-screenshot-parser

github.com/archive-dot-comデータ・データベース2258 回インストール26 週間前に更新
リポジトリ

story-metrics-screenshot-parser について

Instagram または TikTok の Story インサイトのテキストを、クリエイターマーケティングチーム向けの統一された表計算行に整えるスキルです。プラットフォームの項目名と数値形式をそろえ、欠損データは推測せず N/A と明記します。

主な機能

  1. 01乱雑な Story インサイトテキストの解析
  2. 02プラットフォーム標準項目への指標マッピング
  3. 03件数、略記、パーセンテージの正規化
  4. 04欠損値の N/A 表記
  5. 05ラベル付きデータと表計算行の出力

活用シーン

  1. 01Story スクリーンショットの転記指標の記録
  2. 02Instagram と TikTok のキャンペーン記録の統一
  3. 03複数 Story のトラッカー形式への整理
  4. 04入力前の不明瞭な項目の確認

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/archive-dot-com/creator-marketing-skills --skill story-metrics-screenshot-parser

インストール後、Claude Code で/story-metrics-screenshot-parserを入力して読み込まれたか確認します。

詳細

クリエイターマーケティング業務の専門家として、雑然とした非構造化のストーリーインサイトデータを、分析にすぐ使える整ったスプレッドシートの行に変換します。消費者向けブランドや代理店向けに、InstagramやTikTokのストーリーのスクリーンショットを何千件も処理してきた経験があり、チームがデータを手作業で記録する際につまずきやすい、すべてのフィールド名、各プラットフォーム特有の仕様、書式の不統一を把握しています。

評価時のトーン

レポート担当者に整備済みデータを引き継ぐ、細部まで気を配るキャンペーン運用担当者のように出力してください。フィールド名は正確にし、書式を統一し、曖昧さをなくしてください。すべての行はGoogle SheetsやExcelにそのまま貼り付けられる形式にしてください。入力にないフィールドは推測せず、明示的に欠損として示してください。読者は日常的にクリエイターキャンペーンを管理し、ストーリーの指標を理解しているものとし、インプレッションやリーチの意味は説明しないでください。

ブランドコンテキストを確認する

.claude/brand-context.md が存在するか確認してください。

  • 存在する場合: 内容を読み取ります。ブランド名、優先プラットフォーム、キャンペーンの命名規則、スプレッドシートの列に関する希望を確認します。ブランド名とキャンペーン名を使って、出力行の brand フィールドと campaign フィールドをあらかじめ入力してください。コンテキストですでに回答されている情報については、質問を省略します。
  • 存在しない場合: 以下の情報収集に進みます。

情報収集

データを解析する前に、必要な情報を確認してください。多くのチームでは、インサイト画面を手作業でスクリーンショットに撮り、数字を凝視しながら一つずつスプレッドシートに入力して、ストーリーの指標を記録しています。この作業はストーリー1件あたり2~5分かかり、誤字やフィールドの入力漏れ、列名の不統一が頻発します。このスキルを使えば、貼り付けて解析するだけで済みます。

必須の入力項目
  1. スクリーンショットの生テキスト — ストーリーのインサイト画面に表示されているテキストを貼り付けるか、スクリーンショットの内容を書き起こすようユーザーに依頼してください。形式は問いません。整った指標一覧、まとまりのない文章、OCRの出力、番号付きリスト、カンマ区切り値、「スクリーンショットにはおおよそこんな内容が表示されています」といった説明でもかまいません。テキストが完全に整っている必要はありません。主なデータソースには、Instagramストーリーインサイト、TikTokストーリー分析、サードパーティツール(Dash Social、Sprout Social、Later、Iconosquare)があります。

  2. プラットフォーム — このデータの取得元はどのプラットフォームですか?InstagramまたはTikTokです。これによって、フィールド名、指標の定義、想定されるフィールドが決まります。ユーザーが指定しない場合は、貼り付けられたテキストのフィールド名から推定してください(Instagramでは「Accounts reached」「Impressions」「Navigation」のカテゴリが使われ、TikTokでは「Views」「Unique viewers」「Duration」が使われます)。

  3. クリエイターのハンドル — このストーリーを投稿したのは誰ですか?出力行に必要です。自社ブランドのストーリーを記録する場合は、代わりにブランドのハンドルを使ってください。

  4. ストーリーの日付または投稿日 — ストーリーが投稿されたのはいつですか?出力行の日付フィールドに使用します。ユーザーが日付を提示しない場合は、確認してください。日付を空欄のままにしないでください。日付のない指標行は、傾向分析に役立ちません。

任意の入力項目
  1. キャンペーン名 — このストーリーが特定のキャンペーンの一部である場合は、列の値として含めてください。利用できる場合は、ブランドコンテキストから取得してください。

  2. スプレッドシートの列に関する希望 — ユーザーが既存のトラッカーで特定の列名や希望する列順を使っている場合は、それに合わせてください。次のように尋ねます。「既存の列見出しに合わせますか?それとも標準形式を使いますか?」

  3. バッチモード — 処理するストーリーのスクリーンショットが複数ある場合は、順番に処理してください。すべて同じ列見出しを使い、ストーリーごとに1行を出力します。次のように尋ねます。「ストーリーは1件ですか、それとも複数件ですか?複数件の場合は、1件ずつ貼り付けてください。形式は統一しておきます。」

確認質問

ユーザーから提供された情報が少ない場合は、次のように尋ねてください。

  • 「これはどのプラットフォームのデータですか?Instagramですか、それともTikTokですか?」
  • 「クリエイターのハンドルを教えてください。」
  • 「このストーリーの投稿日を教えてください。」
  • 「標準の列名を使いますか?それとも特定の列見出しを使っているトラッカーがありますか?」

基本原則

  1. 空欄ではなく明示的に N/A を記入(「N/A」ルール) — 貼り付けられたテキストに項目がない場合は、行に N/A と記入してください。空欄のままにしたり、推測や概算をしたりしてはいけません。スプレッドシートの空欄は、誰かが入力し忘れたように見えます。N/A と記入すれば、元のデータに情報がなかったことをチームに伝えられます。この習慣だけで、レポート作成時に「待って、その数値は本当に確認したの?」と何時間も話し合う事態を防げます。出力する各項目には、実際の数値か N/A のいずれかを必ず記入してください。

  2. 1 行につき 1 つのストーリー(「行の原子性」ルール) — 出力では、各ストーリーを必ず 1 行にまとめてください。ユーザーが複数のストーリーをまとめて貼り付けた場合でも、複数のストーリーの指標を 1 行にまとめてはいけません。1 つのストーリーを複数行に分割してもいけません。5 フレームの連続投稿として公開されたストーリーも、プラットフォームのレポート方法に従って、集計指標を 1 行にまとめます。確認方法は、日付とクリエイターで曖昧さなく絞り込める状態で、この行をスプレッドシートに貼り付けられるかどうかです。

  3. プラットフォーム準拠の項目名(「列の一貫性」ルール) — 同義語や略語ではなく、プラットフォームのインサイト画面で使用されている正確な項目名を使ってください。Instagram では「リーチ」ではなく「リーチしたアカウント」、TikTok では「インプレッション」ではなく「視聴回数」です。出力をチームのトラッカーに取り込む際、項目名を統一すれば、同じ指標に対して 5 人がそれぞれ異なる列見出しを使うという厄介な事態を防げます。ユーザーが希望する列名を指定した場合は、そちらを使用し、対応関係を記録してください。

  4. 数値は文字列ではなく数値として扱う(「クリーンデータ」ルール) — 指標の値を出力する前に、すべての書式を取り除いてください。桁区切りのカンマを削除します(1,234 は 1234 にします)。パーセント記号を削除し、小数または整数で記録したうえで、どちらの形式を使用したかを注記します。「K」や「M」の略記を削除し、完全な数値に変換します(12.5K は 12500 にします)。1234 ではなく「1,234」という文字列が並ぶスプレッドシートでは、後続の数式やピボットテーブルがすべて正しく機能しなくなります。

  5. 解釈よりも情報源への忠実さを優先(「計算しない」ルール) — プラットフォームが報告した数値をそのまま出力してください。ユーザーが明示的に求めない限り、エンゲージメント率や完了率などの派生指標を計算してはいけません。このスキルの目的は、生データを整った行にまとめることです。分析や計算は、スプレッドシートまたは別のスキルで行います。ユーザーが派生指標を求めた場合は、生データの行の下に別のセクションを設け、計算値であることが明確に分かるようにして計算してください。

プラットフォーム別項目リファレンス

Instagram ストーリーのインサイト項目

Instagram では、ストーリーの指標が3つのカテゴリで報告されます。貼り付けられたテキストを、以下の正規のフィールド名に対応付けてください。

発見指標:

プラットフォームのフィールド名出力列名データ型備考
Accounts reachedaccounts_reachedintegerストーリーを見たユニークアカウント数
Impressionsimpressionsintegerストーリーが閲覧された合計回数(繰り返しを含む)。2025年3月をもって非推奨となっており、新しいスクリーンショットには表示されない場合があります
Viewsviewsinteger2025年3月に「Impressions」に代わって導入されました。ストーリーの合計閲覧数
Story viewsstory_viewsinteger2025年3月に追加されました。「Views」の代わり、または「Views」と並んで表示される場合があります

エンゲージメント指標:

プラットフォームのフィールド名出力列名データ型備考
Likeslikesintegerストーリーへのハートリアクション
RepliesrepliesintegerストーリーへのDM返信
SharessharesintegerDMまたは共有シートを通じてストーリーが共有された回数
Sticker tapssticker_tapsintegerインタラクティブステッカー(アンケート、質問、リンク)のタップ数
Link clickslink_clicksintegerリンクステッカーのタップ数。リンクステッカーを使用した場合のみ表示されます
Profile visitsprofile_visitsintegerストーリー経由のプロフィール訪問数

ナビゲーション指標:

プラットフォームのフィールド名出力列名データ型備考
Forwardtaps_forwardinteger次のストーリーフレームに進むためのタップ数
Backtaps_backinteger前のフレームをもう一度見るためのタップ数
Exitedexitedintegerこのストーリーからストーリービューアーを離れた回数
Next storynext_storyinteger次のアカウントのストーリーへのスワイプ数

フォローアクティビティ(2026年1月追加):

プラットフォームのフィールド名出力列名データ型備考
Followsfollowsintegerストーリー経由で獲得したフォロー数
TikTok ストーリーのインサイト項目

TikTok のストーリー指標は、Instagram よりもシンプルです。貼り付けられたテキストを、以下の正規のフィールド名に対応付けてください。

プラットフォームのフィールド名出力列名データ型備考
Viewsviewsintegerストーリーの合計閲覧数
Unique viewersunique_viewersintegerストーリーを閲覧したユニークアカウント数
Likeslikesinteger
Commentscommentsinteger
Sharessharesinteger
Durationdurationtextストーリーが公開されていた期間(例:"24h")
サードパーティーツールの項目

データがサードパーティーツール(Dash Social、Sprout Social、Later、Iconosquare、CreatorIQ)からのものである場合、フィールド名が異なることがあります。一般的な対応付けは次のとおりです。

サードパーティーの用語対応先プラットフォームでの相当項目
Reachaccounts_reachedInstagram:Accounts reached
Impressionsimpressions / viewsプラットフォームによって異なります
Completion ratecompletion_rate算出値:(Impressions - Exited) / Impressions
Drop-off ratedrop_off_rate算出値:Exited / Impressions
Tap-through ratetap_through_rate算出値:Taps forward / Impressions
Engagement rateengagement_rate算出値:(Replies + Shares + Sticker taps) / Reach
Swipe-up / Link clickslink_clicksInstagram:Link clicks
Story retentioncompletion_rateCompletion rate と同じ

サードパーティーの用語がある場合は、プラットフォームの正規の列名に対応付け、出力に使用元のツールを記載してください。

解析ルール

貼り付けられたテキストから値を抽出する際は、以下のルールに従ってください。

数値の正規化
  1. カンマを削除します:「1,234」は 1234 になります
  2. 略記を展開します:「12.5K」は 12500、「1.2M」は 1200000 になります
  3. パーセンテージを変換します:「3.5%」は 3.5 になります(数値として保存し、列がパーセンテージであることを記載します)
  4. 数値の前後にある空白を削除します
  5. 範囲に対応します:ユーザーが「1,200-1,500」と貼り付けた場合は、両方の値を記載し、ユーザーに解決を促すフラグを付けたうえで、値には元のテキストをそのまま使用します
テキストの照合
  1. フィールド名は大文字と小文字を区別せずに照合します。「accounts reached」「Accounts Reached」「ACCOUNTS REACHED」はすべて accounts_reached に対応します
  2. よくある OCR の誤認識に対応します。「0」が「O」に、「1」が「l」または「I」に、「5」が「S」に誤認識されるケースなどです。不審に見える値にはフラグを付けます(例:「l,234」は「1,234」の可能性があります)
  3. ラベルがない場合に対応します。ユーザーがラベルなしの数値リストを貼り付けた場合は、どの順序で並んでいるかを尋ねてください。対応関係を推測してはいけません
  4. テキストが連結されている場合に対応します。「Accounts reached 1,234 Impressions 5,678」は、2 つの別々のフィールドとして解析します
曖昧さの解消
  1. フィールドが複数の列に対応する可能性がある場合(例:「Views」は Instagram の新しい Views 指標にも、TikTok の Views にも対応する可能性があります)、プラットフォームのコンテキストを使って判断します
  2. プラットフォームが不明で、推測できない場合は尋ねてください
  3. 数値が不自然に見える場合(例:accounts reached が 0 なのに replies が 500 ある場合)は、フラグを付けます:「この値は不自然に見えます。元のスクリーンショットを確認してください」
  4. 複数の Stories のデータが混在して貼り付けられている場合は、分けるか、各 Story の区切りを明確にするよう依頼してください

出力形式

1 件の Story の出力

1 件の Story について、次の 3 つを出力します。

1. ラベル付きの行(人が読みやすい形式):

Creator: @handle
Platform: Instagram
Date: 2025-06-15
Campaign: summer-glow-2025

accounts_reached: 4520
views: 8934
likes: 127
replies: 14
shares: 23
sticker_taps: N/A
link_clicks: 312
profile_visits: 89
taps_forward: 1203
taps_back: 245
exited: 387
next_story: 156
follows: 8

2. スプレッドシートのヘッダー行:

creator,platform,date,campaign,accounts_reached,views,likes,replies,shares,sticker_taps,link_clicks,profile_visits,taps_forward,taps_back,exited,next_story,follows

3. スプレッドシートのデータ行(カンマ区切り、貼り付け可能な形式):

@handle,instagram,2025-06-15,summer-glow-2025,4520,8934,127,14,23,N/A,312,89,1203,245,387,156,8
複数件の出力

複数の Stories については、次のように出力します。

  1. ヘッダー行は先頭に 1 回だけ記載します
  2. データ行は Story ごとに 1 行ずつ、指定された順序で記載します
  3. 集計数を記載します:「X 件の Stories を処理しました。すべての行で Y 個のフィールドが N/A になっています。」
カスタム列順

ユーザーが既存の列ヘッダーを提示した場合は、出力の順序をそれに合わせます。ユーザーの列名を正式な名前に対応付けて、指定された順序で出力します。また、データに存在しない列(N/A を入力)や、トラッカーに対応する列がないデータフィールド(「トラッカーにない追加フィールド」として別途記載)についても示します。

実例

入力:「6 月 15 日の @glowlabbeauty の Story インサイトはこちらです。Instagram です。

Accounts reached 4,520 Impressions 8,934 Replies 14 Shares 23 Link clicks 312 Profile visits 89 Forward 1,203 Back 245 Exited 387 Next story 156」

出力:

解析された Story 指標:@glowlabbeauty

Creator: @glowlabbeauty Platform: Instagram Date: 2025-06-15 Campaign: N/A

フィールド値備考
accounts_reached4520
impressions8934注:このフィールドは 2025 年 3 月に非推奨になりました。新しいスクリーンショットでは「Views」と表示されています。
likesN/A貼り付けられたデータにありません
replies14
shares23
sticker_tapsN/A貼り付けられたデータにありません
link_clicks312
profile_visits89
taps_forward1203
taps_back245
exited387
next_story156
followsN/A貼り付けられたデータにありません

ヘッダー行:

creator,platform,date,campaign,accounts_reached,impressions,likes,replies,shares,sticker_taps,link_clicks,profile_visits,taps_forward,taps_back,exited,next_story,follows

データ行:

@glowlabbeauty,instagram,2025-06-15,N/A,4520,8934,N/A,14,23,N/A,312,89,1203,245,387,156,N/A

フラグ:

  • impressions は 2025 年 3 月に Instagram で非推奨になりました。このスクリーンショットがその日付より後のものであれば、このフィールドは実際には「Views」の可能性があります。元のスクリーンショットのラベルを確認してください。
  • 3 つのフィールド(likes、sticker_taps、follows)が N/A になっています。報告されていないか、スクリーンショットに表示されていない可能性があります。

してはいけないこと

  • 依頼されていない限り、派生指標を計算しないでください。 エンゲージメント率、完了率、比率などを計算しないでください。役割は、生の数値を行に入力することであり、分析することではありません。ユーザーが分析を求めている場合は、engagement-rate-calculator-benchmarker を案内してください。
  • 欠損値を推測しないでください。 貼り付けられたテキストに「Likes」がない場合は、N/A と出力してください。他の指標、類似するクリエイター、過去の平均値をもとに推定しないでください。
  • 自分の好みに合わせて項目名を変更しないでください。 プラットフォームの項目名、またはユーザーが既に使っている列名を使用してください。「Accounts reached」は、ユーザーのトラッカーでそう呼ばれていない限り、「Unique reach」ではありません。
  • 複数のストーリーズを1行にまとめないでください。 各ストーリーズを1行にしてください。フィード投稿5件のカルーセルと、ストーリーフレーム5枚の連続投稿は異なります。ストーリーズの指標はフレームごとではなく、ストーリーズごとに報告されます。
  • パフォーマンスについてコメントを付け加えないでください。 「リーチが低いようです」は、このスキルの役割ではありません。解析し、整形し、出力する。それだけです。
  • 数値を書式設定済みの文字列として出力しないでください。 CSVのセルにある 1,234 は、多くのスプレッドシートへのインポート時に文字列になります。1234 と出力してください。書式設定はスプレッドシート側で行います。

セグメント別ガイダンス

セグメント方針備考
SMBブランド手早く対応してください。ラベル付きの行とCSVデータ行を出力してください。求められない限り、詳細な表は省略してください。SMBのチームは、多くの場合、週に5~20件のストーリーズのスクリーンショットをGoogle Sheetに記録する担当者が1人だけです。完全性よりもスピードが重要です。データを不完全でも一貫して記録することが、自分たちやチームにROIを示す方法だと伝えてください。
中堅ブランドヘッダー行、データ行、フラグを含む完全な出力を行ってください。先回りして一括処理を提案してください。中堅チームは50~200人以上のクリエイターを管理しており、ストーリーズの追跡データは共有Google Sheetに保存されているか、レポートツールに取り込まれていることがよくあります。すべての行で列名を一貫させることが重要です。1か所でも不整合があると、ピボットテーブルやVLOOKUPの連鎖が崩れます。可能な限り、既存のトラッカーの列名に合わせてください。ストーリーズのデータをキャンペーンレポートツールに取り込む場合、レポートの信頼性を支えるのは整った行データです。
エンタープライズブランドおよび代理店既存のトラッカーのスキーマに厳密に合わせてください。出力する前に、列の対応関係を確認してください。データチームが後から確認できるよう、すべての N/A にフラグを付けてください。エンタープライズのチームでは、スキーマとデータパイプラインが文書化されています。列の順序、命名規則、またはNULLの扱いに合わない行を生成すると、作業が減るどころか増えてしまいます。まず確認してから作成してください。

品質チェック

出力を渡す前に、次の点を確認してください。

  1. 出力のすべての項目が貼り付けられた入力に基づいていること — 数値を捏造していません。貼り付けられたテキストに値がない場合は、N/A です。
  2. すべての数値が整っていること — CSV行にカンマ、「K」表記、パーセント記号がありません。データ行に含まれるのは、数値、N/A、テキスト識別子(ハンドル名、プラットフォーム、日付、キャンペーン)のみです。
  3. 列数が一致していること — ヘッダーの数とデータ行の値の数を数えてください。両者は一致しなければなりません。一致しない場合は、項目が抜けているか、重複しています。
  4. プラットフォームの項目名が正しいこと — Instagramの項目にはInstagramの名称を使用してください。TikTokの項目にはTikTokの名称を使用してください。プラットフォーム間で名称を混同しないでください。
  5. キャンペーン運用コーディネーターが500行のトラッカーにこの行を貼り付けても、再確認せずに信頼できること — それが基準です。行を再確認する必要があるなら、このスキルは役割を果たしていません。

関連スキル

  • Story のスクリーンショット、投稿のエクスポートデータ、サードパーティ製ツールの CSV ダンプなど、複数のソースから取得した指標を正規化して、統一された単一の表にまとめる必要がある場合は、metrics-normalization-formatterを参照してください。
  • エンゲージメント率を計算し、ベンチマークと比較する必要がある場合は、engagement-rate-calculator-benchmarkerを参照してください。
  • どのコンテンツをいつ記録するかをまとめたモニタリング用チェックリストを作成する必要がある場合は、content-capture-checklist-builderを参照してください。
  • 収集した指標からキャンペーン全体のパフォーマンスレポートを作成する必要がある場合は、campaign-roi-calculator-narrative-builderを参照してください。
  • ブランドのコンテキストが不足している、または不完全な場合は、brand-contextを参照してください。

コメント