В этом руководстве показано, как использовать API статистики игроков для сервисов Google Play Games. Вы можете использовать API статистики игроков для получения данных об активности игрока в игре.
API статистики игроков позволяет адаптировать игровой процесс к конкретным сегментам игроков и различным этапам жизненного цикла игрока. Вы можете создавать индивидуальные решения для каждого сегмента игроков, основываясь на их прогрессе, расходах и активности. Например, вы можете использовать этот API для принятия превентивных мер, чтобы побудить менее активного игрока снова взаимодействовать с вашей игрой, например, отображая и продвигая новые внутриигровые предметы после аутентификации игрока.
API-интерфейсы можно найти в пакетах com.google.android.gms.games.stats и com.google.android.gms.games .
Прежде чем начать
Before you start to use the player stats API:
- Download and review the code sample .
- Ознакомьтесь с рекомендациями, описанными в Контрольном списке качества .
Get the player stats client
Для начала использования API статистики игроков ваша игра должна сначала получить объект PlayerStatsClient . Это можно сделать, вызвав метод PlayerStatsClient.getPlayersClient() и передав в него объект Activity.
Класс PlayerStatsClient использует класс Task из сервисов Google Play для асинхронного возврата результатов. Подробнее об использовании задач для управления многопоточной работой см. в руководстве разработчика по API задач .
Player stats basics
Вы можете использовать API статистики игроков для получения данных об активности игрока в игре. Типы данных об игроке, которые вы можете получить, включают:
Средняя продолжительность сессии : средняя продолжительность сессии игрока в минутах. Продолжительность сессии определяется временем аутентификации игрока в сервисах Google Play Games.
Количество дней с момента последней игры : приблизительное число дней, прошедших с момента последней игры игрока.
Количество покупок : приблизительное количество внутриигровых покупок, совершенных игроком.
Количество сессий : приблизительное количество сессий игрока. Количество сессий определяется числом раз, когда игрок авторизовался в сервисах Google Play Games.
Процентное значение количества сессий : приблизительное процентное значение количества сессий, сыгранных игроком, представленное в виде десятичного числа от 0 до 1 включительно. Это значение показывает, сколько сессий сыграл текущий игрок по сравнению с остальными игроками этой игры. Более высокие числа указывают на то, что игрок сыграл больше сессий.
Процент расходов : Приблизительный процент расходов игрока, выраженный в десятичном значении от 0 до 1 включительно. Это значение показывает, сколько текущий игрок потратил по сравнению с остальными игроками игры. Более высокие значения указывают на то, что игрок потратил больше.
Следующие типы данных об игроке устарели и всегда возвращают константу с неустановленным значением:
- Вероятность оттока : Прогнозируемая вероятность того, что игрок покинет сайт в течение следующего дня, выражается в виде десятичного значения от 0 (низкая вероятность оттока) до 1 (высокая вероятность оттока) включительно. Отток определяется как 7 дней бездействия.
- Вероятность траты : приблизительная вероятность того, что игрок решит потратить деньги в этой игре, выраженная в виде десятичного значения от 0 (низкая вероятность траты) до 1 (высокая вероятность траты) включительно.
- Общие расходы за следующие 28 дней : приблизительная общая ожидаемая сумма расходов игрока в этой игре за следующие 28 дней.
- Вероятность того, что игрок потратит много денег : приблизительная вероятность того, что в течение следующих 28 дней игрок потратит сумму, которая находится в 95-м процентиле или выше среди игроков данной игры. Это значение указывается в виде десятичной дроби от 0 (низкая вероятность стать игроком, тратящим много денег) до 1 (высокая вероятность стать игроком, тратящим много денег).
Retrieve player stats data
Чтобы получить статистические данные игрока, прошедшего аутентификацию, выполните следующие действия:
Вызовите метод
PlayerStatsClient.loadPlayerStats().Если вызов выполнен успешно, сервисы Google Play Games возвращают объект
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()); } } }); }
Tips for using player stats data
API Play Stats позволяет идентифицировать различные типы игроков на основе их активности и покупательского поведения, а также применять соответствующие стратегии для улучшения их игрового опыта.
В таблице ниже приведены примеры сегментов игроков и рекомендуемые стратегии взаимодействия:
| Player Segment | Engagement Strategy |
|---|---|
| Игроки, которые часто играют, проводят много игровых сессий и имеют высокий процент потраченных средств, но не играли в течение последней недели или более. |
|
| Игроки с высокой вовлеченностью, тратящие мало средств. |
|
| Игроки, тратящие большие суммы денег, демонстрируют признаки того, что достигли пика своей карьеры и стали играть реже. |
|
| Игроки с очень высокой или очень низкой вероятностью траты денег. |
|