Communityライティング&編集github.com

ブランドボイスガイド

Google広告、Meta広告、ソーシャル投稿、ウェブサイトのコピーからブランドの声とトーンガイドおよびメッセージングフレームワークを構築し、そのガイドに基づいて現在のコピーをチェックします。スタイルガイド、メッセージングフレームワーク、またはウェブサイトのメッセージ監査が必要な場合に使用します。新しいコピーを作成する目的には使用しません(コピーライティングスキルを使用してください)。

ブランドボイスガイド とは?

ブランドボイスガイドは、ブランドがすでに発信しているコピーと、顧客が実際に反応したデータから、ブランドの声(Voice)、トーン(Tone)、スタイル(Style)を体系的に文書化するプロフェッショナルスキルです。声はブランドの不変の個性、トーンは広告や謝罪など場面に応じた調整、スタイルはそれを再現可能にする小さなルールを指します。このスキルは、Google Ads、Meta Ads、Facebookページ、Instagram、LinkedInページ、Google Search Console、DataForSEOなどのデータソースに接続し、広告の見出しや説明文、ソーシャル投稿、検索クエリ、競合の情報を収集・分析します。特に、収集したデータを基に「ウェブサイトメッセージ監査」という独立したモードを実行でき、サイトの主要ページと広告のストーリーの一致度をチェックし、トラフィックに基づいて修正の優先順位を付けます。Cline、Claude Code、Cursor、CodexなどのAIエージェントプラットフォーム上で動作し、InsightfulPipe MCPとの連携が必要です。データソースごとの注意点(Google Adsの日付指定、Meta Adsのネストフィールド制限、クローラーのダウンなど)を考慮した堅牢なクエリ実行手順が含まれており、失敗した場合はソースを「不明」としてマークし、推測で穴を埋めることはありません。

対応~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/Insightful-Pipe/content-creative-skills/tree/HEAD/skills/brand-voice

Installed? Explore more ライティング&編集 skills: steipete/notion, langchain-ai/langchain, bytedance/podcast-generation · View all 6 →

お気に入りのAIに質問する

このエージェントスキルを事前に読み込んだ状態で新しいチャットを開きます。

ドキュメント

ブランドボイスガイド は何をしますか?

ブランドがすでに発信しているコピーと、顧客が実際に反応したデータから構築されるボイスガイドです。ボイス(声)とは、あらゆる場所で変わらないブランドの個性です。トーン(調子)とは、その個性が状況に応じてどのように調整されるかを指します。検索広告、謝罪、午後11時に心配して書き込む顧客など、状況は様々です。スタイル(形式)とは、ボイスとトーンを再現可能にするための小さなルールの集合です。このスキルはこれら3つすべてを文書化し、各選択をブランド自身のコピー、クリック結果、顧客の言葉、そして競合が残しているギャップに基づいて裏付けます。

また、単独で実行できるモードとして、ウェブサイトメッセージ監査(ステップ7の後)もあります。このモードはサイトの主要ページをまとめて読み込み、それらが広告と一貫したストーリーを語っているかをチェックし、トラフィックに基づいて修正の優先順位を付けます。

開始前に

