게임에 탑재한 Hive 기능을 이용하려면 반드시 Hive SDK를 초기화해야 합니다. Hive SDK 초기화를 진행하면 Hive 콘솔에 등록된 약관 및 업데이트·공지 팝업이 자동으로 노출됩니다.

 

Hive SDK 초기화 동작 방식

Hive SDK 초기화 시 다음 기능을 수행합니다.

  • Hive SDK는 초기화 함수 하나로 다음 항목을 초기화합니다.
    • 인증: Hive 클라이언트 초기화 및 유저 인증 기능을 제공
    • 프로모션: 광고 집행 및 쿠폰 발급
    • 노티피케이션: 유저에게 발송하는 푸시 메시지를 설정·관리
    • 마케팅 어트리뷰션: 광고 유입, 사용자 이벤트 분석 등 유저 정보를 추적하는 서드 파티 모듈의 통합 관리를 지원
  • OS마다 앱 접근 권한을 고지하는 기준이 있습니다.
    • Android: Android 6.0이상일 경우 노출
    • iOS: 유저의 국가가 한국일 경우 한국어로 노출
  • Hive SDK v4.12.1부터는 Configuration.setHivePermissionViewOn() 메서드 호출이나 hive_config.xml 파일로 권한 고지 팝업 노출 여부를 설정할 수 있습니다. 게임 실행 후 로비에 진입하는 단계를 줄이기 위한 기능으로, 기본 설정은 true입니다. 만약 false를 선택했다면 앱 접근 권한 고지에 대한 안내를 마켓 디스크립션에 필수 표기해야 합니다.
    • hive_config.xml 파일에서 설정하기
    • API에서 설정하기
      Unity®

      C++

      Android

      iOS

  • 해당 게임에 설정된 업데이트·공지 팝업을 노출합니다.
  • 접속한 유저의 IP 및 설정된 약관을 확인하여 노출합니다.
  • 초기화 다이어그램

Hive SDK 초기화 구현하기

Hive 클라이언트를 초기화 하려면 Auth 클래스의 initialize() 메서드를 호출하세요. SDK 초기화를 수행하면 AuthInitResult 클래스에 결과를 담아서 전달합니다. AuthInitResult 클래스 필드는 다음과 같습니다.

필드명 설명 예제
isAuthorized 정식(계정) 로그인 가능 여부 true
loginType 수행 가능한 Hive 로그인 타입 LoginType.GUEST
did Hive 로그인의 유효성을 확인하기 위해 Hive 인증 서버에서 발급하는 디바이스 고유 식별자 123456
isPGSLogin Google Play 게임을 이용한 로그인 가능 여부 (Android 전용) true
playerName Google Play 게임의 사용자 프로필에 노출되는 이름 (Android 전용) “i’m pgs user”
playerId Google Play 게임의 사용자 계정 (Android 전용)

다음은 Hive 클라이언트를 초기화하는 예제 코드입니다.

Unity®

API Reference: hive.Auth.initialize

C++

API Reference: Auth::initialize

Kotlin

API Reference: com.hive.Auth.initialize

Java

API Reference: com.hive.Auth.initialize

Swift

API Reference: HIVEAuth::initialize:

Obj-C

API Reference: HIVEAuth::initialize:

 

신규 법인에서 Hive 적용하기

Hive SDK v4.11.4부터 Hive 플랫폼을 적용할 수 있는 회사가 확대됩니다. 기존에는 GAMEVIL과 Copm2uS에서만 이용할 수 있었지만 이제는 신규 법인에서도 HIVE가 제공하는 플랫폼 서비스를 이용할 수 있습니다.

권한 고지 리소스 안내

신규 법인이 Hive 플랫폼으로 게임을 출시할 때 활용할 수 있는 리소스를 안내합니다.

  • Unity 엔진을 활용하는 경우
    1. 프로젝트를 빌드한 후 생성되는 Xcode 프로젝트 내 애셋 카달로그(.xcassets) 폴더를 직접 생성합니다.

    2. 애셋 카달로그 폴더에 회사 로고를 저장하면 약관 다시보기 또는 권한 고지 팝업에 적용할 수 있습니다.

    3. 로고 파일 이름과 크기는 반드시 아래 규칙을 준수합니다.

    • 파일 이름: auth_logo

    • 파일 크기: 270 이내*18


    • 파일 이름: auth_copyright

    • 파일 크기: 270 이내*11

    • 폰트 색상: #9DA3A0

     

