referral-viral-loops について
referral-viral-loops は、EC や SaaS チーム向けの紹介プログラム導入ガイドです。プラットフォーム選定、報酬設計、告知、効果測定を扱い、成果の帰属や不正対策、独自実装の要点も紹介します。
主な機能
- 01紹介プラットフォームと用途の比較
- 02紹介者と新規顧客への報酬設計
- 03紹介リンクの生成とコンバージョン追跡
- 04不正対策の設定と成果測定
活用シーン
- 01紹介を追跡できていない店舗でプログラムを構築
- 02手動運用の紹介施策をプラットフォームで拡張
- 03双方への報酬と注文の適用条件を設計
- 04K ファクターを算出して紹介転換を改善
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ finsilabs/ awesome-ecommerce-skills --skill referral-viral-loopsインストール後、Claude Code で/referral-viral-loopsを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
tile.jsonevals/fraud-detection-and-viral-coefficient-an/criteria.jsontask.mdevals/referral-attribution-and-reward-fulfillm/criteria.jsontask.mdevals/referral-link-generation-and-data-model/criteria.jsontask.md詳細
紹介によるバイラルループ
概要
口コミによる紹介プログラムは、顧客獲得コストが最も低いチャネルの一つです。紹介された顧客は、紹介されていない顧客より継続率が37%高く、LTVも25%高くなります。紹介者と新規顧客の双方に特典を提供する両面紹介は、通常、片側のみへの特典より2~3倍高い成果を上げます。紹介専用アプリ(ReferralCandy、Friendbuy、Yotpo Loyalty)を使えば、カスタムコードを作成せずに、リンクの生成、特典の提供、不正利用の防止に対応できます。
このスキルを使用する場面
- CACが高く、口コミが十分に活用されていない場合
- 既存顧客が友人を頻繁に非公式に紹介しているものの、紹介を追跡して特典を提供する仕組みがない場合
- 手動で運用してきた紹介プログラムを拡大する必要がある場合
- Kファクターを計算し、プログラムのバイラル係数を最適化したい場合
主な手順
ステップ1:適切な紹介プラットフォームを選ぶ
| プラットフォーム | 最適な用途 | Shopify | WooCommerce | BigCommerce | 価格 |
|---|---|---|---|---|---|
| ReferralCandy | 簡単な設定、主要プラットフォーム全般 | App Store | プラグイン | App Marketplace | $59+/mo |
| Friendbuy | 中堅DTC、特典のA/Bテスト | App Store | JS経由 | JS経由 | $249+/mo |
| Yotpo Loyalty | すでにYotpoを利用しているブランド | App Store | 限定的 | App Marketplace | $199+/mo |
| Smile.io Referrals | すでにSmile.ioをロイヤルティプログラムに利用している場合 | App Store | プラグイン | App Marketplace | $49/moプランに含まれる |
| Rewardful | Stripe経由のSaaSとEC | Stripe経由 | Stripe経由 | Stripe経由 | $49+/mo |
| AffiliateWP | WooCommerceにネイティブ対応 | — | プラグイン | — | $149/yr |
おすすめ: ほとんどのストアにはReferralCandyをお使いください。すぐに設定でき、両面特典が標準で用意され、不正検知機能も含まれており、価格も競争力があります。すでにSmile.ioをロイヤルティプログラムに利用している場合は、別のアプリを追加するのではなく、Smile.ioの紹介モジュールを追加してください。
ステップ2:紹介プログラムの仕組みを設計する
何かをインストールする前に、特典の仕組みを決めます。
両面特典(おすすめ):
- 紹介者への特典:紹介が成立するごとに$10分のストアクレジット(返金期間終了後に付与)
- 被紹介者への特典(新規顧客):初回注文が15%オフ、最低注文金額なし
片面特典(よりシンプルですが、共有率は低くなります):
- 紹介者への特典のみ:$15分のストアクレジット
紹介成立に必要な最低注文金額: $30(少額注文を利用した不正を防止)
返金期間: 被紹介者の注文から7~14日後に紹介者への特典を付与します。これにより、返品された注文に対する特典の付与を防げます。
ステップ3:紹介プログラムを設定する
ReferralCandyを使ったShopifyでの設定
- Shopify App StoreからReferralCandyをインストールします
- ReferralCandy → Program → Rewardsに移動し、次のように設定します。
- 紹介者への特典:「$10分のストアクレジット」(またはPayPal経由で現金を付与)
- 被紹介者への特典:「初回注文が15%オフ」(ReferralCandyが紹介リンクごとに固有の割引コードを作成します)
- 最低注文金額:$30
- ReferralCandy → Program → Fraud Settingsに移動し、次の機能を有効にします。
- 自己紹介をブロック
- 同一IPからのコンバージョンを確認対象としてフラグ付け
- 顧客1人あたりの月間紹介数の上限を設定(10件)
- ReferralCandy → Integrationsに移動し、Klaviyoを接続します。これにより、紹介イベントをきっかけにKlaviyoのフローを実行できます。
- ReferralCandyは次の処理を自動的に行います。
- 顧客ごとに固有の紹介リンクを生成(例:
yourstore.com/?via=sarah123) - 購入後ページに紹介ウィジェットを表示
- 購入後に新規顧客へ紹介案内メールを送信
- 紹介者ごとにクリック数、登録数、コンバージョン数を追跡
- 顧客ごとに固有の紹介リンクを生成(例:
- ReferralCandy → Promoteに移動し、アカウントダッシュボードと購入後の確認ページに紹介ウィジェットを追加します
Smile.io を利用した Shopify の紹介プログラム
- Smile.io → Programs → Referrals に移動します
- 紹介プログラムを有効にして、以下を設定します。
- 紹介者への特典:ポイントまたはストアクレジット
- 紹介された人への特典:紹介リンクをクリックしたときに自動送信される割引コード
- Smile.io → Rewards Panel に移動し、ロイヤルティウィジェット内での紹介リンクの表示方法をカスタマイズします
AffiliateWP を利用した WooCommerce
- WooCommerce マーケットプレイスから AffiliateWP(年額 $149)をインストールします
- AffiliateWP → Settings → General に移動し、以下を設定します。
- コミッション率:固定額($10)または割合
- Cookie の有効期限:30 日(紹介元を特定する期間)
- AffiliateWP → Affiliates → Add Affiliate に移動して顧客を手動で追加するか、セルフ登録を有効にして顧客がアフィリエイトとして登録できるようにします
- AffiliateWP は紹介者ごとに固有のアフィリエイトリンクを生成します:
yourstore.com/?ref=AFFILIATE_ID - 紹介された人への割引には、WooCommerce のクーポンコードを作成し、紹介プログラムにリンクします(AffiliateWP にはクーポン連携アドオンがあります)
- 不正利用対策として、AffiliateWP → Settings → Advanced に移動し、IP アドレスによる重複検出を有効にします
代替案: よりシンプルな双方特典型の設定には、WooCommerce 用の ReferralCandy(プラグイン)をインストールします。
ReferralCandy を利用した BigCommerce
- BigCommerce App Marketplace から ReferralCandy をインストールします
- 設定方法は上記の Shopify の設定と同じです
- ReferralCandy は BigCommerce の標準クーポンシステムと連携し、紹介された人への割引コードを発行します
カスタム/ヘッドレス
ゼロから構築するのではなく、Friendbuy や Rewardful などの専用紹介 API プラットフォームを使用します。以下の機能を利用できます。
- 固有の紹介リンクの生成
- Cookie ベースおよび URL ベースのアトリビューション
- 紹介によるコンバージョンの Webhook イベント
- 不正利用のシグナル API
カスタム構築が必要な場合、主要な構成要素は次のとおりです。
// Generate a unique referral code per customer
async function generateReferralCode(customerId: string): Promise<string> {
const existing = await db.referralLinks.findOne({ where: { customerId } });
if (existing) return existing.code;
const customer = await db.customers.findById(customerId);
const baseCode = customer.firstName.replace(/[^a-zA-Z]/g, '').toUpperCase().slice(0, 6);
let code = `${baseCode}${Math.floor(100 + Math.random() * 900)}`;
while (await db.referralLinks.findOne({ where: { code } })) {
code = `${baseCode}${Math.floor(100 + Math.random() * 900)}`;
}
await db.referralLinks.create({ customerId, code, clicks: 0, conversions: 0 });
return code;
}
// Attribute referral on order completion — check cookie for referral code
async function attributeReferral(order: Order, referralCode: string | null) {
if (!referralCode) return;
const referralLink = await db.referralLinks.findByCode(referralCode);
if (!referralLink) return;
if (referralLink.customerId === order.customerId) return; // no self-referral
// Check if this email has already been referred (one referral per email per program)
const existing = await db.referralConversions.findOne({ where: { refereeEmail: order.customerEmail } });
if (existing) return;
await db.referralConversions.create({
referralLinkId: referralLink.id,
referrerId: referralLink.customerId,
refereeEmail: order.customerEmail,
orderId: order.id,
orderValue: order.subtotal,
status: 'pending', // set to 'approved' after 7-day refund window
});
// Grant referee discount immediately (e.g., store credit or discount code)
// Schedule referrer reward 7 days after order — after refund window
}
ステップ 4:紹介プログラムを宣伝する
トラフィックが最も多い掲載場所:
- 購入後の確認ページ — チェックアウト直後に紹介ウィジェットを追加します(購入意欲が最も高いタイミングです)
- トランザクションメール — Klaviyo のすべての注文確認メールに「$10 を贈って、$10 を獲得」というブロックを追加します
- アカウントダッシュボード — 顧客の紹介リンクと統計情報(紹介した友人の数、獲得額)を表示します
- 同梱物 — 顧客の紹介 URL を印刷または手書きしたカードを同梱します
ReferralCandy では、Promote → Post-Purchase Popup に移動して自動ウィジェットを有効にし、Promote → Emails に移動して紹介案内メールを設定します。
ステップ 5:プログラムのパフォーマンスを測定する
| 指標 | 目標 | 確認場所 |
|---|---|---|
| シェア率(紹介を行った顧客の割合) | > 5% | ReferralCandy ダッシュボード |
| 紹介コンバージョン率 | クリックの > 15% がコンバージョン | アプリの分析 |
| K ファクター(シェア率 × コンバージョン率) | 0.3~0.5 = 良好、1.0 以上 = バイラル | シェア率 × コンバージョン率から算出 |
| 紹介された顧客による売上 | 新規顧客の総売上の 10~20% | アプリの分析 |
| 紹介経由の顧客獲得単価 | 通常、有料 CAC より 40~60% 低い | 特典コスト ÷ 紹介注文数 |
ベストプラクティス
- 片方だけに報酬を与えるより、紹介者と被紹介者の両方に報酬を与えるほうが効果的です — 紹介者だけに報酬を与える場合と比べて、両方に報酬を与えるとシェア率が2~3倍になります
- 購入後の確認ページに紹介ウィジェットを表示します — ここは購入意欲が最も高いタイミングです。購入体験に満足したばかりのお客様は、最も共有してくれる可能性が高いです
- 紹介者への報酬は7~14日後に付与します — 返金期間が過ぎるまで報酬の付与を待ちます。返品された注文で不正利用者が報酬を得るのを防げます
- 紹介者への報酬には割引コードよりストアクレジットを使います — ストアクレジットを付与すると、紹介者を自社ブランドに呼び戻せます。割引率による値引きよりも、お得感が高くなります
- 顧客ごとに月間上限を設定します — 正規の顧客であっても、報酬を無制限に獲得できないようにします。月に5~10件の紹介を上限に設定してください
- メッセージがあらかじめ入力されたWhatsAppまたはSMSの共有ボタンを追加します — リンクを手動でコピーして貼り付けるお客様は多くありません。ワンタップで共有できるボタンを設置すると、シェア率が2倍になります
よくある落とし穴
| 問題 | 解決策 |
|---|---|
| 自己紹介による不正利用(お客様が新しいアカウントを作成して、被紹介者向けの割引を獲得する) | IPベースの重複検出を有効にします。同じIPからのコンバージョンにフラグを付け、手動で確認します(ReferralCandyにはこの機能が組み込まれています) |
| 紹介コードがクーポンサイトで公開される | 紹介者ごとに固有のコードを発行し、大量共有を検出できるようにします。ReferralCandyは共有の頻度を自動的に監視します |
| 注文の発送前に紹介者へ報酬を付与する | 紹介者への報酬は必ず7日以上遅らせます。アプリに組み込まれている報酬付与の遅延設定を使用します |
| 報酬が魅力的でもシェア率が低い | 手間を減らします。共有メッセージをあらかじめ入力しておき、購入直後に紹介ウィジェットを表示します |
| 紹介されたお客様がコンバージョンしない | 被紹介者向けの特典を増やします。初回注文のコンバージョンでは、通常10%オフより15%オフのほうが効果的です |
関連スキル
- @loyalty-program-optimization
- @affiliate-program
- @customer-retention-engine
- @email-marketing-automation
- @first-party-data-collection