ブランド自身のコピーのソース(Google AdsまたはMeta Adsアカウント、Facebookページ、Instagram、LinkedInページ、またはDataForSEOが読み取れるウェブサイト)のうち少なくとも1つに接続されたInsightfulPipe MCPが必要です。これらのいずれもない場合は、最後の「接続なしの場合」を使用してください。

  1. query_contexts を request="accounts" で呼び出し、google-ads、facebook-ads、facebook-pages、instagram-profile、linkedin-pages、google-search-console、dataforseo について取得します。workspace_id、各行の brand_id(同じビジネスのアカウントが異なるブランドに属する場合がある)、およびアカウント、ページ、サイト、組織のIDを記録します。代理店ワークスペースの場合は、このガイドの対象となるビジネスをユーザーに確認し、そのビジネスのアカウントのみを読み取ります。
  2. query_contexts を request="actions_details" で呼び出し、以下の「呼び出し」にあるすべての読み取りについて、返されるボディの形状を確認し、「クエリの実行方法」に記載されている例外に従ってください。
  3. ユーザーに以下の項目を質問し、ユーザーがわからない場合はデフォルト値を使用します。
    • ブランドを一文で: 何を、誰のために行っているか。デフォルト:広告とページから推測し、推測であることを明記します。
    • 気に入っているコピーと、適切でないと感じるコピー。 それぞれ2~3例。ブランドのものでも他人のものでも構いません。オプションですが、聞く価値はあります。適切でないと感じるものは、適切だと感じるものと同じくらい有用です。
    • ブランドが支持することと、反対すること。 ブランドの語り口を形作る2~3の信念(例:「人は率直な回答を受けるに値する」)。オプション。デフォルト:提供なし。その場合、メッセージの柱は証拠のみに基づきます。その旨を明記します。
    • 競合。 2~5の名前またはドメイン。デフォルト:ブランドの上位2つの非ブランド検索テーマ(ステップ5)でGoogleに表示されるビジネス。
    • 既存のルール: スタイルガイド、禁止ワード、主張に関する法的または規制上の制限(法律、健康、金融、アルコール)。デフォルト:なし。ただし、すべての最上級表現は依然としてフラグが立てられます(ステップ6)。
    • コピーが使用される場所: ガイドがカバーする必要があるチャネル。デフォルト:ステップ1で見つかったチャネルに、ウェブサイトとメールを追加。

ウェブサイトメッセージ監査のみの場合は、ステップ1で google-analytics と crawler もルックアップし、上記のリストの代わりにそのモード独自の質問(「モード:ウェブサイトメッセージ監査」の下)をユーザーにします。

ウィンドウ。 広告、投稿、検索語:過去90日間の完全な日付。レポートの先頭に日付を記載します。

クエリの実行方法

すべての読み取りは、指定されたプラットフォームで query_data を介して行われます。このスキルは execute_action を決して呼び出しません。実際の実行で見つかったルールは以下の通りです。

  • Google Adsの日付。 DURING LAST_90_DAYS は拒否されます。segments.date BETWEEN 'YYYY-MM-DD' AND 'YYYY-MM-DD' を使用してください。
  • Meta Adsはネストされたフィールドを拒否します。 creative{title,body} を含む get_ads は拒否されます。代わりにプレーンな creative フィールドを要求し、クリエイティブIDを取得してから、get_ad_creatives でテキストを読み取ります。削除された広告はインサイトには表示されますが、get_ads には表示されません。そのような広告は除外してカウントします。
  • 一部のサイトは自動読み取りを拒否します。 ビルド実行ではクライアントのサイトが403を返し、onpage_content_parsing が0項目で返ってきました(エラーなし)。その場合は、ステップ5の検索におけるブランドページのGoogle自身のタイトルとスニペットからページのボイスを読み取り、ユーザーに1~2の主要ページを貼り付けてもらい、使用したものを明記します。
  • SEOクローラーがダウンしている可能性があります。 2026-10-06には、すべてのクローラーアクションが Error fetching URL を返し、コントロールサイトでも同様でした。ページテキストにはDataForSEOを使用し、content-quality-checker と brand-extractor はオプションの追加機能として扱います。2026-10-30にはクローラーは復旧し、brand-extractor は色、フォント、ボタンを返しました。
  • 広告ライブラリがダウンしている可能性があります。 同日、google_company_ads と google_search_advertisers は非常に大規模な広告主でも空で返され、facebook_search_companies は接続リセットで失敗しました。広告ライブラリからの競合広告はビルド実行では未テストです。代わりに、競合のボイスはGoogleの検索結果(ステップ5)から取得します。
  • LinkedInページは再接続が必要な場合があります。 呼び出しが「Please reconnect your LinkedIn Page」を返した場合は、LinkedInをスキップし、その旨を明記して続行します。LinkedInの読み取りは接続されるまで未テストです。
  • Search Consoleはクエリのみのプルを1,000行に制限します。 これは語彙を調べるには十分です。リストが上位1,000件であることを明記します。
  • DataForSEOは課金されます。 オーディエンスが別の場所にいない限り、location_code 2840と language_code en を使用します。実行は最大6回の呼び出しに抑えます:最大3回のページ読み取りと2~3回の検索。最初に最も訪問されたページを読み取ります。0項目で返ってきた場合、サイトが読み取りを拒否しているため、他のページに料金を支払わないでください。ウェブサイトメッセージ監査には独自の予算があります:ページごとに1回のページ読み取りで、実行前にその旨を明記します(W1)。
  • ウェブサイトメッセージ監査の呼び出しは2026-10-30にテストされました。 GA4 get_report を landingPage で実行すると、ページごとのセッションとキーイベントが返されました。Search Console search_analytics をページとクエリで実行すると、完全な row_limit の5,000行が返されました。クローラーチェックは読み取りを許可するサイトで機能し、brand-extractor はボタンラベルを返しました。自動読み取りを拒否するサイトでは、クローラーはエラーを返しません。meta-tags-checker が title_tag_count 0を返し、headings-checker が no_headings を返します。これは「読み取れなかった」として扱い、タイトルやH1がないとは決して解釈しません。ブランドが複数のDataForSEO接続を持っている場合は、ページ読み取りに account_id を追加します。
  • 呼び出しのペースを調整します。 2秒間に1回以上の呼び出しを送信しないでください。再試行時間とともに呼び出しが拒否された場合は、その時間待ってから1回再試行します。

