Баланс виртуальной валюты
Основная статья: Виртуальные валюты
В каждом профиле пользователя в Profiles/CRM отображается баланс виртуальной валюты и история всех изменений.
Просмотр балансов в профиле пользователя

Откройте профиль пользователя. Карточка Virtual currency отображает все валюты, которыми владеет пользователь.
Каждая строка содержит:
- Код валюты, например
COINS. - Текущий баланс в виде целого числа.
Балансы обновляются по мере того, как пользователь зарабатывает, тратит или получает кредиты. Баланс не может опуститься ниже 0: транзакция, пытающаяся потратить больше, чем есть у пользователя, завершается ошибкой insufficient_balance и ничего не меняет. У профиля без балансов отображается пустая карточка.
Чтобы считать баланс из собственного кода, вызовите List virtual currency balances в серверном API.
Просмотр изменений баланса в истории событий
Каждое изменение баланса отображается в истории событий профиля, начиная с самого последнего. Каждая запись содержит название изменения и перечень затронутых валют.
В истории отображается три типа событий виртуальной валюты:
- Virtual currency credited: покупка, продление или начало пробного периода начислили кредиты.
- Virtual currency transaction: серверный вызов API пополнил или списал баланс.
- Virtual currency expired: срочные кредиты обнулились в конце расчётного периода или после окончания подписки.
Для каждой изменённой валюты в записи указывается:
- Virtual currency: Название и код валюты, например
Gold Coins (COINS). - Amount: Изменение со знаком — положительное для пополнения, отрицательное для списания.
- Balance after: Баланс валюты после применения изменения.
Одно событие может изменить несколько валют одновременно — например, одна транзакция списывает одну валюту и пополняет другую для конвертации между ними.
Балансы, профили и устройства
Баланс всегда принадлежит ровно одному профилю и никогда не переходит к другому. Adapty не делится балансами между профилями и не переносит их — в отличие от возможности делиться уровнями доступа между аккаунтами.
На практике это означает:
- Идентифицированные пользователи: идентификатор пользователя всегда указывает на один и тот же профиль, поэтому пользователь видит одинаковый баланс на каждом устройстве, где выполнен вход.
- Анонимные пользователи: анонимный профиль может накапливать и тратить кредиты, но существует только на одном устройстве. Когда тот же пользователь открывает приложение на другом устройстве без входа в систему, Adapty создаёт новый анонимный профиль с нулевым балансом.
Чтобы запустить систему виртуальной валюты на разных устройствах, идентифицируйте пользователей. Это можно сделать в коде приложения через SDK (см. Идентификация пользователей в быстром старте) или на стороне бэкенда через серверный API.
Позднее определение пользователя имеет свою особенность: если пользователь получает кредиты анонимно, а затем входит с customer user ID, который уже принадлежит другому профилю, устройство переключится на тот профиль с его балансом. Кредиты, накопленные анонимно, останутся на старом профиле и станут недоступны. Если customer user ID новый, он привязывается к текущему профилю, и пользователь сохраняет баланс. Для надёжности идентифицируйте пользователей до того, как они смогут зарабатывать или покупать кредиты.
В вызовах server-side API идентифицируйте профиль с помощью заголовка adapty-profile-id или adapty-customer-user-id — оба указывают на один профиль. Для анонимных профилей используйте adapty-profile-id.