mcpField
A
ab-testing-pricing

ab-testing-pricing

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

关于 ab-testing-pricing

为电商团队提供价格 A/B 测试的规划与实施指导,涵盖 Shopify、WooCommerce、BigCommerce 及自定义店面。重点是控制分组、指标和实验时长,以减少偏差并避免顾客看到不一致价格。

主要功能

  1. 01按电商平台选择测试方案
  2. 02设计假设、指标与流量分组
  3. 03配置价格变体和访客分组
  4. 04监测收入、转化率与显著性
  5. 05检查实验风险与常见问题

适用场景

  1. 01在全站调价前验证收入影响
  2. 02比较不同客群的价格敏感度
  3. 03并行测试不同产品的价格
  4. 04记录并限制可逆的价格实验

安装

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

$npx skills add https://github.com/finsilabs/awesome-ecommerce-skills --skill ab-testing-pricing

安装后在 Claude Code 中输入/ab-testing-pricing确认已加载。

包含的文件

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

tile.json
evals/conversion-event-tracking-and-variant-id/
criteria.json
task.md
evals/database-schema-and-deterministic-varian/
criteria.json
task.md
evals/statistical-significance-calculation-and/
criteria.json
task.md

详细介绍

价格 A/B 测试

概述

价格 A/B 测试可让你开展受控实验——向一部分访客展示一种价格,向另一部分访客展示不同的价格——再决定是否永久更改价格。这是杠杆效应最高的优化方式之一,但风险也最大:执行不当的测试会破坏客户信任,并产生误导性数据。大多数平台都没有内置的价格 A/B 测试功能,因此需要使用专用应用或自定义实现。本指南将带你了解如何在各大平台上正确设置价格实验。

何时使用此技能

  • 需要在全站推出价格变更前,获得数据驱动的证据时
  • 测试不同客户群体或产品类别对价格的敏感度时
  • 评估新定价模式对收入的影响时(例如,从 $49.99 调整为 $45.00)
  • 在不同产品上同时运行多个价格实验,且避免相互干扰时
  • 法规或伦理要求价格测试必须记录、设定时限且可撤销时

核心说明

步骤 1:确定商家的平台并选择合适的方法
平台推荐工具原因
ShopifyIntelligems 或 Neat A/B Testing appShopify 原生应用,无需自定义代码即可处理价格变体分配、会话固定和统计报告
Shopify PlusIntelligems + Shopify FunctionsShopify Functions 支持服务端价格覆盖,是 Plus 上最可靠的方法
WooCommerceNelio A/B Testing 插件或 Split Hero原生 WordPress 实验插件,支持 WooCommerce 价格测试
BigCommerceIntelligems(支持 BigCommerce)或 Google Optimize 的替代方案BigCommerce 的 Price Lists API 可按客户群体设置特定变体价格
自定义 / 无头架构使用自有会话分桶逻辑和平台定价 API 构建控制力最强,但需要自定义统计跟踪
步骤 2:设计实验

设置任何工具之前,请先定义以下参数:

  1. 假设——“将价格从 $49.99 降至 $44.99,将使每位访客的收入提高 5% 以上”
  2. 主要指标——每位访客收入(RPV),而不仅仅是转化率。较低的价格可能带来更高的转化率,但每笔订单的收入也可能更低
  3. 流量分配——50/50 是标准做法;同一产品同时测试的变体不得超过 2 个
  4. 最短时长——至少 7 天,以涵盖工作日和周末的差异;理想时长为 14 天
  5. 最小样本量——使用显著性计算器计算(可使用 abtestguide.com)。宣布获胜方案前,每个变体至少应有 100 次转化
  6. 排除规则——已按旧价格购买的现有客户,在实验期间不应看到新价格
步骤 3:平台专属设置

Shopify

选项 A:Intelligems(大多数商家的推荐选择)

Intelligems 是领先的 Shopify 价格测试应用。它负责处理会话一致性和统计显著性,并原生集成 Shopify 的结账功能。

  1. 从 Shopify App Store 安装 Intelligems
  2. 前往 Intelligems → Tests → New Price Test
  3. 选择要测试的产品
  4. 设置变体价格(例如,$49.99 与 $44.99)
  5. 设置流量分配比例(建议为 50/50)
  6. 根据样本量计算器设置开始日期和预计结束日期
  7. Intelligems 通过持久性 Cookie 将访客分配到不同变体,并在其控制面板中报告每位访客收入(RPV)、转化率和统计显著性

需要配置的关键设置:

  • Sticky bucketing — 确保同一访客始终看到相同价格(默认启用)
  • Returning customer exclusion — 在 Advanced Settings 下,排除之前以原价购买过该产品的客户
  • Minimum detectable effect — 将其设置为足以证明价格变更合理的最低收入变化幅度(例如,5%)

选项 B:Neat A/B Testing

如果只需要简单的价格拆分测试,这是一个更轻量的替代方案:

  1. 从 App Store 安装 Neat A/B Testing
  2. 创建一个针对特定产品或系列的测试
  3. 设置价格变体和流量分配比例
  4. 在 Neat 控制面板中监控结果

选项 C:Shopify Plus — Shopify Functions(高级)

适用于需要完全掌控的 Plus 商家:

  1. 创建一个 Shopify Function(Discount Function 类型)
  2. 该函数会接收购物车上下文和客户 ID
  3. 对客户/会话 ID 进行确定性哈希运算,以分配到不同变体
  4. 应用固定金额或百分比折扣,金额等于价格差
  5. 通过 Shopify 订单 Webhook 和自定义分析存储跟踪转化

WooCommerce

