В этом руководстве показано, как использовать API статистики игроков для игровых сервисов Google Play. Вы можете использовать API статистики игроков для получения данных об игровой активности игрока.
API статистики игроков позволяет адаптировать игровой опыт к определённым сегментам игроков и разным этапам жизненного цикла игрока. Вы можете создавать индивидуальные игровые возможности для каждого сегмента, учитывая их прогресс, расходы и вовлечённость. Например, вы можете использовать этот API для принятия проактивных мер, чтобы побудить менее активных игроков вернуться в игру, например, показывая и продвигая новые игровые предметы после аутентификации.
API можно найти в пакетах com.google.android.gms.games.stats
и com.google.android.gms.games
.
Прежде чем начать
Прежде чем начать использовать API статистики игроков:
- Загрузите и просмотрите пример кода .
- Ознакомьтесь с рекомендациями, описанными в Контрольном списке качества .
Получить клиент статистики игрока
Чтобы начать использовать API статистики игроков, ваша игра должна сначала получить объект PlayerStatsClient
. Это можно сделать, вызвав метод PlayerStatsClient.getPlayersClient()
и передав ему Activity.
Класс PlayerStatsClient
использует класс Task
сервисов Google Play для асинхронного возврата результатов. Подробнее об использовании задач для управления потоковой работой см. в руководстве разработчика Tasks API .
Основы статистики игроков
Вы можете использовать API статистики игроков для получения данных об их игровой активности. Доступны следующие типы данных об игроках:
Средняя продолжительность сеанса : средняя продолжительность сеанса игрока в минутах. Продолжительность сеанса определяется временем, необходимым для аутентификации игрока в сервисах Google Play Игр.
Дней с момента последней игры : приблизительное количество дней с момента последней игры игрока.
Количество покупок : приблизительное количество покупок внутри приложения для игрока.
Количество сеансов : приблизительное количество сеансов игрока. Сеансы определяются количеством раз, когда игрок аутентифицировался в сервисах Google Play Игр.
Процентиль сеанса : приблизительное процентиль сеансов игрока, представленное десятичным числом от 0 до 1 включительно. Это значение показывает, сколько сеансов сыграл текущий игрок по сравнению с остальными игроками этой игры. Более высокие значения указывают на большее количество сеансов, сыгранных этим игроком.
Процентиль расходов : приблизительный процентиль расходов игрока, представленный в виде десятичного числа от 0 до 1 включительно. Это значение показывает, сколько средств потратил текущий игрок по сравнению с остальными игроками в этой игре. Более высокие значения указывают на то, что этот игрок потратил больше.
Следующие типы данных об игроках устарели и всегда возвращают неустановленное константное значение:
- Вероятность оттока : прогноз того, уйдёт ли игрок в следующий день, представленный десятичным числом от 0 (низкая вероятность оттока) до 1 (высокая вероятность оттока) включительно. Отток определяется как 7 дней бездействия.
- Вероятность траты : приблизительная вероятность того, что игрок решит потратить деньги в этой игре, заданная как десятичное значение от 0 (низкая вероятность траты) до 1 (высокая вероятность траты) включительно.
- Общие расходы за следующие 28 дней : примерные общие ожидаемые расходы игрока за следующие 28 дней в этой игре.
- Вероятность стать игроком, тратящим много денег : приблизительная вероятность того, что в течение следующих 28 дней игрок потратит сумму, соответствующую 95-му процентилю или выше от общей базы игроков этой игры. Задаётся десятичным значением от 0 (низкая вероятность стать игроком, тратящим много денег) до 1 (высокая вероятность стать игроком, тратящим много денег).
Получить данные статистики игрока
Чтобы получить данные статистики игрока для аутентифицированного игрока, выполните следующие действия:
Вызовите метод
PlayerStatsClient.loadPlayerStats()
.Если вызов успешен, игровые сервисы Google Play возвращают объект
Task
, который асинхронно загружает объектPlayerStats
. Используйте методы этого объекта для получения данных о действиях аутентифицированного игрока в вашем приложении.
Вот пример:
public void checkPlayerStats() { PlayGames.getPlayerStatsClient(this) .loadPlayerStats(true) .addOnCompleteListener(new OnCompleteListener<AnnotatedData<PlayerStats>>() { @Override public void onComplete(@NonNull Task<AnnotatedData<PlayerStats>> task) { if (task.isSuccessful()) { // Check for cached data. if (task.getResult().isStale()) { Log.d(TAG, "using cached data"); } PlayerStats stats = task.getResult().get(); if (stats != null) { Log.d(TAG, "Player stats loaded"); if (stats.getDaysSinceLastPlayed() > 7) { Log.d(TAG, "It's been longer than a week"); } if (stats.getNumberOfSessions() > 1000) { Log.d(TAG, "Veteran player"); } if (stats.getChurnProbability() == 1) { Log.d(TAG, "Player is at high risk of churn"); } } } else { int status = CommonStatusCodes.DEVELOPER_ERROR; if (task.getException() instanceof ApiException) { status = ((ApiException) task.getException()).getStatusCode(); } Log.d(TAG, "Failed to fetch Stats Data status: " + status + ": " + task.getException()); } } }); }
Советы по использованию данных статистики игроков
API Play Stats позволяет определять различные типы игроков на основе их вовлеченности и поведения при расходах, а также применять соответствующие стратегии для улучшения их игрового опыта.
В следующей таблице приведены некоторые примеры сегментов игроков и рекомендуемые стратегии взаимодействия:
Сегмент игрока | Стратегия взаимодействия |
---|---|
Постоянные игроки с большим количеством сессий и хорошим процентилем расходов, но не игравшие в течение последней недели или дольше. |
|
Высокоактивные игроки с низким процентилем расходов. |
|
Игроки с высокими расходами демонстрируют признаки того, что достигли пика и начинают играть реже. |
|
Игроки с очень высокой или очень низкой вероятностью трат. |
|