Community写作与编辑github.com

品牌声音 (Brand Voice)

根据您的 Google Ads、Meta 广告、社交媒体帖子和网站文案,构建品牌声音与语调指南及信息架构,并对照检查现有内容的合规性。适用于需要风格指南、信息框架或网站信息审计时,不用于撰写新的文案。

品牌声音 (Brand Voice) 是什么?

该技能能从品牌现有内容和客户响应中提取数据,自动构建完整的品牌声音指南,包括声音(品牌始终如一的个性)、语调(根据场景调整的方式)和风格(可重复的具体规则)。它支持 Google Ads、Meta Ads、Facebook 页面、Instagram、LinkedIn 页面、Search Console 和 DataForSEO 等多个数据源,并通过 API 调用获取广告文案、帖子内容和搜索词数据。技能还包含一个独立的“网站信息审计”模式,可分析网站关键页面与广告的一致性,并根据流量影响排序修复建议。执行过程中会自动处理常见错误(如 API 限制、403 拒绝、爬虫故障),并标记未知来源以确保信息准确。

兼容平台~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 中提问

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

文档

品牌声音 (Brand Voice) 是做什么的?

一份从品牌已有表述和客户实际反馈中构建的声音指南。声音(Voice)是始终不变的个性。语调(Tone)是这个个性随场景(搜索广告、道歉信、深夜焦虑客户的来信)所做的调整。风格(Style)是一套使前两者可重复的小规则。此技能记录了所有三个方面,并将每个选择立足于品牌自己的文案、点击数据、客户语言以及竞争对手留下的空白。

它还能独立运行一个模式:网站信息审计(第 7 步之后)。该模式读取网站关键页面,检查它们是否与广告讲述同一个故事,然后按流量影响度对修复建议进行排序。

开始之前

