API статистики игроков позволяет адаптировать игровой процесс к определенным сегментам игроков и различным этапам их жизненного цикла. Вы можете создать индивидуальный опыт для каждого сегмента игроков в зависимости от их прогресса, расходов и вовлеченности. Например, вы можете использовать этот API, чтобы предпринять упреждающие действия, чтобы побудить менее активного игрока повторно участвовать в вашей игре, например, отображая и рекламируя новые внутриигровые предметы, когда игрок входит в систему.
В этом руководстве показано, как использовать API статистики игроков в играх, использующих игровые сервисы Google Play. API можно найти в пакетах com.google.android.gms.games.stats
и com.google.android.gms.games
.
Прежде чем вы начнете
Прежде чем вы начнете использовать API статистики игроков:
- Загрузите и просмотрите пример кода .
- Ознакомьтесь с рекомендациями, описанными в Контрольном списке качества .
Получение клиента статистики игрока
Чтобы начать использовать API статистики игрока, ваша игра должна сначала получить объект PlayerStatsClient
. Вы можете сделать это, вызвав метод Games.getPlayerStatsClient()
и передав действие и GoogleSignInAccount
для текущего игрока. Чтобы узнать, как получить информацию об учетной записи игрока, см. раздел Вход в игры для Android .
Основы статистики игроков
Вы можете использовать API статистики игрока для получения данных об активности игрока в игре. Типы данных игрока, которые вы можете получить, включают:
Средняя продолжительность сеанса : средняя продолжительность сеанса игрока в минутах. Продолжительность сеанса определяется временем, когда игрок вошел в сервисы Google Play Games.
Дней с момента последней игры : приблизительное количество дней с момента последней игры игрока.
Количество покупок : приблизительное количество покупок в приложении для игрока.
Количество сессий : примерное количество сессий игрока. Сеансы определяются по количеству входов игрока в сервисы Google Play Games.
Процентиль сеанса : приблизительный процентиль сеанса для игрока, представленный в виде десятичного значения от 0 до 1 включительно. Это значение указывает, сколько сессий сыграл текущий игрок по сравнению с остальными игроками этой игры. Более высокие числа означают, что этот игрок сыграл больше сессий.
Процентиль расходов : приблизительный процентиль расходов игрока, представленный в виде десятичного числа от 0 до 1 включительно. Это значение указывает, сколько текущий игрок потратил по сравнению с остальными игроками этой игры. Более высокие числа означают, что этот игрок потратил больше.
Следующие типы данных проигрывателя устарели и всегда возвращают неустановленное значение константы:
- Вероятность оттока : прогноз того, уйдет ли игрок на следующий день, представленный в виде десятичного значения от 0 (низкая вероятность оттока) до 1 (высокая вероятность оттока) включительно. Отток определяется как 7 дней бездействия.
- Вероятность траты : приблизительная вероятность того, что игрок решит потратить деньги в этой игре, выраженная в виде десятичного числа от 0 (низкая вероятность траты) до 1 (высокая вероятность траты) включительно.
- Всего за следующие 28 дней : приблизительная общая ожидаемая сумма, которую игрок потратит в течение следующих 28 дней в этой игре.
- Вероятность больших трат : приблизительная вероятность того, что в течение следующих 28 дней игрок потратит сумму, которая находится в 95-м процентиле или выше от базы игроков этой игры. Это дается в виде десятичного значения от 0 (низкая вероятность стать высокооплачиваемым) до 1 (высокая вероятность стать высокооплачиваемым).
Получение данных статистики игрока
Чтобы получить данные статистики игрока, вошедшего в систему, выполните следующие действия:
- Вызовите метод
PlayerStatsClient.loadPlayerStats()
. - Если вызов выполнен успешно, игровые сервисы Google Play возвращают объект
Task
, который асинхронно загружает объектPlayerStats
. Используйте методы этого объекта для получения данных о действиях игрока, вошедшего в систему, в вашем приложении.
Вот пример:
public void checkPlayerStats() { Games.getPlayerStatsClient(this, GoogleSignIn.getLastSignedInAccount(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()); } } }); }
Советы по использованию данных статистики игрока
Play Stats API позволяет легко идентифицировать различные типы игроков на основе их вовлеченности и поведения в отношении расходов, а также применять соответствующие стратегии для улучшения их игрового опыта.
В следующей таблице перечислены некоторые примеры сегментов игроков и рекомендуемые стратегии взаимодействия:
Сегмент игрока | Стратегия взаимодействия |
---|---|
Частые игроки с большим количеством сессий и хорошим процентилем трат, но не игравшие в течение последней недели или дольше. |
|
Активно вовлеченные игроки в процентиле с низким уровнем расходов. |
|
Игроки с высокими расходами демонстрируют признаки достижения пика и начинают играть реже. |
|
Игроки с очень высокой или очень низкой вероятностью трат. |
|