呼び出しが失敗したら、続行します。そのソースを 不明 とマークし、どの呼び出しがなぜ失敗したかを明記し、推測でギャップを埋めないでください。

呼び出し

Google Ads:各見出しと説明文とそのクリック数

{"platform": "google-ads", "action": "gaql", "workspace_id": "<WORKSPACE_ID>", "brand_id": "<BRAND_ID>", "account_id": "<CUSTOMER_ID>",
 "query": "SELECT campaign.name, ad_group_ad_asset_view.field_type, ad_group_ad_asset_view.performance_label, asset.text_asset.text, metrics.impressions, metrics.clicks, metrics.conversions FROM ad_group_ad_asset_view WHERE segments.date BETWEEN '<START>' AND '<END>' AND ad_group_ad_asset_view.field_type IN ('HEADLINE', 'DESCRIPTION') AND campaign.status = 'ENABLED' AND ad_group_ad_asset_view.enabled = TRUE AND metrics.impressions > 0 ORDER BY metrics.impressions DESC LIMIT 1000"}

Google Ads:広告とその送信先URL

{"platform": "google-ads", "action": "gaql", "workspace_id": "<WORKSPACE_ID>", "brand_id": "<BRAND_ID>", "account_id": "<CUSTOMER_ID>",
 "query": "SELECT campaign.name, ad_group.name, ad_group_ad.ad.id, ad_group_ad.ad.responsive_search_ad.headlines, ad_group_ad.ad.responsive_search_ad.descriptions, ad_group_ad.ad.final_urls, ad_group_ad.ad_strength, metrics.impressions, metrics.clicks, metrics.conversions FROM ad_group_ad WHERE segments.date BETWEEN '<START>' AND '<END>' AND ad_group_ad.status = 'ENABLED' AND campaign.status = 'ENABLED' AND ad_group_ad.ad.type = 'RESPONSIVE_SEARCH_AD' AND metrics.impressions > 0 ORDER BY metrics.impressions DESC LIMIT 50"}

インプレッション数が最も多い最終URLが、ステップ1で読み取るページです。

Google Ads:アカウントの総インプレッション数とクリック数(検索語句レポートのカバレッジを明記するため)

{"platform": "google-ads", "action": "gaql", "workspace_id": "<WORKSPACE_ID>", "brand_id": "<BRAND_ID>", "account_id": "<CUSTOMER_ID>",
 "query": "SELECT metrics.impressions, metrics.clicks FROM customer WHERE segments.date BETWEEN '<START>' AND '<END>'"}

Google Ads:顧客が検索するキーワード

{"platform": "google-ads", "action": "search_terms_report", "workspace_id": "<WORKSPACE_ID>", "brand_id": "<BRAND_ID>", "account_id": "<CUSTOMER_ID>", "start_date": "<START>", "end_date": "<END>", "limit": 5000}

