---
title: "Виртуальные валюты"
description: "Определяйте внутриигровые валюты в Adapty, привязывайте их к продуктам для автоматического начисления кредитов и отслеживайте баланс каждого пользователя."
---

<CustomDocCardList ids={['virtual-currency-quickstart', 'create-virtual-currency', 'virtual-currency-balance']} />

Начисляйте пользователям виртуальную валюту — AI-токены, кредиты или монеты — при покупке продуктов или продлении подписок. Определите валюту один раз, привяжите её к нужным продуктам, и Adapty будет автоматически зачислять её каждому пользователю и отслеживать баланс. Приложение читает и расходует этот баланс через [серверный API](getting-started-with-server-side-api) — например, чтобы списывать токены за каждую генерацию.

## Как это работает \{#how-it-works\}

1. [Создайте виртуальную валюту](create-virtual-currency): Откройте **Products** и перейдите на вкладку **Virtual currency**. Нажмите **New virtual currency**. Задайте валюту: укажите код, название и при необходимости описание.
2. **Привяжите валюту к продуктам**: Свяжите валюту с разовыми или подписочными продуктами и укажите, сколько кредитов даёт каждая покупка.
3. **Кредиты начисляются автоматически**: Когда пользователь покупает привязанный разовый продукт или продлевает привязанную подписку, Adapty начисляет настроенное количество кредитов на его баланс.
4. **Читайте и списывайте баланс**: Приложение считывает баланс каждого пользователя и начисляет или списывает кредиты через серверный API.
5. **Отслеживайте каждое изменение**: Все изменения баланса отображаются в [профиле пользователя](virtual-currency-balance).

Полное руководство — от настройки валюты до списания кредитов через API — см. в [кратком руководстве по виртуальной валюте](virtual-currency-quickstart).

## Варианты использования \{#use-cases\}

| Тип приложения | Как использовать виртуальные валюты |
|----------------|--------------------------------------|
| **ИИ-приложения** (генерация изображений, видео или текста) | Списывайте кредиты за каждую генерацию. Включите ежемесячный лимит кредитов в подписку и продавайте наборы кредитов как разовые покупки. |
| **Приложения с короткими сериалами и видео** | Списывайте монеты за разблокировку эпизода. Предоставляйте подписчикам регулярный лимит монет и продавайте наборы монет как разовые покупки. |
| **Изучение языков и образование** | Давайте бесплатным пользователям ограниченный запас сердечек или жизней через серверный API. Предоставляйте больший лимит или полностью отключайте проверку баланса на платном тарифе. |
| **Мобильные игры** | Используйте мягкую и твёрдую валюту одновременно: начисляйте золото за игровые достижения через серверный API, продавайте кристаллы за деньги и конвертируйте одно в другое в рамках единой атомарной транзакции. |
| **Приложения для повышения продуктивности** | Тарифицируйте ресурсоёмкие действия — например, OCR или экспорт — с помощью кредитов. Давайте бесплатным пользователям небольшой лимит, предоставляйте больше по подписке и продавайте наборы кредитов для пакетной обработки. |

:::tip
Для подписочных начислений включите [истечение срока действия кредитов](create-virtual-currency#link-products). Когда неиспользованные кредиты сбрасываются при каждом обновлении, начисление остаётся весомым аргументом продолжать подписку, а активные пользователи покупают пакеты кредитов вместо того, чтобы расходовать накопленный запас.
:::

## Ограничения \{#limitations\}

- **Для доступа с нескольких устройств нужна идентификация**: баланс принадлежит одному профилю. Анонимный пользователь хранит свой баланс на том устройстве, где он его накопил, поэтому идентифицируйте пользователей, чтобы баланс был доступен на любом устройстве. См. [Балансы, профили и устройства](virtual-currency-balance#balances-profiles-and-devices).
- **Только на стороне сервера**: метода SDK для чтения или списания баланса пока нет, поэтому вашему приложению нужен бэкенд. Он читает балансы и начисляет или списывает кредиты через серверный API.
- **До 20 валют на приложение**: в одном приложении можно создать до 20 виртуальных валют.