ブランドボイスガイド は何をしますか?
ブランドがすでに発信しているコピーと、顧客が実際に反応したデータから構築されるボイスガイドです。ボイス(声)とは、あらゆる場所で変わらないブランドの個性です。トーン(調子)とは、その個性が状況に応じてどのように調整されるかを指します。検索広告、謝罪、午後11時に心配して書き込む顧客など、状況は様々です。スタイル(形式)とは、ボイスとトーンを再現可能にするための小さなルールの集合です。このスキルはこれら3つすべてを文書化し、各選択をブランド自身のコピー、クリック結果、顧客の言葉、そして競合が残しているギャップに基づいて裏付けます。
また、単独で実行できるモードとして、ウェブサイトメッセージ監査(ステップ7の後)もあります。このモードはサイトの主要ページをまとめて読み込み、それらが広告と一貫したストーリーを語っているかをチェックし、トラフィックに基づいて修正の優先順位を付けます。
開始前に
ブランド自身のコピーのソース(Google AdsまたはMeta Adsアカウント、Facebookページ、Instagram、LinkedInページ、またはDataForSEOが読み取れるウェブサイト)のうち少なくとも1つに接続されたInsightfulPipe MCPが必要です。これらのいずれもない場合は、最後の「接続なしの場合」を使用してください。
query_contextsをrequest="accounts"で呼び出し、google-ads、facebook-ads、facebook-pages、instagram-profile、linkedin-pages、google-search-console、dataforseoについて取得します。workspace_id、各行のbrand_id(同じビジネスのアカウントが異なるブランドに属する場合がある)、およびアカウント、ページ、サイト、組織のIDを記録します。代理店ワークスペースの場合は、このガイドの対象となるビジネスをユーザーに確認し、そのビジネスのアカウントのみを読み取ります。query_contextsをrequest="actions_details"で呼び出し、以下の「呼び出し」にあるすべての読み取りについて、返されるボディの形状を確認し、「クエリの実行方法」に記載されている例外に従ってください。- ユーザーに以下の項目を質問し、ユーザーがわからない場合はデフォルト値を使用します。
- ブランドを一文で: 何を、誰のために行っているか。デフォルト:広告とページから推測し、推測であることを明記します。
- 気に入っているコピーと、適切でないと感じるコピー。 それぞれ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_code2840とlanguage_codeenを使用します。実行は最大6回の呼び出しに抑えます:最大3回のページ読み取りと2~3回の検索。最初に最も訪問されたページを読み取ります。0項目で返ってきた場合、サイトが読み取りを拒否しているため、他のページに料金を支払わないでください。ウェブサイトメッセージ監査には独自の予算があります:ページごとに1回のページ読み取りで、実行前にその旨を明記します(W1)。 - ウェブサイトメッセージ監査の呼び出しは2026-10-30にテストされました。 GA4
get_reportをlandingPageで実行すると、ページごとのセッションとキーイベントが返されました。Search Consolesearch_analyticsをページとクエリで実行すると、完全なrow_limitの5,000行が返されました。クローラーチェックは読み取りを許可するサイトで機能し、brand-extractorはボタンラベルを返しました。自動読み取りを拒否するサイトでは、クローラーはエラーを返しません。meta-tags-checkerがtitle_tag_count0を返し、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接続がない場合でも、このスキルは使用できます。空のウィンドウフレームで開始し、ユーザーにコピーの例を提供してもらい、そこからガイドを構築します。各セクションで、証拠が推測に基づいていることを明記します。