Meta Ads:実行された広告とそのテキスト

{"platform": "facebook-ads", "action": "get_insights_adaccount", "workspace_id": "<WORKSPACE_ID>", "brand_id": "<BRAND_ID>", "ad_account_id": "act_<ID>", "level": "ad", "fields": ["ad_id", "ad_name", "impressions", "inline_link_clicks", "inline_link_click_ctr", "spend"], "time_range": {"since": "<START>", "until": "<END>"}}
{"platform": "facebook-ads", "action": "get_ads", "workspace_id": "<WORKSPACE_ID>", "brand_id": "<BRAND_ID>", "ad_account_id": "act_<ID>", "fields": ["id", "name", "status", "creative"]}
{"platform": "facebook-ads", "action": "get_ad_creatives", "workspace_id": "<WORKSPACE_ID>", "brand_id": "<BRAND_ID>", "ad_account_id": "act_<ID>", "fields": ["id", "name", "title", "body", "object_story_spec"]}

広告 → クリエイティブID → body(プライマリテキスト)と title(見出し)をマッチングします。プライマリテキストは object_story_spec.link_data.message にある場合もあります。

Facebookページの投稿

{"platform": "facebook-pages", "action": "get_posts", "workspace_id": "<WORKSPACE_ID>", "brand_id": "<BRAND_ID>", "page_id": "<PAGE_ID>", "fields": ["id", "message", "created_time", "permalink_url", "status_type", "shares"], "since": "<START>", "until": "<END>", "limit": 50}
{"platform": "facebook-pages", "action": "get_post_insights", "workspace_id": "<WORKSPACE_ID>", "brand_id": "<BRAND_ID>", "page_id": "<PAGE_ID>", "post_id": "<POST_ID>", "metrics": ["post_media_view", "post_clicks", "post_reactions_by_type_total"], "period": "lifetime"}

get_postsはネストされたフィールド(likes.summary(true) など)を拒否するため、これらの呼び出しはコメント数を返しません。shares は投稿から欠落している可能性があります(ビルド実行で読み取ったページのすべての投稿で欠落していました)。欠落しているフィールドは0としてカウントします。投稿ごとに1回のインサイト呼び出し、最大で最新の30件の投稿を読み取ります。

Instagramの投稿

{"platform": "instagram-profile", "action": "get_media", "workspace_id": "<WORKSPACE_ID>", "brand_id": "<BRAND_ID>", "account_id": "<INSTAGRAM_USER_ID>", "fields": "id,caption,media_type,media_product_type,permalink,timestamp,comments_count,like_count", "limit": 50}

LinkedInページの投稿(接続されるまで未テスト)

{"platform": "linkedin-pages", "action": "fetch_organization_posts", "workspace_id": "<WORKSPACE_ID>", "brand_id": "<BRAND_ID>", "org_id": "<ORG_ID>", "count": 50}

Search Console:サイトへのアクセス方法

{"platform": "google-search-console", "action": "search_analytics", "workspace_id": "<WORKSPACE_ID>", "brand_id": "<BRAND_ID>", "site_url": "<SITE_URL>", "dimensions": ["query"], "start_date": "<START>", "end_date": "<END>", "row_limit": 1000}

ページテキスト(DataForSEO、ページごとに1回の有料呼び出し)

{"platform": "dataforseo", "action": "onpage_content_parsing", "workspace_id": "<WORKSPACE_ID>", "brand_id": "<BRAND_ID>", "url": "<PAGE_URL>"}

テキストは page_content.main_topic にあります。各ブロックには h_title、level、primary_content[].text があります。ホームページと、広告が最も多くの人を送る1~2ページを読み取ります。

Googleでの競合とブランド自身のスニペット(DataForSEO、検索ごとに1回の有料呼び出し)

{"platform": "dataforseo", "action": "serp_google_organic", "workspace_id": "<WORKSPACE_ID>", "brand_id": "<BRAND_ID>", "keyword": "<TOP_NON_BRAND_THEME>", "location_code": 2840, "language_code": "en", "depth": 20}

