이 가이드에서는 이벤트 API를 사용하여 게임 분석을 위해 플레이어 게임플레이 데이터를 수집하는 방법을 설명합니다.
Google Play 게임즈 서비스에서
제공하는 방법을 알아봅니다 API는 com.google.android.gms.games.event
및 com.google.android.gms.games
에서 확인할 수 있습니다.
시작하기 전에
아직 검토하지 않았다면 이벤트 게임 개념을 검토하는 것이 좋습니다.
이벤트 API를 사용하여 코딩을 시작하기 전에 다음을 실행합니다.
- Google Play Console에서 게임 이벤트를 정의합니다.
- 로그인 체크리스트 권장사항을 따릅니다.
이벤트 클라이언트 가져오기
이벤트 API를 사용하려면 먼저 게임에서
EventsClient
객체 이렇게 하려면
Games.getEventsClient()
메서드를 호출하고
활동 및 현재 플레이어의 GoogleSignInAccount
.
플레이어 계정 정보를 검색하고
Android 게임에서 로그인
이벤트 제출
게임에 코드를 추가하여 Google Play 게임즈 서비스에 발생하는 이벤트를 나타냅니다.
일정 업데이트를 보내려면 EventsClient.increment()
에 eventId
값 및
0 이상의 정수 incrementAmount
입니다.
eventId
은(는) 처음 정의하면 Google Play 게임즈 서비스에서 생성됩니다. 식별하며 Google Play Console에서 이 이벤트를 고유하게 식별하는 데 있습니다.incrementAmount
입력을 사용하여 게임별 목표 달성을 위한 플레이어의 양적 진행 상황을 지정할 수 있습니다. 예를 들어 게임에서 추적하려는 이벤트가 '눈이 튀어나온 몬스터 500마리 무찌르기'인 경우incrementAmount
값은 플레이어가 단일 배틀에서 죽인 몬스터 수가 될 수 있습니다.
다음은 1씩 증가하는 이벤트를 제출하는 방법을 보여주는 예입니다.
public void submitEvent(String eventId) { Games.getEventsClient(this, GoogleSignIn.getLastSignedInAccount(this)) .increment(eventId, 1); }
이벤트 가져오기
EventsClient.load()
를 호출하여 게임을 위해 Google 서버에 저장된 모든 이벤트 데이터를 가져올 수 있습니다.
메서드 호출을 통해 Google Play 게임즈 서비스가 로컬에서의
캐시될 수 있습니다.
Google Play Console에서 정의한 특정 이벤트의 데이터를 가져오려면 EventsClient.loadByIds()
를 호출하고 입력 매개변수에 이벤트 ID 배열을 전달합니다.
다음 스니펫은 Google Play 게임즈 서비스에 게임의 모든 이벤트 목록입니다.
public void loadEvents() { Games.getEventsClient(this, GoogleSignIn.getLastSignedInAccount(this)) .load(true) .addOnCompleteListener(new OnCompleteListener<AnnotatedData<EventBuffer>>() { @Override public void onComplete(@NonNull Task<AnnotatedData<EventBuffer>> task) { if (task.isSuccessful()) { // Process all the events. for (Event event : task.getResult().get()) { Log.d(TAG, "loaded event " + event.getName()); } } else { // Handle Error Exception exception = task.getException(); int statusCode = CommonStatusCodes.DEVELOPER_ERROR; if (exception instanceof ApiException) { ApiException apiException = (ApiException) exception; statusCode = apiException.getStatusCode(); } showError(statusCode); } } }); }