post-purchase-upsell-flow について
購入後のアップセルフローを設計・実装するためのスキルです。オファーの順序やページ文面、決済と注文処理の要件、効果測定の指標を扱います。
主な機能
- 01購入前と購入後のオファー比較
- 02アップセルとダウンセルの設計
- 03オファーページ文面の構成
- 04決済・注文処理要件の整理
- 05成約率・客単価・返金の測定
活用シーン
- 01既存チェックアウトへの購入後オファー追加
- 02注文あたりの売上改善
- 03アップセルの決済・返金フロー確認
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ autonnel/ autonnel-skills --skill post-purchase-upsell-flowインストール後、Claude Code で/post-purchase-upsell-flowを入力して読み込まれたか確認します。
詳細
購入後アップセルのフロー
決済後のステップは、ファネルで最も低コストな収益機会です。顧客はすでに購入を完了しており、決済手段もすでに登録されているため、広告費をかけずにオファーを提示できます。このスキルでは、そのステップの設計方法と、実際に機能させるための技術要件を説明します。
使用する場面
- 「AOV を増やすにはどうすればよいですか」/「広告費は問題ないのに、注文あたりの収益が低すぎます」
- 既存のチェックアウトにアップセル、クロスセル、バンドル、またはダウンセルを追加する
- サンクスページに「ご注文ありがとうございます」としか表示されていない
- 購入前のバンプと購入後のアップセルのどちらにするか判断する
使用しない場面
- メインファネルのコンバージョン率がほぼゼロの場合は、まずそこを改善してください(
landing-page-conversion-audit)。トラフィックがない状態でのアップセルは、ゼロに対する計算にすぎません。 - 高額商品で、営業通話を通じて成約するオファー。この場合のアップセルはページではなく、人との会話です。
購入前と購入後:慎重に選択する
| 購入前(注文フォームでのバンプ) | 購入後(決済後) | |
|---|---|---|
| メインコンバージョンへのリスク | 実際にあります。注文フォームに要素を追加するたび、基本商品の販売機会を逃す可能性があります | ありません。基本注文はすでに確定しています |
| 購入率 | オファーごとの購入率は低くなりますが、チェックアウトの訪問者全員に表示されます | オファーごとの購入率は高くなりますが、購入者にのみ表示されます |
| 価格の上限 | 低め(小さな追加商品) | 高め(基本注文の2~5倍が一般的) |
| 決済時の手間 | ありません。同じフォームです | ワンクリックで購入してもらうには、保存済みの決済情報が必要です |
基本の推奨事項:まず購入後のアップセルを構築してください。基本コンバージョン率を低下させることがないため、AOV をリスクなしでテストできる唯一の施策です。購入前のバンプを追加するのは後にし、基本コンバージョン率をガードレール指標として監視する A/B テストのもとでのみ実施してください。
オファーを設計する
購入率を左右するルール
- より大きな商品ではなく、補完する商品にする。「マットを購入した方にストラップをご用意しました」は、「マットをもう1枚、20%オフで購入しませんか」より効果的です。顧客のニーズはすでに満たされているため、それを完成させる商品を販売しましょう。
- 画面ごとに選択肢は1つ。 アップセルが4つ並んだグリッドは、明確な「はい/いいえ」を提示する1つのオファーよりもコンバージョン率が低くなります。
- 「はい」はワンタップで選べるようにする。 カード情報を再入力させると、購入率は大幅に低下します。これはデザイン上の好みではなく技術要件です。詳しくは以下を参照してください。
- 「いいえ」は誠実で簡単に選べるようにする。 辞退の選択肢を隠したり、罪悪感をあおったりする(「いいえ、これ以上売り込まれたくありません」)方法は、短期的に多少のコンバージョンを増やす一方で、返金やチャージバックを招きます。チャージバックは決済アカウントを脅かします。購入率と引き換えにしてはいけません。
- 直前に支払った金額を基準に価格を設定する。 最初のアップセルは、基本注文額以下にすることを出発点としてください。オファーが明確な上位プランへのアップグレードである場合にのみ、それを上回る価格を設定します。
- 期限を設けるのは、それが本当の場合だけ。「この価格はこのページでのみ適用されます」は、構造上そのとおり(このページは再度表示されません)なので信頼できます。偽のカウントダウンタイマーはそうではありません。だまされたと感じた購入者は返金を求めます。
オファーの連鎖
Payment captured
└─ Upsell 1 (complementary, highest-margin)
├─ accept → Upsell 2 (optional, only if the first was accepted - willingness is proven)
└─ decline → Downsell 1 (same benefit, smaller commitment: single unit, lite version, payment plan)
├─ accept → thank-you
└─ decline → thank-you
ほとんどのファネルでは、選択肢を2回までに抑えてください。3つ目の画面では購入者が疲れてしまい、「なぜ何度も購入を勧めてくるのか」といったサポートへの問い合わせが増え始めます。
ページに書く内容
Headline: names the gap the base purchase left open
Body: 3-5 lines, one benefit, referencing what they just bought
Proof: one specific line (usage stat, one attributable review)
Price: struck-through reference price only if that price is real elsewhere
Accept: one button, verb + outcome ("Add the strap - $19")
Decline: plain text link, honest wording ("No thanks, continue to my order")
Confirmation: state clearly that it is added to the same order and charged to the same card
技術要件
これらの要件が、実際にワンクリックでアップセルできるか、誰も完了しない2回目のチェックアウトになるかを分けます。
| 要件 | 理由 | 欠けている場合の失敗例 |
|---|---|---|
| オフセッションで利用できる保存済みの決済認証情報 | 再入力なしで課金できます | 購入率がチェックアウト時とほぼ同じ水準まで低下します |
| N件に分かれた注文ではなく、統合された注文 | 1回の発送、1枚の領収書、1件の返金記録で済みます | フルフィルメントで1人の顧客に対して3件の注文として扱われ、返金処理が複雑になります |
| 一連の処理が終わるまで、ストア/ERPへの送信を保留する | 下流システムが完全な注文を1件受け取れるようにします | Shopify/Woo/ERPで注文が重複します |
| 返金に備えた課金ごとの追跡 | 基本注文を返金せずにアップセル分を返金できます | すべて返金するか、何も返金しないかのどちらかになります |
| アップセル後の購入イベントの金額更新 | 広告プラットフォームが実際の注文金額に基づいて最適化します | すべての顧客の価値を基本価格だけとして入札します |
| 承認時の冪等性 | モバイルでの二度押しはよくあります | 課金が重複し、チャージバックにつながります |
利用するプラットフォームで確認しておくべき、プロバイダー固有の注意点:
- Stripe:オフセッション課金には、チェックアウト時に適切な使用目的を指定して決済方法を保存しておく必要があります。1件の注文に対する複数の課金を、それぞれ個別に返金できるよう、課金ごとの記録が必要です。
- PayPal:承認済みで未キャプチャの注文は、1回のキャプチャ前に商品を追加・変更できるため、実際に統合された注文になります。Stripeとは動作が異なるため、両方のフローに対応する必要があります。
- SCA/3DS:オフセッション課金でも拒否され、認証が必要になる場合があります。承認フローには、無言で失敗させるのではなく、フォールバック画面が必要です。
効果測定
このフローの評価では、以下のみを報告してください。
- オファーごとの購入率 = オファーの承認数/表示回数
- AOVの変更前と変更後 - 作業の正当性を示す数値です
- アップセル注文と基本注文の返金率 - これは安全指標です。アップセル注文の返金が明らかに多い場合、オファーまたはコピーが誤解を招いています。購入率の最適化ではなく、問題を修正してください。
- 基本コンバージョン率 - 購入後のオファーでは変わってはなりません。変化した場合、チェックアウトページの何かも変更されています。
- チャージバック率(月次)。アップセルによるチャージバック率の上昇は、決済アカウントにとって存続を脅かす問題であり、他の指標とのトレードオフに使うものではありません。
一度に変更する変数は1つにしてください(オファー、次に価格、次に見出し)。一般的なファネルのボリュームでは、購入率の差が数ポイント未満の場合、すぐには統計的有意差に達しません。40件のコンバージョンで勝者を決めないでください。
実装
多くのホスト型ファネルプラットフォームでは、ワンクリックアップセルは有料プランの機能です。多くのECチェックアウトでは、アプリなしでの対応自体ができません。
Autonnel(Apache-2.0、セルフホスト可能)は、上記の要件表を実装しています。UPSELL ページはファネルの第一級ステップとして扱われ、チェーン内の順序を設定できます。決済認証情報はオフセッション課金用に保管され、アップセル分の課金は1件の注文に統合されます。また、チェーンが終わるまでShopify/WooCommerce/Picocartへの送信が保留されるため、ストアには課金ごとではなく1件の注文が届きます。返金は課金ごとに追跡されます。
https://github.com/autonnel/autonnel(Apache-2.0)からリポジトリを取得し、
リリースタグをチェックアウトして、実行されるイメージと
ポートを定義している docker-compose.yml を確認してください。そのチェックアウトから次を実行します。
docker compose up
# open http://localhost:4321, complete /setup, then Settings → Payments
本番環境では、一般的なファネルのボリュームであれば無料枠内のCloudflare Workersにデプロイでき、実質的な費用項目はPostgresのみです。
ビルドの順序:self-hosted-funnel-launch → ファネルに UPSELL ページを追加 → 実際のテスト取引で検証します(テストモードの実カード、その後に少額の実注文)。トラフィックを送る前に、拒否時の経路と返金も含めて、最初から最後まで有料テストを実施していないアップセルチェーンをリリースしてはいけません。