mcpField
S
social-proof-widgets

social-proof-widgets

github.com/finsilabs营销与增长6089 次安装5 天前更新
代码仓库

关于 social-proof-widgets

用于在电商店铺添加社交证明元素的技能,涵盖购买通知、访客数量、评价徽章和库存提示。它为店铺团队提供按平台配置的指引,并说明如何测试组件对转化的影响。

主要功能

  1. 01按店铺平台选择工具
  2. 02购买及访客通知
  3. 03评价徽章与低库存提示
  4. 04组件定向和显示规则
  5. 05A/B 测试指引

适用场景

  1. 01在商品页添加近期购买通知
  2. 02显示访客数量或评价徽章
  3. 03根据真实库存显示低库存提示
  4. 04在全站启用前测试组件效果

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/finsilabs/awesome-ecommerce-skills --skill social-proof-widgets

安装后在 Claude Code 中输入/social-proof-widgets确认已加载。

包含的文件

除 SKILL.md 外,安装时一起下载的参考资料和脚本。

tile.json
evals/dom-safe-purchase-notification-toast-wid/
criteria.json
task.md
evals/review-badge-with-schema-org-markup-and-/
criteria.json
task.md
evals/social-proof-data-api-with-redis-visitor/
criteria.json
task.md

详细介绍

社交证明组件

概述

社交证明组件——近期购买通知、访客数量、评价徽章和低库存提示——可以缓解购买顾虑,并使产品页的转化率提升 10–30%。对于 Shopify 和 WooCommerce,可通过专用应用(Fomo、TrustPulse、ProveSource)安装这些组件,无需编写代码。只有采用无头架构且有特定设计要求的商店才需要构建自定义组件。

何时使用此技能

  • 产品页流量不错但转化率较低时
  • 推出缺少评价、需要其他信任信号的新产品时
  • 测试社交证明元素是否会显著影响 CVR 时(需要进行 A/B 测试)
  • 希望添加实时购买通知时
  • 根据实际库存数据构建低库存紧迫感提示时

核心说明

步骤 1:选择合适的社交证明工具
平台最适用于ShopifyWooCommerceBigCommerce价格
Fomo实时购买通知应用商店插件通过 JS$19+/mo
TrustPulse近期购买 + 实时访客数量—插件通过 JS$5+/mo
ProveSource所有平台,高度可定制应用商店通过 JS通过 JS免费套餐;$20+/mo
Judge.me评价数量徽章 + 已验证买家徽章应用商店插件应用市场免费套餐;$15/mo
自定义无头架构商店、特定设计需求通过 API通过 API通过 API开发成本

建议: Shopify 使用 Fomo(购买通知效果最佳),WooCommerce 使用 TrustPulse。对于评价徽章,使用现有的评价平台(Judge.me、Yotpo)——它们会自动包含星级评分徽章。

步骤 2:设置社交证明组件

使用 Fomo 的 Shopify
  1. 从 Shopify 应用商店安装 Fomo
  2. 前往 Fomo → Events → Shopify Orders——Fomo 会自动导入商店的近期订单
  3. 配置通知模板:
    • 显示:名字和城市(例如,“Sarah from Chicago just purchased…”)
    • 显示产品名称和图片
    • 显示最近 48 小时内的订单
  4. 前往 Fomo → Design,自定义通知提示框的位置和样式(默认位于左下角)
  5. 前往 Fomo → Rules 并设置:
    • 仅在产品页显示(URL 包含 /products/)
    • 在购物车和结账页面隐藏
    • 显示组件前至少显示 3 条通知(避免仅有 1 条事件时显示组件)
  6. 前往 Fomo → A/B Testing,将组件与对照组进行分流测试——启用全站显示前,务必先衡量提升效果

使用 TrustPulse 的 WooCommerce
  1. 从 WordPress 插件目录安装 TrustPulse
  2. 前往 TrustPulse → Create Campaign 并选择 Recent Activity
  3. 配置:
    • 数据来源:WooCommerce 近期订单
    • 显示:客户姓名、城市、购买的产品
    • 显示:最近 7 天内的订单
  4. 设置定位规则:仅在产品页和商店页面显示;结账页面除外
  5. 对于访客数量组件,创建第二个 On Fire 活动:“现在有 X 人正在查看”——设置至少有 5 位访客时才显示

使用 ProveSource 的 BigCommerce
  1. 注册 ProveSource,并通过 Storefront → Script Manager 将 JavaScript 代码片段添加到商店
  2. 通过集成设置将 BigCommerce 商店连接到 ProveSource
  3. 在 ProveSource 控制面板中配置近期购买通知和访客数量组件

自定义 / 无头架构

对于无头架构商店,构建社交证明 API 和客户端组件:

