Реалізація Trial-періоду для SaaS: налаштування, метрики, онбординг

Пробний період — стандарт для SaaS, але без правильного налаштування користувачі йдуть, не оцінивши продукт. Ми реалізуємо trial-період під ключ: налаштовуємо платіжний шлюз, онбординг та автоматичні сповіщення, щоб конвертувати користувачів у платників. Наша команда забезпечує стабільну роботу та подальшу підтримку, допомагаючи бізнесу зростати.

Розробка та обслуговування будь-яких видів сайтів:

Інформаційні сайти або веб-програми
Сайти візитки, landing page, корпоративні сайти, онлайн каталоги, квіз, промо-сайти, блоги, ресурси новин, інформаційні портали, форуми, агрегатори
Сайти або веб-програми електронної комерції
Інтернет-магазини, B2B-портали, маркетплейси, онлайн-обмінники, кешбек-сайти, біржі, дропшиппінг-платформи, парсери товарів
Веб-програми для управління бізнес-процесами
CRM-системи, ERP-системи, корпоративні портали, системи управління виробництвом, парсери інформації
Сайти або веб-програми електронних послуг
Дошки оголошень, онлайн-школи, онлайн-кінотеатри, конструктори сайтів, портали надання електронних послуг, відеохостинги, тематичні портали

Це лише деякі з технічних типів сайтів, з якими ми працюємо, і кожен із них може мати свої специфічні особливості та функціональність, а також бути адаптованим під конкретні потреби та цілі клієнта.

Послуги, які ми пропонуємо
Показано 1 з 1Усі 2062 послуг
Реалізація Trial-періоду для SaaS: налаштування, метрики, онбординг
Середній
~3-5 днів
Часті запитання

Тріал — стандарт для SaaS, але без правильного налаштування churn досягає 90%. Ми маємо понад 8 років досвіду та більше 50 реалізованих проєктів, і стикалися з випадками, де користувачі йшли після пробного періоду через відсутність онбордингу та нагадувань. Грамотна реалізація тріалу — ключ до конверсії trial-to-paid у 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% вища, ніж без неї — тобто тріал з карткою кращий в 1.4 раза. Це підтверджують дані Stripe: тріал з карткою підвищує конверсію на 30–50%. Однак такий підхід відлякує частину аудиторії, особливо на ранньому етапі. Середня вартість підписки на B2B SaaS становить $100–500 на місяць, тому ризик втратити потенційних клієнтів через вимогу картки варто враховувати. Наприклад, для стартапу з 1000 реєстрацій економія від зниження churn може сягати $10 000 на ретаргетингу.

Коли варто не вимагати картку?

Для продуктів із тривалим циклом угоди або низьким порогом входу (наприклад, безкоштовні інструменти) краще не вимагати картку. Реалізація простіша: зберігаємо дату закінчення в БД і перевіряємо в middleware.

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%
Churn після тріалу 30% 60%
Кількість реєстрацій Нижча на 30% Вища на 50%
Складність реалізації Середня (Stripe) Низька (БД)
Ризик шахрайства Низький Високий

Конверсія trial-to-paid на рівні 22% означає додатковий дохід у $22 000 на кожні 1000 реєстрацій — це вагомий аргумент для інвестицій в онбординг. Крім того, правильне налаштування тріалу може економити до $10 000 на ретаргетингових кампаніях для однієї когорти.

Автоматичні нагадування та win-back

Навіть з ідеальним онбордингом частина користувачів піде. Наше завдання — мінімізувати втрати через автоматичні сповіщення. Реалізуємо cron-задачу, яка щодня перевіряє користувачів з тріалом, що закінчується, і надсилає листи.

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% на перший місяць, дайте тиждень преміум-доступу або просто запитайте причину відмови. Live-чат в останні дні тріалу збільшує конверсію на 15%.

Як UI-банер впливає на конверсію?

Покажіть користувачу, скільки днів залишилося. Якщо тріал закінчується через 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(
              'uk-UA'
            )})`}
      </span>
      <a
        href="/settings/billing"
        className={`ml-4 font-medium underline ${
          urgency ? 'text-red-900' : 'text-blue-900'
        }`}
      >
        Перейти на платний план
      </a>
    </div>
  );
}

Ключові метрики для відстеження

Без метрик неможливо покращити конверсію. Ми використовуємо PostHog для захоплення подій та подальшого аналізу (гарантуємо налаштування за 1 день). Ключові показники:

  • Trial-to-Paid Conversion Rate — мета 15–25% для B2B SaaS. У наших проєктах середнє значення 22%. Це в 2,2 раза вище, ніж у 10% компаній, які не використовують онбординг.
  • Trial Activation Rate — відсоток тріалів, де користувач виконав ключову дію (наприклад, завантажив перший файл). Мішень — 60%.
  • Time to First Key Action — коли користувач вперше відчув цінність. Ідеально — в перші 24 години.
  • Churn at Trial End — скільки йде в день X. Якщо вище 40% — перевіряйте онбординг.
Метрика Цільове значення Коментар
Trial-to-Paid Conversion Rate 15–25% Середнє по B2B SaaS — 22%
Trial Activation Rate >60% Частка виконавших ключову дію
Time to First Key Action <24 години Чим раніше, тим вища конверсія
Churn at Trial End <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 робочі дні. Етапи:

  1. Аналітика — визначаємо тривалість тріалу, чи вимагати картку, метрики успіху.
  2. Проєктування — вибираємо підхід (Stripe / БД), проєктуємо схему сповіщень.
  3. Реалізація — пишемо код з урахуванням вашого стеку (React, Next.js, Node.js).
  4. Тестування — перевіряємо сценарії: успішна конверсія, закінчення тріалу, відмова від картки.
  5. Деплой та моніторинг — налаштовуємо PostHog або Amplitude, alert при падінні конверсії.

Зв'яжіться з нами для оцінки вашого проєкту. Отримайте консультацію щодо покращення тріал-процесу — ми проаналізуємо ваш поточний churn і запропонуємо конкретні рішення. Гарантуємо сертифікований підхід та багаторічний досвід.

Що входить в роботу

Ми надаємо повний комплект:

  • Документація з архітектури тріал-системи
  • Доступ до репозиторію з кодом (GitHub)
  • Навчання вашої команди роботі з метриками
  • Підтримка протягом 30 днів після деплою
  • Рекомендації щодо подальшої оптимізації конверсії

Замовте індивідуальний розрахунок — ми підберемо оптимальну схему тріалу для вашого продукту.

Наші компетенції:

Останні роботи

  • Розробка сайту компанії B2B ADVANCE
    Розробка сайту компанії B2B ADVANCE
    1542
  • Розробка веб-додатків для компанії FEEDME
    Розробка веб-додатків для компанії FEEDME
    1394
  • Розробка веб-сайту для компанії БЕЛФІНГРУП
    Розробка веб-сайту для компанії БЕЛФІНГРУП
    1081
  • Розробка інтернет магазину для компанії FURNORO
    Розробка інтернет магазину для компанії FURNORO
    1369
  • Розробка веб-додатків для компанії Enviok
    Розробка веб-додатків для компанії Enviok
    1142
  • Розробка веб-сайту для компанії ФІКСПЕР
    Розробка веб-сайту для компанії ФІКСПЕР
    1060