API статистики игрока позволяет адаптировать игровой процесс к конкретным сегментам игроков и различным этапам жизненного цикла игрока. Вы можете создать индивидуальный опыт для каждого сегмента игроков, основываясь на том, как игроки прогрессируют, тратят и вовлекаются. Например, вы можете использовать этот API для принятия упреждающих мер по поощрению менее активного игрока к повторному участию в вашей игре, например, путем отображения и продвижения новых внутриигровых предметов, когда игрок входит в систему.
В этом руководстве показано, как использовать API статистики игрока в играх, использующих игровые сервисы Google Play. API-интерфейсы можно найти в пакетах com.google.android.gms.games.stats
и com.google.android.gms.games
.
Прежде чем начать
Прежде чем начать использовать API статистики игрока:
- Загрузите и просмотрите пример кода .
- Ознакомьтесь с рекомендациями, описанными в Контрольном списке качества .
Получение клиента статистики игрока
Чтобы начать использовать API статистики игрока, ваша игра должна сначала получить объект PlayerStatsClient
. Вы можете сделать это, вызвав метод Games.getPlayerStatsClient()
и передав ему действие.
Основы статистики игроков
Вы можете использовать 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() {
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 позволяет легко идентифицировать различные типы игроков на основе их вовлеченности и покупательского поведения, а также применять соответствующие стратегии для улучшения их игрового опыта.
В следующей таблице перечислены некоторые примеры сегментов игроков и рекомендуемые стратегии взаимодействия:
Сегмент игрока | Стратегия взаимодействия |
---|---|
Частые игроки с большим количеством сессий и хорошим процентилем трат, но не игравшие последнюю неделю или дольше. |
|
Высоко вовлеченные игроки с низким процентилем расходов. |
|
Игроки с высокими расходами демонстрируют признаки достижения пика и начинают играть реже. |
|
Игроки с очень высокой или очень низкой вероятностью расходов. |
|