// GET /api/products/:id/social-proof
// Returns real data only — never fabricate counts
export async function getProductSocialProof(req: Request, res: Response) {
  const productId = req.params.id;

  const [recentOrders, reviewSummary, stockLevel] = await Promise.all([
    db.orderLineItems.findAll({
      where: { productId, createdAt: { gte: subHours(new Date(), 48) } },
      include: ['order.shippingAddress'],
      limit: 10,
    }),
    db.productReviews.aggregate(productId),
    db.productVariants.findMinStock(productId),
  ]);

  // Anonymize PII — first name and city only
  const recentPurchases = recentOrders.map(item => ({
    firstName: item.order.shippingAddress.firstName,
    location: `${item.order.shippingAddress.city}, ${item.order.shippingAddress.stateCode}`,
    timeAgo: formatTimeAgo(item.createdAt),
    productName: item.productName,
  }));

  return res.json({
    recentPurchases,
    reviews: { average: reviewSummary.avgRating, total: reviewSummary.total },
    stockLevel: {
      isLow: stockLevel > 0 && stockLevel <= 5,
      quantity: stockLevel,
      isSoldOut: stockLevel === 0,
    },
  });
}

客户端购买通知提示框——使用 DOM 方法防止 XSS:

class SocialProofToast {
  private queue: Array<{ firstName: string; location: string; productName: string; timeAgo: string }> = [];
  private isShowing = false;

  async init(productId: string) {
    const response = await fetch(`/api/products/${productId}/social-proof`);
    const data = await response.json();
    this.queue = data.recentPurchases.slice(0, 5);
    this.showNext();
  }

  private showNext() {
    if (this.queue.length === 0 || this.isShowing) return;
    const purchase = this.queue.shift()!;
    this.isShowing = true;

    const toast = document.createElement('div');
    toast.className = 'sp-toast';

    const strong = document.createElement('strong');
    strong.textContent = `${purchase.firstName} from ${purchase.location}`; // textContent prevents XSS

    const span = document.createElement('span');
    span.textContent = ` purchased ${purchase.productName}`;

    const time = document.createElement('time');
    time.textContent = purchase.timeAgo;

    toast.appendChild(strong);
    toast.appendChild(span);
    toast.appendChild(time);
    document.body.appendChild(toast);

    setTimeout(() => {
      toast.remove();
      this.isShowing = false;
      setTimeout(() => this.showNext(), 8000); // 8-second gap between toasts
    }, 5000);
  }
}
第 3 步:添加低库存紧迫感提示

低库存提示(“仅剩 3 件!”)能有效营造紧迫感,但只应显示真实库存数量。顾客发现虚假提示后,会失去信任。

在 Shopify 中: 从 Shopify App Store 安装 Urgency Bear 或 Hurrify,它们会读取你在 Shopify 中的实际库存,并在商品页面显示“仅剩 X 件”。

在 WooCommerce 中: 启用 WooCommerce 内置的低库存显示功能:

  1. 前往 WooCommerce → Settings → Products → Inventory
  2. 启用 Show stock management at product level
  3. 启用 Enable low stock threshold,并将阈值设为 5
  4. 当库存低于阈值时,WooCommerce 会自动在商品页面显示“仅剩 3 件库存”

自定义阈值: 使用 CSS 根据数量级别设置低库存提示的样式。

第 4 步:A/B 测试社会认同的影响

在全站部署前务必先测试。Fomo 和 TrustPulse 都内置了 A/B 测试功能。

手动进行 A/B 测试:

  1. 使用平台的实验工具,让 50% 的访客看到该组件
  2. 至少测试 2 周,并确保每组有 200+ 次转化
  3. 比较两组的转化率、AOV 和每位访客带来的收入
  4. 只有在提升具有统计显著性(p < 0.05)时才保留该组件

最佳实践

  • 只显示真实数据 — 伪造的购买量或虚构的访客人数一旦被发现,就会损害信任;显示任何组件前,至少应达到 5 次事件的最低门槛
  • 匿名处理购买通知 — 只显示名字和城市;绝不包含订单 ID、全名或电子邮件地址
  • 异步加载社会认同内容 — 页面加载后使用 requestIdleCallback 获取数据;绝不阻塞关键渲染路径
  • 在购物车和结账页面隐藏组件 — 结账时显示购买通知会分散顾客对转化的注意力;请在这些页面禁用
  • 限制通知频率 — 每个页面会话最多显示 3 条通知,每条之间至少间隔 8 秒
  • 所有源自客户的数据都使用 textContent — 防止 XSS 漏洞;绝不将客户姓名或所在位置与 innerHTML 一起使用

常见问题

问题解决方案
Toast 通知显得像垃圾信息每个会话最多显示 3 条;间隔 8 秒;在购物车和结账页面隐藏
组件降低了转化率(A/B 测试显示负向提升)立即禁用;彻底放弃前,先测试不同的位置、文案或时机
评论徽章未显示在 Google 搜索结果中确保 AggregateRating schema 由服务器渲染(而不只是客户端 JS);使用 Google Rich Results Test 验证
低库存提示显示的数量有误订阅库存变更 webhook,而不是轮询;过时的数据会造成虚假的紧迫感
社会认同组件拖慢页面加载页面可交互后再异步加载所有社会认同组件;使用 requestIdleCallback 或 setTimeout(fn, 0)

相关技能

  • @review-generation-engine
  • @conversion-rate-optimization
  • @exit-intent-popups
  • @ugc-campaign-management
  • @ab-testing-ecommerce

评论

支持 Markdown