הטמעת תקופות ניסיון ל-SaaS: הגדרה, מדדים, אונבורדינג
תקופות ניסיון הן סטנדרט ב-SaaS, אך ללא הגדרה נכונה, נטישה יכולה להגיע ל-90%. עבדנו על פרויקטים שבהם משתמשים עזבו לאחר תקופת הניסיון עקב חוסר באונבורדינג ותזכורות. תקופת ניסיון מיושמת היטב היא המפתח להשגת שיעור המרה מניסיון לתשלום של 20% ומעלה. בואו נצלול לפרטים הטכניים: בחירת הגישה, אינטגרציה עם שער התשלום, מדדים והודעות אוטומטיות.
איך להגדיר תקופת ניסיון עם כרטיס ב-Stripe?
השיטה האמינה ביותר היא לבקש כרטיס מראש ולהציע תקופת ניסיון חינמית. Stripe מאפשר זאת באמצעות payment_behavior: 'default_incomplete' ו-payment_method_collection: 'always' בסשן ה-Checkout. המשתמש מזין את הכרטיס שלו, אך החיובים מתרחשים רק לאחר תקופת הניסיון. הקוד שלהלן יוצר מנוי עם תקופת ניסיון של 14 יום ואיסוף מיידי של פרטי התשלום.
const subscription = await stripe.subscriptions.create({
customer: customerId,
items: [{ price: priceId }],
trial_period_days: 14,
payment_behavior: 'default_incomplete',
expand: ['latest_invoice.payment_intent'],
});
const session = await stripe.checkout.sessions.create({
mode: 'subscription',
customer: customerId,
line_items: [{ price: priceId, quantity: 1 }],
subscription_data: {
trial_period_days: 14,
},
payment_method_collection: 'always',
success_url: `${APP_URL}/dashboard?trial=started`,
cancel_url: `${APP_URL}/pricing`,
});
גישה זו עובדת: משתמש שכבר סיפק כרטיס נוטה הרבה יותר להישאר לאחר תקופת הניסיון. מניסיוננו, המרה עם כרטיס גבוהה ב-40% מאשר בלעדיו. זה נתמך על ידי נתוני הבנצ'מרק של Stripe: תקופות ניסיון עם כרטיס מעלות את ההמרה ב-30–50%. דרישת כרטיס בעת ההרשמה מניבה שיעורי המרה גבוהים פי 2–3 מתקופות ניסיון ללא כרטיס, ומשפרת משמעותית את משפך ההפעלה. עם זאת, שיטה זו יכולה להרתיע קהלים מסוימים, במיוחד בשלב מוקדם. עלות המנוי הממוצעת ל-B2B SaaS היא $100–500 לחודש, ולכן יש לשקול את הסיכון לאובדן לקוחות פוטנציאליים עקב דרישת כרטיס.
מתי לא לדרוש כרטיס?
למוצרים עם מחזור מכירה ארוך או חסם כניסה נמוך (למשל, כלים חינמיים), עדיף לוותר על דרישת הכרטיס. ההטמעה פשוטה יותר: שמירת תאריך הסיום במסד הנתונים ובדיקה במידלוור.
export async function startFreeTrial(userId: string): Promise<void> {
const trialEndsAt = new Date();
trialEndsAt.setDate(trialEndsAt.getDate() + 14);
await db.user.update({
where: { id: userId },
data: {
trialEndsAt,
trialUsed: true,
},
});
await sendTrialStartedEmail(userId, trialEndsAt);
}
export async function checkTrialAccess(userId: string): Promise<boolean> {
const user = await db.user.findUnique({
where: { id: userId },
select: {
trialEndsAt: true,
subscription: {
select: { status: true },
},
},
});
if (user?.subscription?.status === 'ACTIVE') return true;
if (user?.trialEndsAt && user.trialEndsAt > new Date()) return true;
return false;
}השוואת גישות
| קריטריון | ניסיון עם כרטיס | ניסיון ללא כרטיס |
|---|---|---|
| המרה | 25–40% | 10–20% |
| נטישה לאחר הניסיון | 30% | 60% |
| מספר הרשמות | נמוך ב-30% | גבוה ב-50% |
| מורכבות הטמעה | בינונית (Stripe) | נמוכה (DB) |
| סיכון הונאה | נמוך | גבוה |
שיעור המרה מניסיון לתשלום של 22% משמעותו $22,000 נוספים בהכנסות לכל 1,000 הרשמות — טיעון חזק להשקעה באונבורדינג. בנוסף, הגדרה נכונה של תקופת הניסיון יכולה לחסוך עד $10,000 בקמפיינים של ריטרגטינג לקוהורטה אחת. ההטמעה שלנו מתחילה ב-$2,500 ויכולה לייצר הכנסה שנתית נוספת של $22,000 לכל 1,000 התחלות ניסיון, תוך שיפור יחס ה-LTV/CAC שלכם.
תזכורות אוטומטיות ו-Win-back
גם עם אונבורדינג מושלם, חלק מהמשתמשים יעזבו. המשימה שלנו היא למזער הפסדים באמצעות הודעות אוטומטיות. הטמיעו cron job שבודק מדי יום משתמשים עם תקופות ניסיון שעומדות לפוג ושולח מיילים.
export async function sendTrialReminders() {
const now = new Date();
const threeDaysLeft = new Date(now.getTime() + 3 * 24 * 60 * 60 * 1000);
const trialEndingSoon = await db.user.findMany({
where: {
trialEndsAt: {
gte: now,
lte: threeDaysLeft,
},
subscription: null,
trialReminderSent: false,
}
});
for (const user of trialEndingSoon) {
await sendEmail({
to: user.email,
template: 'trial-ending-soon',
variables: {
daysLeft: Math.ceil((user.trialEndsAt!.getTime() - now.getTime()) / (1000 * 60 * 60 * 24)),
upgradeUrl: `${APP_URL}/settings/billing`,
}
});
await db.user.update({
where: { id: user.id },
data: { trialReminderSent: true }
});
}
const expired = await db.user.findMany({
where: {
trialEndsAt: { lt: now },
subscription: null,
trialExpiredEmailSent: false,
}
});
for (const user of expired) {
await sendEmail({
to: user.email,
template: 'trial-expired',
variables: {
upgradeUrl: `${APP_URL}/settings/billing`
}
});
await db.user.update({
where: { id: user.id },
data: { trialExpiredEmailSent: true }
});
}
}לאחר סיום תקופת הניסיון, הפעילו קמפיין win-back: הציעו הנחה של 20–30% על החודש הראשון, תנו שבוע של גישה פרימיום, או פשוט בקשו את הסיבה. צ'אט חי בימים האחרונים של תקופת הניסיון מעלה את ההמרה ב-15%.
איך באנר בממשק משתמש משפיע על ההמרה?
הראו למשתמש כמה ימים נותרו. אם תקופת הניסיון מסתיימת בעוד 3 ימים או פחות, צבעו את הבאנר באדום — זה יוצר תחושת דחיפות.
export function TrialBanner({
trialEndsAt,
daysLeft,
}: {
trialEndsAt: Date;
daysLeft: number;
}) {
const urgency = daysLeft <= 3;
return (
<div
className={`flex items-center justify-between px-4 py-2 text-sm ${
urgency
? 'bg-red-50 border-b border-red-200 text-red-800'
: 'bg-blue-50 border-b border-blue-200 text-blue-800'
}`}
>
<span>
{urgency
? `Триал заканчивается через ${daysLeft} ${
daysLeft === 1 ? 'день' : 'дня'
}!`
: `Пробный период активен ещё ${daysLeft} дней (до ${trialEndsAt.toLocaleDateString(
'ru-RU'
)})`}
</span>
<a
href="/settings/billing"
className={`ml-4 font-medium underline ${
urgency ? 'text-red-900' : 'text-blue-900'
}`}
>
Перейти на платный план
</a>
</div>
);
} מדדים מרכזיים למעקב
ללא מדדים, אי אפשר לשפר המרה. אנו משתמשים ב-PostHog ללכידת אירועים וניתוח לאחר מכן. KPIs מרכזיים:
- שיעור המרה מניסיון לתשלום — יעד של 15–25% ל-B2B SaaS. בפרויקטים שלנו, הממוצע הוא 22%.
- שיעור הפעלה בניסיון — אחוז תקופות הניסיון שבהן המשתמש ביצע פעולה מרכזית (למשל, העלאת הקובץ הראשון). יעד — 60%.
- זמן עד לפעולה מרכזית ראשונה — מתי המשתמש חווה ערך לראשונה. אידיאלית, בתוך 24 השעות הראשונות.
- נטישה בסוף תקופת הניסיון — כמה עוזבים ביום X. אם מעל 40%, בדקו את האונבורדינג שלכם.
| מדד | ערך יעד | הערה |
|---|---|---|
| שיעור המרה מניסיון לתשלום | 15–25% | הממוצע ל-B2B SaaS הוא 22% |
| שיעור הפעלה בניסיון | >60% | אחוז אלה שביצעו פעולה מרכזית |
| זמן עד לפעולה מרכזית ראשונה | <24 שעות | ככל שמוקדם יותר, כך ההמרה גבוהה יותר |
| נטישה בסוף תקופת הניסיון | <40% | אחרת, יש לשפר את האונבורדינג |
posthog.capture('trial_started', {
distinct_id: userId,
trial_days: 14,
plan: 'pro',
source: 'checkout',
});
posthog.capture('trial_converted', {
distinct_id: userId,
trial_day: daysFromTrialStart,
plan: 'pro',
billing_period: 'monthly',
}); תהליך הטמעה במפתח מוכן
אנו מגדירים את תקופת הניסיון תוך 2–3 ימי עסקים. שלבים:
- אנליטיקה — קביעת אורך תקופת הניסיון, האם לדרוש כרטיס, מדדי הצלחה.
- עיצוב — בחירת גישה (Stripe / DB), תכנון מערך ההודעות.
- הטמעה — כתיבת קוד מותאם לסטאק שלכם (React, Next.js, Node.js).
- בדיקות — אימות תרחישים: המרה מוצלחת, פקיעת ניסיון, דחיית כרטיס.
- פריסה וניטור — הגדרת PostHog או Amplitude, התראה על ירידות בהמרה.
צרו קשר להערכת פרויקט. קבלו ייעוץ לשיפור תהליך הניסיון שלכם — ננתח את הנטישה הנוכחית שלכם ונציע פתרונות ספציפיים.
חבילת התפוקות שלנו
אנו מספקים חבילה מלאה הכוללת:
- תיעוד על ארכיטקטורת מערכת הניסיון
- גישה למאגר הקוד (GitHub)
- הכשרה לצוות שלכם בעבודה עם מדדים
- תמיכה למשך 30 יום לאחר הפריסה
- המלצות להמשך אופטימיזציה של המרה
עם ניסיון של למעלה מ-8 שנים ו-50+ פרויקטים מוצלחים, יש לנו רקורד מוכח של שיפור המרת ניסיון בממוצע של 30%. המומחים המוסמכים שלנו מבטיחים אינטגרציה חלקה וקבלת החלטות מבוססת נתונים. בקשו הערכה אישית — נבחר את מערך הניסיון האופטימלי למוצר שלכם.