앱 접근 권한에 대한 고지 화면 커스터마이징

화면 디자인

Hive SDK는 AuthV4 클래스의 setup() 메서드 혹은 Auth 클래스의 initialize() 메서드를 이용할 때 권한 고지 팝업을 자동으로 노출하는 기능을 기본으로 제공합니다. 만약 HIVE가 제공하는 권한 고지 팝업 대신 게임 UI와 잘 어울리는, 게임별 맞춤식(customize) 팝업으로 변경하고 싶다면 이 가이드를 자세히 읽어보세요.

Hive SDK의 권한 고지 팝업
맞춤식 권한 고지 팝업
적용하기

AuthV4 클래스의 setup() 메서드 혹은 Auth 클래스의 initialize() 메서드와 같은 초기화 함수를 호출하기 전, Configuration 클래스의 getPermissionViewData() 메서드를 이용해서 권한 고지에 필요한 다국어지원 리소스 파일을 얻어올 수 있습니다. 이 API는 목표 언어에 맞는 리소스 파일을 읽어와 PermissionViewData 자료형의 데이터를 구성하는 역할을 수행합니다.

iOS에서는 해당 API를 사용하기 전, Xcode 프로젝트에 제공된 Permissions.zip 리소스를 반드시 포함해야 사용할 수 있습니다. Android에서는 Permissions.zip 리소스를 포함하지 않았을 경우 Hive SDK에 기본으로 포함된 권한 고지 리소스 문구를 읽어 데이터를 구성합니다. 이 때 리소스 문구를 수정하고 싶다면, iOS에서 한 방식처럼 프로젝트에 Permissions.zip 리소스를 포함시킨 후 수정 가능합니다. 이 내용은 Hive SDK v4.12.1 부터 적용할 수 있습니다. SDK v4.12.1 미만 버전을 사용할 경우 여기로 이동해 적용 방법을 확인해보세요.

아래에서 getPermissionViewData()의 호출 방법을 확인합니다.

Unity®

C++

Android

iOS

PermissionViewData로 권한 고지 UI 구성하기
  • 데이터로 UI 구성하기
    getPermissionViewData()를 요청하면 PermissionViewData를 얻어올 수 있습니다. PermissionViewData는 약관 고지 UI를 구성하기 위한 데이터로 이루어집니다. 여기에는 각 권한을 설명하는 PermissionVIewUnitData라는 데이터가 있으며, 리스트 형식으로 구성되어 있습니다.

    • PermissionViewData
      데이터 이름 자료형 의미 UI 노출 여부
      contents String 권한 고지 팝업에 대한 설명입니다. UI에 노출하세요. O
      permissions Linear List 혹은 Array
      (언어에 따라 다름)
      각 권한에 대한 설명과 이름이 들어있는 선형리스트 혹은 배열입니다. OS를 업데이트하거나 법령에 따라 권한 정보가 추가될 수 있으므로 리스트에 들어 있는 데이터 개수를 표시하는 UI는 여러 값이 들어 갈 수 있도록 변화에 능동적인 디자인이어야 합니다.
      데이터에 대한 내용은 PermissionViewUnitData를 참고하세요.
      일부 O
      commons Linear List 혹은 Array
      (언어에 따라 다름)
      공통에 해당하는 설명과 이름이 들어있는 선형리스트 혹은 배열입니다. commons 데이터를 불러오려면 권한 고지 내용이 반드시 1개 이상이어야 합니다. 데이터에 대한 내용은 PermissionViewUnitData를 참고하세요. O
    • PermissionViewUnitData
      데이터 이름 자료형 의미
      title string UI에 노출해야 할 권한의 이름입니다.
      contents string UI에 노출해야할 권한의 내용입니다. 권한을 어떻게 이용하는지 설명합니다.
      nativePermissionName string 각 OS에서 사용하는 권한의 이름입니다.
      permissionCategory enum UI에 노출하지 않는 권한의 종류입니다. 이용하는 권한을 카테고리로 판단할 수 있고, 권한이 활용하는 기능 또한 파악할 수 있습니다. 이 데이터는 권한 UI에 원하는 내용을 표시하는 방법 등으로 활용 가능합니다. 권한 목록을 확인하려면 소스 코드를 참조하세요.
  • UI 예시
    다음은 getPermissionViewData()를 호출하여 전달받은 값으로 구성한 예시입니다. 이미지를 참고하여 각 게임에 어울리는 UI를 디자인해보세요.
  • 권한 고지 관리하기
    새롭게 제공되는 Configuration 클래스의 getPermissionViewData() 메서드는 커스텀 권한 고지 팝업 노출 방식을 다양하게 구현할 기회 제공을 목적으로 권한 고지 데이터를 구성하는 기능만 수행합니다. 이는 개발 스튜디오에서 최초 1회만 노출하거나 업데이트마다 노출하는 등 구현 방식을 구체화할 수 있다는 의미입니다.

    HIVE에서 설정한 방식은 최초 1회만 노출하기 입니다. 만약 Hive SDK 정책을 그대로 따른다고 하면, 아래 도식도에서 노란색으로 표시한 부분은 개발 스튜디오에서 직접 구현해 새로운 API와 함께 사용해야 합니다. IP 기반의 유저 국가 검증 기능은 서버 API 내용을 참고 하세요.

    • 권한 고지 데이터 구성 도식도