选项 A:Nelio A/B Testing 插件

  1. 从 WordPress 插件目录安装 Nelio A/B Testing
  2. 前往 Nelio A/B Testing → Add New Experiment → WooCommerce Product Experiment
  3. 选择产品并设置替代价格
  4. 配置转化目标(购买该产品)
  5. 插件会跟踪会话,并报告具有统计显著性的转化率

选项 B:使用 Google Optimize(已停止服务)替代方案进行手动测试

由于 Google Optimize 已于 2023 年停止服务,可以考虑:

  • VWO(Visual Website Optimizer) — 支持通过 JavaScript 进行 WooCommerce 价格测试
  • AB Tasty — 企业级工具,原生集成 WooCommerce
  • Convert.com — 兼容 WooCommerce,并支持服务器端测试

WooCommerce 重要提示:客户端价格变更(基于 JavaScript)仅是表面显示,不会改变实际结账价格。务必确保 A/B 测试工具在 WooCommerce 产品层级更改价格,或通过 woocommerce_get_price 筛选器更改,而不只是更改显示的数字。


BigCommerce
  1. 使用 BigCommerce 的 Price Lists 功能(Plus 及更高版本提供):
    • 前往 Products → Price Lists → Add Price List
    • 为你的“处理”价格创建价格列表
    • 将价格列表分配给特定客户组
  2. 将客户分配到相应客户组,从而划分为对照组/处理组
  3. 使用 BigCommerce 内置分析工具或带有自定义维度的 Google Analytics 跟踪转化

或者,使用 Intelligems for BigCommerce 自动管理访客分组。


自定义 / Headless

对于 Headless 商店前端,你需要实现会话分组、价格解析和转化跟踪:

import crypto from 'crypto';

// Deterministic variant assignment by session ID
function assignVariant(
  experimentId: string,
  sessionId: string,
  variants: { id: string; weight: number }[]  // weights must sum to 100
): string {
  const hash = parseInt(
    crypto.createHash('sha256')
      .update(`${experimentId}:${sessionId}`)
      .digest('hex')
      .slice(0, 8),
    16
  ) % 100;

  let cumulative = 0;
  for (const variant of variants) {
    cumulative += variant.weight;
    if (hash < cumulative) return variant.id;
  }
  return variants[variants.length - 1].id;
}

// Usage: get the price for a visitor
const variantId = assignVariant('exp_price_widget_pro', sessionId, [
  { id: 'control',   weight: 50 },  // $49.99
  { id: 'treatment', weight: 50 },  // $44.99
]);

const prices = { control: 4999, treatment: 4499 };  // cents
const priceForVisitor = prices[variantId];

跟踪转化并计算统计显著性:

// Two-proportion z-test for statistical significance
function zTest(
  controlConversions: number,
  controlVisitors: number,
  treatmentConversions: number,
  treatmentVisitors: number
): { pValue: number; significant: boolean } {
  const p1 = controlConversions / controlVisitors;
  const p2 = treatmentConversions / treatmentVisitors;
  const pPooled = (controlConversions + treatmentConversions) / (controlVisitors + treatmentVisitors);
  const se = Math.sqrt(pPooled * (1 - pPooled) * (1 / controlVisitors + 1 / treatmentVisitors));
  if (se === 0) return { pValue: 1, significant: false };
  const z = Math.abs((p2 - p1) / se);
  // Approximate p-value (two-tailed)
  const pValue = 2 * (1 - normalCDF(z));
  return { pValue, significant: pValue < 0.05 };
}

确定获胜方案后,使用平台的定价 API(Shopify Admin API、BigCommerce Catalog API)推送价格更新。

步骤 4:监控并结束实验

在实验期间跟踪以下指标:

指标查看位置
每位访客收入(RPV)Intelligems 控制面板;或根据订单数据计算
各变体的转化率你的 A/B 工具的分析数据
统计显著性(p 值)你的 A/B 工具;目标为 p < 0.05
各变体的样本量确保达到预先计算的最低值后再结束

仅在满足以下条件时才宣布胜出者:

  • 已达到预先计算的最低样本量(不得提前)
  • p 值低于 0.05
  • 实验至少运行了 7 天

宣布胜出者后,永久更新产品价格并结束实验。

最佳实践

  • 使用每位访客收入(RPV),而不只是转化率 — 降低价格可能提高转化率,但会减少收入;RPV 能全面反映情况
  • 要求使用固定分组 — 一旦会话被分配到某个变体,就始终显示相同的价格;价格不一致会损害信任并扭曲结果
  • 预先登记最低样本量 — 在实验开始前确定所需的转化次数;一旦 p < 0.05 就停止(窥探数据)会提高假阳性率
  • 排除现有客户 — 向现有客户展示低于其已支付价格的价格,会引发投诉并导致客户流失
  • 每个产品一次只运行一个实验 — 对同一产品运行重叠实验会产生交互效应,使结果难以解读
  • 促销期间暂停实验 — 全站促销或营销活动会混淆价格实验结果
  • 记录每笔订单的变体分配 — 将变体 ID 存储在订单元数据中,以便之后核查收入归因

常见问题

问题解决方案
访客刷新页面后看到不同价格确保你的 A/B 工具使用持久化 Cookie 或服务器端会话存储进行分组
窥探数据 — 首次出现 p < 0.05 时就停止预先登记最低转化次数(例如每个变体 200 次),达到后再检查显著性
价格更改只影响产品页面,不影响结账确保测试工具更改的是实际价格,而不只是显示的数字 — 在购物车和结账页面中进行验证
机器人流量抬高访客数并扭曲结果记录展示次数前过滤机器人流量;大多数 A/B 工具都内置了机器人过滤功能
实验在限时促销期间运行全站促销期间暂停所有价格实验

相关技能

  • @dynamic-pricing
  • @price-rules-engine
  • @coupon-management
  • @discount-engine
  • @demand-forecasting

评论

支持 Markdown