オプションの追加呼び出し

{"platform": "crawler", "action": "content-quality-checker", "workspace_id": "<WORKSPACE_ID>", "url": "<PAGE_URL>"}
{"platform": "crawler", "action": "brand-extractor", "workspace_id": "<WORKSPACE_ID>", "url": "<HOMEPAGE_URL>"}

content-quality-checker は可読性と単語数を追加し、brand-extractor は色、フォント、ボタンを追加して、ガイドにビジュアルアイデンティティのラインを提供します。競合の広告:facebook_search_companies の後に facebook_company_ads を page_id で、または google_company_ads を競合の domain(広告ライブラリ)で使用します。

ウェブサイトメッセージ監査用の呼び出し

GA4:訪問が開始されるページとキーイベント

{"platform": "google-analytics", "action": "get_report", "workspace_id": "<WORKSPACE_ID>", "brand_id": "<BRAND_ID>", "property_id": "properties/<PROPERTY_ID>", "dimensions": ["landingPage"], "metrics": ["sessions", "keyEvents"], "start_date": "<START>", "end_date": "<END>"}

ランディングページごとのセッションは入口を表します:そのページから始まった訪問です。

Search Console:各ページが見つかるクエリ

{"platform": "google-search-console", "action": "search_analytics", "workspace_id": "<WORKSPACE_ID>", "brand_id": "<BRAND_ID>", "site_url": "<SITE_URL>", "dimensions": ["page", "query"], "start_date": "<START>", "end_date": "<END>", "row_limit": 5000}

クローラー:1ページのタイトル、メタディスクリプション、見出し、ボタンラベル(無料クレジット)

{"platform": "crawler", "action": "meta-tags-checker", "workspace_id": "<WORKSPACE_ID>", "url": "<PAGE_URL>"}
{"platform": "crawler", "action": "headings-checker", "workspace_id": "<WORKSPACE_ID>", "url": "<PAGE_URL>"}
{"platform": "crawler", "action": "brand-extractor", "workspace_id": "<WORKSPACE_ID>", "url": "<PAGE_URL>"}

ボタンラベルは brand-extractor の primaryButton.text と buttons[].text にあります。両方のクローラーチェックが空で返ってきた場合(title_tag_count 0と no_headings)、サイトがクローラーを拒否したことを意味します。ページテキストからタイトル、見出し、ラベルを取得するか、貼り付けを依頼します。

ページ本文テキスト: ウェブサイトメッセージ監査では、DataForSEO onpage_content_parsing が各ページに対して1回の有料呼び出しとして実行されます。最初のページが0項目を返した場合、サイトは読み取りを拒否しているため、残りのページの呼び出しは行いません。最大5ページまで読み取ります。広告で最も多くの人が訪れるページと、最も多くのセッションがあるランディングページを優先します。

組み立て

ステップ1:データの収集

(上記の呼び出しで説明)

ステップ2:パフォーマンスと顧客の声の分析

(組み立て部分が切り詰められています。完全版では、クリック、コンバージョン、顧客の言葉のパターンを分析し、何が機能しているかを特定します)

ステップ3:競合分析

(競合の声、メッセージ、ギャップを分析)

ステップ4:ブランドボイスガイドの作成

(声、トーン、スタイルの定義を文書化)

ステップ5:メッセージングフレームワークの作成

(ブランドのポジショニング、メッセージの柱、タグラインを定義)

ステップ6:現在のコピーのチェック

(ガイドに照らして既存のコピーを監査し、不一致を特定)

ステップ7:ウェブサイトメッセージ監査(オプションのスタンドアロンモード)

サイトの主要ページをまとめて読み込み、それらが広告と一貫したストーリーを語っているかをチェックし、トラフィックに基づいて修正の優先順位を付けます。GA4のセッションデータ、Search Consoleのクエリデータ、クローラーのページ構造データを使用します。

接続なしの場合

MCP接続がない場合でも、このスキルは使用できます。空のウィンドウフレームで開始し、ユーザーにコピーの例を提供してもらい、そこからガイドを構築します。各セクションで、証拠が推測に基づいていることを明記します。

関連スキル