Android 게임의 이벤트

이 가이드에서는 이벤트 API를 사용하여 게임 분석을 위해 플레이어 게임플레이 데이터를 수집하는 방법을 설명합니다. Google Play 게임즈 서비스에서 제공하는 방법을 알아봅니다 API는 com.google.android.gms.games.eventcom.google.android.gms.games에서 확인할 수 있습니다.

시작하기 전에

아직 검토하지 않았다면 이벤트 게임 개념을 검토하는 것이 좋습니다.

이벤트 API를 사용하여 코딩을 시작하기 전에 다음을 실행합니다.

이벤트 클라이언트 가져오기

이벤트 API를 사용하려면 먼저 게임에서 EventsClient 객체 이렇게 하려면 Games.getEventsClient() 메서드를 호출하고 활동을 전달하면 됩니다.

이벤트 제출

게임에 코드를 추가하여 Google Play 게임즈 서비스에 발생하는 이벤트를 나타냅니다.

일정 업데이트를 보내려면 EventsClient.increment()eventId 값 및 0 이상의 정수 incrementAmount입니다.

  • eventId은(는) 처음 정의하면 Google Play 게임즈 서비스에서 생성됩니다. 식별하며 Google Play Console에서 이 이벤트를 고유하게 식별하는 데 있습니다.
  • incrementAmount 입력을 사용하여 게임별 목표 달성을 위한 플레이어의 양적 진행 상황을 지정할 수 있습니다. 예를 들어 게임에서 추적하려는 이벤트가 '눈이 튀어나온 몬스터 500마리 무찌르기'인 경우 incrementAmount 값은 플레이어가 단일 배틀에서 죽인 몬스터 수가 될 수 있습니다.

다음은 1씩 증가하는 이벤트를 제출하는 방법을 보여주는 예입니다.

public void submitEvent(String eventId) {
  PlayGames.getEventsClient(this)
      .increment(eventId, 1);
}

이벤트 가져오기

EventsClient.load()를 호출하여 게임을 위해 Google 서버에 저장된 모든 이벤트 데이터를 가져올 수 있습니다. 메서드 호출을 통해 Google Play 게임즈 서비스가 로컬에서의 캐시될 수 있습니다.

Google Play Console에서 정의한 특정 이벤트의 데이터를 가져오려면 EventsClient.loadByIds()를 호출하고 입력 매개변수에 이벤트 ID 배열을 전달합니다.

다음 스니펫은 Google 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);
          }
        }
      });
}