화면 문구

접근하는 정보 수준에 따라 필수/선택 접근 권한을 노출합니다. 게임에서 필요한 앱 접근 권한을 추가해 안내해보세요.

iOS

정보통신망법에 따라 권한 요청 전 고지를 해야 하며, iOS는 유저의 국가가 한국일 때만 팝업을 노출합니다. 사용 시점에 권한을 요청하라는 iOS 정책에 의거, CAMERA, PHOTO, PUSH 3가지 권한이 앱 접근 권한 고지의 기본 항목으로 설정되어 있습니다. CAMERAPHOTO 권한은 실제 사용 시점에 권한 요청 팝업이 생성되고 PUSH는 SDK를 초기화할 때 요청됩니다. 세 항목 모두 선택 권한으로, 유저가 거부한다고 해도 게임 플레이에는 문제가 없습니다.

  1. 빌드된 Xcode 프로젝트에서 Permissions.zip 파일 압축을 풀어 프로젝트의 하위 경로에 끌어서 놓아 리소스를 배치합니다. Project > info > Localizations에 15개 언어가 반영되며, Permission.strings 파일을 선택했을 때 아래 인스펙터 영상에서 보이는 것처럼 체크되면 정상적으로 적용된 것입니다. 이후에는 원하는 내용으로 편집해 사용할 수 있습니다.

  2. Permission.strings 내 추가 가능한 권한 리스트에서 추가가 필요한 권한의 제목과 내용 값을 추가합니다. Xcode 프로젝트에 15개 언어 리소스를 추가했다고 예를 들면, Hive SDK v4.12.1부터는 한국어 리소스에 해당되는 Permission.strings (Korean)에 제목과 내용을 추가하거나 변경한 경우에만 Hive SDK 권한 고지 팝업에 반영됩니다.

  3. 정상적으로 처리되면 앱을 처음 실행할 때 추가한 권한 제목과 내용이 노출됩니다.
Android

Android 정책에 따라, Android 6.0(API Level 23) 이상 기기에서 PHONE 권한이 Hive SDK 권한 고지와 OS 권한 요청 팝업의 기본 항목으로 설정되었습니다. PHONE 권한은 게임 내 이벤트 보상 지급 시 단말 식별값을 사용할 수 있도록 요청됩니다. 이 권한은 선택 항목이며 유저가 거부한다고 해도 게임 플레이에는 문제가 없습니다.

Android 리소스를 적용하려면 Unity 혹은 Cocos2d-x에서 다음과 같이 ../res 하위 경로에 Permissions.zip 파일을 압축풀기한 후 복사하고 붙여넣기하여 원하는 내용으로 편집 사용합니다.

Unity는 엔진 특성상 Hive SDK가 갖는 권한 고지 리소스와 충돌하는 문제가 있습니다. 이 때문에 커스터마이징할 권한 고지 리소스를 우선 적용하려면 아래와 같이 폴더 이름 뒤에 버전을 별도 표기하여 복사하고 붙여넣기해야 합니다. 아래 리소스 적용 영상을 참고하세요.

  • Android

  • Cocos2d-x