カゴ落ちリカバリー

カゴ落ちリカバリー

インテリジェントな多段階メールシーケンスで失われた売上を取り戻します。このスキルはカゴ落ちを監視し、顧客を呼び戻すためのパーソナライズされたリカバリーメールを自動送信します。

概要

プロパティ
カテゴリメールマーケティング
ステータスStable
バージョン3.0
トリガーcart_abandoned, cart_recovered
平均リカバリー率10〜15%

仕組み

graph TD
A[Customer adds to cart] -->|Leaves site| B{Cart abandoned?}
B -->|No checkout in 30min| C[Trigger: cart_abandoned]
C --> D[Wait 1 hour]
D --> E{Purchased?}
E -->|No| F[Send Email #1]
F --> G[Wait 24 hours]
G --> H{Purchased?}
H -->|No| I[Send Email #2 + Discount]
I --> J[Wait 48 hours]
J --> K{Purchased?}
K -->|No| L[Send Email #3 - Final]
E -->|Yes| M[Stop sequence]
H -->|Yes| M
K -->|Yes| M
L --> N[Mark as lost]

設定

基本セットアップ

skills:
abandoned-cart:
enabled: true
# Cart abandonment detection
detection:
inactivity_threshold: 30m # Minutes before cart is abandoned
min_cart_value: 25 # Minimum cart value to trigger
exclude_logged_out: false # Include guest carts
# Email sequence
sequence:
- delay: 1h
template_id: 101
subject: "Forgot something?"
- delay: 24h
template_id: 102
subject: "Your cart is waiting"
include_discount: true
discount_percent: 10
- delay: 48h
template_id: 103
subject: "Last chance - items selling fast"
include_discount: true
discount_percent: 15
discount_expiry: 24h
# Stop conditions
stop_on:
- cart_recovered
- order_placed
- unsubscribe

高度な設定

skills:
abandoned-cart:
# Segment-specific timing
timing:
vip_customers:
first_email: 30m
discount_threshold: 0 # Always include discount
new_customers:
first_email: 2h
discount_threshold: 50 # Discount only if cart > $50
repeat_customers:
first_email: 1h
discount_threshold: 100
# A/B testing
ab_testing:
enabled: true
variants:
- name: "urgency"
subject: "Items in your cart are selling fast!"
weight: 50
- name: "friendly"
subject: "Did you forget something?"
weight: 50
# Exclusions
exclude:
- email_domain: ["temp-mail.com", "disposable.com"]
- customer_tag: ["wholesale", "staff"]
- product_category: ["gift-cards"]

トリガー

cart_abandoned

設定したしきい値の間カートが非アクティブだった場合に発火します。

イベントデータ

Parameter Type Description
cart_id required
string

カートの一意の識別子

customer_email required
string

顧客のメールアドレス

items required
array

name、price、quantity、image_urlを含むカート商品の配列

total required
number

カートの合計金額

currency optional
string

通貨コード(例: USD、EUR)

Default: USD
recovery_url required
string

カートをリカバリーするためのURL

abandoned_at required
datetime

カートが放棄された日時

ペイロード例:

{
"event": "cart_abandoned",
"timestamp": "2024-01-15T14:30:00Z",
"data": {
"cart_id": "cart_abc123",
"customer_email": "[email protected]",
"items": [
{
"id": "prod_123",
"name": "Premium Headphones",
"price": 199.99,
"quantity": 1,
"image_url": "https://cdn.example.com/headphones.jpg",
"variant": "Black"
},
{
"id": "prod_456",
"name": "Phone Case",
"price": 29.99,
"quantity": 2,
"image_url": "https://cdn.example.com/case.jpg"
}
],
"subtotal": 259.97,
"shipping": 0,
"tax": 20.80,
"total": 280.77,
"currency": "USD",
"recovery_url": "https://store.example.com/cart/recover/abc123",
"abandoned_at": "2024-01-15T14:00:00Z"
}
}

cart_recovered

顧客が戻ってチェックアウトを完了したときに発火します。

{
"event": "cart_recovered",
"timestamp": "2024-01-15T16:45:00Z",
"data": {
"cart_id": "cart_abc123",
"customer_email": "[email protected]",
"order_id": "order_789",
"recovered_via": "email_1", // Which email triggered recovery
"time_to_recover": "2h15m"
}
}

メールテンプレート

テンプレート変数

以下の変数をBrevoメールテンプレートで使用します。

変数説明
params.FIRSTNAME顧客の名(ファーストネーム)Jane
params.CART_URLカートリカバリーURLhttps://…
params.CART_TOTALフォーマット済みカート合計$280.77
params.ITEM_COUNT商品数3
params.ITEMS商品のJSON配列[…]
params.DISCOUNT_CODE生成された割引コードSAVE10-ABC
params.DISCOUNT_PERCENT割引率10
params.EXPIRY_DATE割引の有効期限Jan 17, 2024

推奨メールシーケンス

メール1(1時間後): やさしいリマインダー

  • 件名: “Forgot something, {{ params.FIRSTNAME }}?”
  • 目的: カート内容のリマインド
  • 割引はまだ付けない

メール2(24時間後): 緊急性とインセンティブを追加

  • 件名: “Your cart is waiting + 10% off”
  • 目的: 期間限定割引
  • 割引コードを含める

メール3(48時間後): 最終プッシュ

  • 件名: “Last chance - 15% off expires soon”
  • 目的: 希少性と強めの割引
  • 割引は24時間で失効

コード例

カゴ落ちスキルを有効化

import { TajoClient } from '@tajo/sdk';
const tajo = new TajoClient({
apiKey: process.env.TAJO_API_KEY,
brevoApiKey: process.env.BREVO_API_KEY
});
await tajo.skills.enable('abandoned-cart', {
detection: {
inactivityThreshold: '30m',
minCartValue: 25
},
sequence: [
{ delay: '1h', templateId: 101 },
{ delay: '24h', templateId: 102, discountPercent: 10 },
{ delay: '48h', templateId: 103, discountPercent: 15 }
]
});

カゴ落ちを追跡

// Call this when cart activity is detected
await tajo.events.track('cart_updated', {
cartId: 'cart_abc123',
customerEmail: '[email protected]',
items: cartItems,
total: 280.77
});
// Call this when customer leaves without checkout
// (typically from a beforeunload event or session timeout)
await tajo.events.track('cart_abandoned', {
cartId: 'cart_abc123',
customerEmail: '[email protected]',
items: cartItems,
total: 280.77,
recoveryUrl: 'https://store.example.com/cart/recover/abc123'
});

割引コードを生成

// Generate a unique discount code
const discount = await tajo.discounts.create({
type: 'percentage',
value: 10,
expiresIn: '7d',
usageLimit: 1,
prefix: 'SAVE10'
});
// discount.code => "SAVE10-ABC123"

アナリティクス

カゴ落ちリカバリーのパフォーマンスを追跡します。

指標説明
放棄率放棄されたカートの割合
リカバリー率リカバリーされた放棄カートの割合
リカバリー売上リカバリーカートから得た総売上
メール開封率リカバリーメールの開封率
メールCTRリカバリーメールのクリック率
リカバリーまでの時間放棄から購入までの平均時間
const stats = await tajo.skills.getStats('abandoned-cart', {
period: '30d'
});
console.log(stats);
// {
// abandonmentRate: 68.5,
// recoveryRate: 12.3,
// revenueRecovered: 15420.50,
// emailsSent: 2340,
// emailOpenRate: 45.2,
// emailCtr: 8.7,
// avgTimeToRecovery: '4h32m'
// }

ベストプラクティス

タイミングが重要

最初のメールは放棄から1〜2時間以内に送信してください。24時間を過ぎるとリカバリー率が大きく低下します。

  1. 件名をパーソナライズ - 顧客の名前とカート内容を使用
  2. カート内容を表示 - メールに商品画像を含める
  3. 緊急性を演出 - 在庫少やタイムセールに言及
  4. リカバリーを簡単に - ワンクリックのカート復元リンク
  5. シーケンスをテスト - タイミング、件名、割引をA/Bテスト
  6. 購読解除を尊重 - 購読解除時は即座にシーケンスを停止

関連スキル

次のステップ

  1. プラットフォームにカート追跡をセットアップします
  2. Brevoでメールテンプレートを作成します
  3. 割引コード連携を設定します
  4. ダッシュボードでパフォーマンスを監視します

Subscribe to updates

developer-docs

Drop your email or phone number — we'll send you what matters next.

AIアシスタント

こんにちは!ドキュメントについて何でもお聞きください。

Brevoで無料で始める