이 가이드에서는 Google Play 게임즈 서비스에서 제공하는 이벤트 API를 사용하여 게임 분석을 위해 플레이어 게임플레이 데이터를 수집하는 방법을 보여줍니다. API는 com.google.android.gms.games.event
및 com.google.android.gms.games
패키지에서 찾을 수 있습니다.
시작하기 전에
아직 검토하지 않았다면 이벤트 게임 개념을 검토하는 것이 좋습니다.
이벤트 API를 사용하여 코딩을 시작하기 전에 다음을 실행합니다.
Google Play Console에서 게임 이벤트를 정의합니다.
로그인 체크리스트 권장사항을 따릅니다.
이벤트 클라이언트 가져오기
이벤트 API 사용을 시작하려면 먼저 게임이 EventsClient
객체를 가져와야 합니다. 이렇게 하려면 PlayGames.getEventsClient()
메서드를 호출하고 활동을 전달하면 됩니다.
이벤트 제출
게임에 코드를 추가하여 게임에서 관심 있는 이벤트가 발생할 때마다 Play 게임즈 서비스에 알릴 수 있습니다.
이벤트 업데이트를 전송하려면 eventId
값과 0 이상의 정수 incrementAmount
를 사용하여 EventsClient.increment()
를 호출합니다.
eventId
는 Google Play Console에서 이벤트를 처음 정의할 때 Play 게임즈 서비스에서 생성되며 게임에서 이 이벤트를 고유하게 식별하는 데 사용됩니다.incrementAmount
입력을 사용하여 게임별 목표 달성을 위한 플레이어의 양적 진행 상황을 지정할 수 있습니다. 예를 들어 게임에서 추적하려는 이벤트가 '눈이 튀어나온 몬스터 500마리 무찌르기'인 경우incrementAmount
값은 플레이어가 단일 배틀에서 죽인 몬스터 수가 될 수 있습니다.
다음은 1씩 증가하는 이벤트를 제출하는 방법을 보여주는 예입니다.
public void submitEvent(String eventId) { PlayGames.getEventsClient(this) .increment(eventId, 1); }
이벤트 가져오기
EventsClient.load()
를 호출하여 게임을 위해 Google 서버에 저장된 모든 이벤트 데이터를 가져올 수 있습니다.
메서드 호출에서 Play 게임즈 서비스가 사용자 기기에 로컬로 캐시된 데이터를 삭제해야 하는지 나타내는 불리언 값을 전달합니다.
Google Play Console에서 정의한 특정 이벤트의 데이터를 가져오려면 EventsClient.loadByIds()
를 호출하고 입력 매개변수에 이벤트 ID 배열을 전달합니다.
다음 스니펫은 Play 게임즈 서비스에 게임의 모든 이벤트 목록을 쿼리하는 방법을 보여줍니다.
public void loadEvents() { PlayGames.getEventsClient(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); } } }); }