您需要连接 InsightfulPipe MCP,并且至少拥有一个品牌自有文案的来源:Google Ads 或 Meta 广告账户、Facebook 页面、Instagram、LinkedIn 页面,或者一个 DataForSEO 可读取的网站。如果没有这些来源,请使用最后的“无连接”方案。

  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. 询问用户,如果用户不知道则使用默认值:
    • 一行概括的品牌定位: 它做什么以及为谁做。默认值:从广告和页面推断;需说明这是推断结果。
    • 用户喜欢和感觉不对的文案: 各提供两到三个例子,可以是品牌自己的,也可以是别人的。可选,但值得一问:感觉不对的文案和感觉对的同样有用。
    • 品牌支持什么、反对什么: 两到三个塑造其说话方式的信念,例如“人们应该得到直接的答案”。可选。默认值:未提供,因此支柱仅基于证据;需说明。
    • 竞争对手: 两到五个名称或域名。默认值:对于品牌排名前二的非品牌搜索主题(第 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 拒绝嵌套字段: get_ads 带 creative{title,body} 会被拒绝。请请求简单的 creative 字段,它会返回创意 ID,然后通过 get_ad_creatives 读取文本。已删除的广告仍会出现在洞察数据中,但不在 get_ads 里;排除它们并计数。
  • 某些网站拒绝自动读取器: 在构建运行时,客户网站返回了 403 错误,onpage_content_parsing 返回 0 条结果(无错误)。此时,从第 5 步搜索中品牌页面的 Google 标题和摘要中读取页面声音,要求用户粘贴一两个关键页面,并说明您使用了哪些数据。
  • 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 页面可能需要重新连接: 如果调用返回“请重新连接您的 LinkedIn 页面”,则跳过 LinkedIn,说明原因并继续。LinkedIn 读取在连接之前未经过测试。
  • Search Console 限制仅查询的拉取为 1,000 行: 这对词汇量来说足够;说明这是前 1,000 名。
  • DataForSEO 需要付费: 除非受众在其他地区,否则使用 location_code 2840 和 language_code en。一次运行控制在 6 次调用以内:最多 3 次页面读取和 2 到 3 次搜索。首先读取访问量最大的页面;如果返回 0 条结果,说明网站拒绝读取器,因此不要为其他页面付费。网站信息审计有自己的预算:每个页面一次页面读取,在运行前(W1)说明。
  • 网站信息审计调用于 2026-10-30 测试: GA4 的 get_report 按 landingPage 返回了每个页面的会话数和关键事件。Search Console 的 search_analytics 按页面和查询返回了完整的 5,000 行 row_limit。在允许读取器的网站上,爬虫检查正常工作,brand-extractor 返回了按钮标签。在拒绝自动读取器的网站上,爬虫不报错:meta-tags-checker 返回 title_tag_count 0,headings-checker 返回 no_headings。应将其视为“无法读取”,绝不能视为缺少标题或 H1。当品牌有多个 DataForSEO 连接时,在页面读取中添加 account_id。
  • 控制调用节奏: 每 2 秒最多发送一次调用。当调用被拒绝并给出重试时间时,等待该时间后重试一次。

如果某次调用失败,继续执行。将该来源标记为 未知,说明哪个调用失败及原因,绝不要凭猜测填补空白。

调用方法

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:广告及其目标链接

{"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。每篇帖子调用一次 insights;最多读取最近 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,每页面一次付费调用)

{"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。读取首页以及广告将最多用户引导至的一到两个页面。

竞争对手及品牌自身在 Google 中的摘要片段(DataForSEO,每次搜索一次付费调用)

{"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,然后使用 page_id 调用 facebook_company_ads,或使用竞争对手的 domain 调用 google_company_ads(广告库)。

网站信息审计的调用

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}

爬虫:页面标题、元描述、标题和按钮标签(无付费积分)

{"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(见上方)。每个审计页面一次调用,使用账户的 DataForSEO 连接。在审计前说明页面数量和总调用次数。

第 1 步:广告文案

检查每条广告文案的:

  • 感觉对还是不对。
  • 是否一致(同一广告组或活动内的品牌语气)。
  • 重复使用。
  • 最高级和极端词。
  • 数字和数据点。
  • 紧迫感和号召性用语。
  • 情感诉求与理性诉求。
  • 竞争对手也会说的话。
  • 受众语言匹配。

从 Google Ads 响应式搜索广告开始:它们的多个标题和描述组合构成了主要的语气数据集。然后在 Meta 广告、社交媒体帖子和网站文案中寻找相同的模式和偏差。

第 2 步:社交媒体声音

分析有机社交媒体帖子(Facebook、Instagram,如果连接了则包括 LinkedIn)的:

  • 帖子的整体语气(信息性、宣传性、社区性、支持性)。
  • 与广告的对比(语气是否转变?)。
  • 高频词汇和句式。
  • 表情符号和格式的使用。
  • 用户互动(点赞、评论、分享)。评论特别有用:它们是用户声音的直接样本。

第 3 步:客户声音

从以下来源提取客户的词语和期望:

  • 搜索词: 用户在 Google 上使用的确切词语,包括品牌词和非品牌词。
  • 广告效果: 什么语言获得了最多的点击和转化。
  • 社交媒体评论和反应: 人们如何回应以及他们使用的语言。
  • 搜索意图: 用户搜索的意图(信息型、导航型、商业型、交易型)。

注意客户声音与品牌声音之间的差距。好的品牌声音比客户语言更高一个层次,但使用相同的词语。

第 4 步:竞争对手格局

对于每个竞争对手:

  • 他们的独特声音和定位。
  • 他们正在营销的主题和角度。
  • 他们使用的语言和术语。
  • 他们没有涉足或弱化的领域。
  • 广告与网站信息的差距。

注意竞争对手创造的空间。品牌可以填补的空白是什么对于定位比“做同样的事情但更好”更有价值。

第 5 步:搜索存在与词汇

分析 Google 搜索结果和品牌自身网站关于以下方面的信息:

  • 主题密度: 品牌在哪些主题上排名靠前?
  • 标题和摘要中的语言: Google 对品牌页面的摘要片段。
  • 非品牌搜索主题: 用户在没有品牌名称的情况下找到品牌的方式。
  • 网站关键词: 页面正文和标题中使用的语言。
  • 信息架构: 页面如何为访问者构建(如网站信息审计,见下文)。

第 6 步:构建指南

现在综合所有信息。指南有三个部分:

声音

品牌的固定个性。2–4 个形容词作为第一句。然后 3–5 个支柱,每个都基于第 1–5 步的证据。每个支柱都有:

  • 名称 和 一句话描述。
  • 操作方法: 在文案中实现此支柱的 2–3 条规则。
  • 好例子 和 坏例子 来自实际文案。好例子是有效果的:它们获得了点击、转化或积极的社交媒体回应。坏例子显得通用、脱节或未被受众接受。两者都应来自实际数据。
  • 为什么它有效/无效: 基于点击率、转化数据或社交媒体表现的证据。对于坏例子,不要只说效果差;解释为什么效果差(语气错误、信息不明确、受众不合适)。

语调

声音在不同场景下的调整方式。至少覆盖:

  • 标准文案(广告、网站文案)。
  • 支持性沟通(客户服务、常见问题)。
  • 危机沟通(道歉、错误恢复)。
  • 社交媒体互动(评论回复、社区管理)。
  • 欢迎与介绍(第一印象、入职引导信息)。

对于每个语调场景:

  • 它指向谁(新客户、忠实客户、质疑者)。
  • 气氛(严肃、乐观、信息性)。
  • 长度(30 个单词以内、简要但不是最短、解释性)。
  • 立即目标(销售、信任、信息)。

风格

使声音和语调可重复的具体规则。包括:

  • 大写(标题大小写、句子大小写、品牌名称)。
  • 标点(逗号、分号、感叹号、项目符号)。
  • 数字(数字与文字、日期格式、货币)。
  • 术语(首选词、禁用词、专业术语)。
  • 情感检查点(乐观、严肃、幽默)及其使用提示。
  • 为 AI 改编(提示、品牌信息标记、格式要求)。

第 7 步:交付

以以下格式提供指南:

  1. 执行摘要(一页): 声音描述、语调概述和关键规则。
  2. 完整指南(Unicode 文本): 声音支柱、语调场景和风格规则,均附有来自第 1–5 步的证据。
  3. 索引(按主题和场景): 快速参考表。

在每个部分的开头说明构建中使用了哪些来源。在末尾列出未完全分析的内容(不确定的竞争对手、未读取的页面)。

模式:网站信息审计

此模式检查网站关键页面是否与广告讲述同一个故事。当用户请求“审计我们的网站信息”或类似内容时运行。

机构问题(不在主指南中询问)

  • 网站的主要目标是什么?(销售线索、直接销售、品牌知名度、信息传递)
  • 哪些页面最重要?(首页、产品/服务页面、关于我们、定价、博客)
  • 访问者最重要的下一步行动是什么?(注册、购买、联系、了解更多)
  • 有没有一个特定的活动或活动页面我们正在审计?
  • 是否有任何页面我们不希望用户看到或找不到?(旧页面、测试页面、缺失的着陆页)

审计运行

对于每个要审计的页面:

  1. 页面数据收集:

    • 从 DataForSEO 获取页面正文文本(一次付费调用)。
    • 从爬虫获取标题、元描述、标题和按钮标签(无付费积分)。
    • 从 GA4 获取会话数和关键事件(会话数 = 入口)。
    • 从 Search Console 获取每个页面的查询。
  2. 页面分析:

    • 信息焦点: 页面主要谈论什么?这与广告承诺一致吗?
    • 语气匹配: 页面的语气与将用户带到这里的广告语气相匹配吗?如果不匹配,需要调整什么?
    • 故事进展: 广告→着陆页→下一步行动是否是一个连贯的故事?还是用户感到脱节?
    • 号召性用语一致性: 页面上的按钮和链接是否反映了广告中的承诺?
    • 信息差距: 是否有在广告中承诺但在页面上未履行的信息?或者相反,页面有广告中未提及的重要信息?

审计交付

  1. 按流量优先排序的差距列表:

    • 具有高流量的页面之间的严重差距(高优先级)。
    • 具有中等流量的页面之间的重要差距(中优先级)。
    • 页面内的小差距(低优先级)。
  2. 每页的具体建议:

    • 需要改变什么(语气、内容、布局)。
    • 预期影响(如果修复,预计的流量/转化变化)。
    • 更改的难度(快速修复与复杂更改)。
  3. 跨页面故事地图:

    • 访问者通过网站的整体叙述流程。
    • 不匹配的页面如何破坏故事。
    • 修复故事的一致性的路线图。

第 8 步:最终输出

将指南和网站信息审计合并为最终交付物:

品牌声音文档(Unicode 文本)

包含以下部分的完结文档:

  1. 声音描述(2–4 个形容词,3–5 个带证据的支柱)。
  2. 语调场景(声音如何适应)。
  3. 风格规则(可重复的公式)。
  4. 网站信息审计(差距和修复,按优先级排序)。

快速参考卡

可打印的一页指南,包含关键声音规则和语调调整。

AI 提示指南

针对 AI 助手、文案生成器和其他 AI 工具的一组提示,以一致地应用此声音。包括:

  • 声音和语调的系统提示。
  • 特定场景(广告、电子邮件、社交帖子)的提示示例。
  • 语气调整指南(何时使用不同语调)。

无连接方案

如果没有任何数据源连接,此技能无法运行。您需要至少一个来源(Google Ads、Meta Ads、Facebook 页面、Instagram、LinkedIn 或 DataForSEO)。

在没有连接的情况下,我仍然可以提供:

  • 声音创建的基础框架(但没有品牌特定证据)。
  • 网站信息审计的手动数据收集说明(在哪里查找什么)。
  • 风格指南模板(但没有品牌特定规则)。

要使用此技能,请连接 InsightfulPipe MCP 并至少提供一个数据源,或粘贴文本供我分析。

相关技能