모바일 게임에서 푸시 통지 서비스는 게임 유저의 리텐션(잔존율) 관리에 중요한 수단입니다. Hive는 다양한 경로로 유저에게 알림을 보낼 수 있도록 푸시 서비스를 제공하는데, 모바일 게임의 리텐션을 올리기 위한 마케팅용 광고 푸시를 제공할 뿐만 아니라 Google의 FCM, Apple의 APNs, Amazon의 ADM을 지원합니다. 언어별 시간대 설정 역시 가능해 글로벌 서비스에 대응하고 있습니다. 푸시 정책은 KISA 및 Google Play Store 마켓 가이드라인을 준수하고 있습니다.

푸시 종류

리모트 푸시

Hive 콘솔을 통하거나 게임 서버에서 Hive 서버 API를 이용하여 유저의 단말기로 푸시를 발송하는 것을 리모트 푸시라고 합니다.
리모트 푸시를 받기 위해 별도로 게임에서 구현해야 할 부분은 없습니다. 다만, 유저가 리모트 푸시에 대한 설정을 조회하거나 설정을 변경할 때, Hive API를 호출하여 유저의 푸시 수신 설정을 확인하고 변경해 주어야 합니다. 자세히 보기

오버라이트

마켓 정책에 따라, 중복된 코드(Hive 콘솔 기준)의 푸시를 수신할 경우 최신 푸시만 노출하는 기능입니다. 푸시 등록 시 등록자가 Hive 콘솔에서 오버라이트 사용 여부를 선택할 수 있으며, 이 경우 동일한 코드를 사용한 푸시 메시지를 유저가 미확인할 경우, 이전 푸시는 신규 푸시로 덮어 쓰이게 됩니다.

Hive 콘솔에서 발송하는 푸시 알림에 대해서만 광고성 알림 수신동의 여부에 따른 필터링이 적용됩니다. 따라서 게임 서버에서 Hive 푸시 API를 이용해 발송하는 푸시는 정보성 알림으로 한정해야 합니다.

 

로컬 푸시

로컬 푸시 서비스는 게임 클라이언트에거 Hive API를 이용하여 유저에게 직접 푸시를 발송하는 방식입니다. Hive API를 이용하여 로컬 푸시를 등록하거나 해제할 수 있으며, Android 단말기용 푸시 UI를 커스터마이즈 할 수 있습니다. 자세히 보기

타임존 및 서머타임

Hive 푸시는 글로벌 전 지역의 타임존 및 서머타임이 적용됩니다. 예를 들어 미국 지역 유저를 대상으로 오후 6시에 발송되도록 예약해두면 뉴욕에 있는 유저와 LA에 있는 유저가 푸시 알림을 수신하는 시간은 3시간의 시차가 발생합니다. 반대로 지역에 상관없이 동시에 푸시 알림을 발송하는 기능도 제공합니다. 이 때는 푸시 알림의 메시지 내에 정해진 규격으로 시간을 표시하면 유저의 지역 시간을 기준으로 변환하여 발송됩니다. 서머타임은 서머타임이 적용되는 지역과 해당 일자에 맞춰 서버에서 자동으로 반영됩니다.

시차를 적용, 혹은 적용하지 않을지 여부는 백오피스에서 푸시 발송 캠페인을 작성할 때 작성자가 직접 설정할 수 있습니다.

푸시 설정

유저는 앱 설치 후 초기 실행 시 약관 동의를 받게 되고 마케팅용 광고 푸시를 받겠다는 동의 절차를 수행하게 됩니다. 하지만 푸시 알림 서비스를 원하지 않는 유저를 위해서 게임 설정 창에서 푸시 알림을 켜고 끌 수 있는 기능을 제공해야 합니다.

푸시 알림 종류

푸시 알림에 대한 수신여부를 모든 알림, 게임 알림, 공지 알림, (공지)야간 알림 등으로 구분하여 설정할 수 있어야 합니다.

모든 알림
  • Android 단말 플랫폼에서만 적용
  • 모든 푸시 알림의 수신 여부
게임 알림
  • 로컬 푸시 또는 Hive 푸시 API를 통해 발송되는 리모트 푸시의 수신 여부
  • 해당 푸시의 경우 내용에 따라 광고성 정보와 광고성 정보가 아닌 것으로 나뉠 수 있음. 게임의 특성에 따라 상세한 항목으로 분리 가능.
  • 게임 알림 설정에 따른 푸시 발송 여부의 필터링은 게임에서 직접 구현해야 함.
공지 알림
  • Hive 콘솔을 통해 발송하는 모든 푸시는 광고성 정보로 간주
  • 공지 알림 설정이 OFF일 때는 (공지) 야간 알림도 OFF로 변경
(야간)공지 알림
  • 공지 알림의 하위 항목
  • 유저가 접속한 지역이 한국인 경우, Android와 iOS를 포함하는 모든 단말 플랫폼에서 반드시 적용 필요 (※ 정보통신망법 제50조제3항 ‘야간 광고성 정보 전송 제한’에 의거해 위반 시 3천만원 이하의 과태료 부과)
  • 이 설정이 OFF일 때는 야간(오후 9시~익일 오전 8시)에 푸시 수신이 불가
  • 유저가 접속한 지역이 한국인 경우에만 노출하고, Hive API를 통해 조회된 값을 기본으로 설정
  • 그 외 지역인 경우 노출하지 않고, 공지 알림의 ON/OFF 상태에 따라 변경

푸시 설정 정책

1. 여러분의 게임 내에 유저가 푸시 알림을 활성화하거나 비활성화할 수 있는 메뉴를 제공하세요.

  • 푸시 설정 메뉴 구성
    • 모든 알림의 경우 Android에서만 노출하며 게임의 성격에 따라 게임 세부 알림을 구성할 수 있습니다.
    • (공지)야간 알림의 경우 유저가 접속한 지역이 한국일 경우에만 노출합니다.
    • 모든 알림, 게임 알림의 기본값은 ON입니다.
    • 공지 알림, (공지)야간 알림의 기본값은 Hive API를 통해 조회된 값입니다.
  • 게임 언어가 한국어일 경우 푸시 알림 설정 메뉴의 예시
    (Android와 iOS를 포함하는 모든 단말에서 반드시 야간 알림 설정을 노출해야 합니다.)

    Android 단말에서의 예

    iOS 단말에서의 예

  • 게임 언어가 한국어가 아닐 경우 푸시 알림 설정 메뉴의 예시
    (Android와 iOS를 포함하는 모든 단말에서 반드시 야간 알림 설정을 노출하지 않습니다.)

    Android 단말에서의 예

    푸시 알림 설정 변경 시에는 토스트 팝업을 2초 동안 표시해야 합니다.

  • 푸시 알림 팝업을 노출하는 경우
    • 유저가 접속한 지역이 한국일 경우
    • 모든 알림, 공지 알림, 야간 알림 변경 발생 시 (게임 알림의 경우 토스트 팝업을 띄우지 않습니다.)
  • 푸시 알림 팝업 문구
    • 모든 알림 동의 활성화: [회사명] 2016.05.01 알림 수신에 동의하셨습니다.
    • 공지 알림 동의 비활성화: [회사명] 2016.05.01 알림 수신에 거부하셨습니다.
    • 야간 알림 동의 활성화: [회사명] 2016.05.01 야간 알림 수신에 동의하셨습니다.
  • 토스트 팝업 예시
  • 푸시 설정 안내 문구를 제공하세요.
    푸시 설정 메뉴에서 수신을 활성화 했음에도 푸시가 수신되지 않으면 단말기 설정 메뉴에서 알림 설정을 확인하려는 안내를 제공해 주세요. 단말기에서 여러분 게임 앱이 발생하는 알림을 차단하면 푸시 알림을 제대로 받을 수 없습니다.
  • 푸시 안내 문구를 적용한 예시

2. Hive 콘솔을 통해 발송하는 공지의 설정은 Hive API를 적용하세요.

  • Hive 콘솔을 통해 발송하는 공지 설정의 종류는 공지 알림(공지)야간 알림 2가지가 있습니다.
  • 두 알림 옵션은 Hive 서버에 설정된 값을 조회해서 반영해야 합니다.
  • 두 알림 옵션에 변경이 발생 시 Hive 서버에 변경 내용을 전달해야 합니다.
  • 자세한 내용은 리모트 푸시 전송하기를 참고하세요.

3. 야간 알림 정책을 적용하세요.

야간 알림은 공지 알림에 속한 알림입니다. 야간 알림 설정 메뉴을 구현할 때 다음 정책을 적용하세요.

  • 공지 알림을 비활성화하면 야간 알림도 자동으로 비활성화해야 합니다.
  • 공지 알림이 비활성화일 때 야간 알림을 활성화할 수 없어야 합니다.
  • 공지 알림을 활성화해도 야간 알림을 자동으로 활성화하지 않아야 합니다.

푸시 노출 설정

푸시 알림은 기본적으로 앱을 사용하지 않을 때 나타납니다. 그렇지만 Hive SDK v4.9.0을 활용하면 앱이 사용 중일 때도 알림을 노출하도록 설정할 수 있습니다. 단, iOS는 iOS 10 이상 버전에서 지원됩니다.

알림 설정 클래스
앱이 활성화 상태일 때 알림 수신 여부를 표시하는 클래스입니다.

알림 설정 콜백
알림 설정 API를 호출할 때 아래 콜백을 구현하면 요청 결과를 확인할 수 있습니다.

앱 활성화 시 알림 수신 여부 설정
아래 API를 사용하면 앱이 활성화 상태일 때 알림 수신 여부를 설정할 수 있습니다.

Unity®

API Reference: Push.setForegroundPush

C++

API Reference: Push::setForegroundPush

Kotlin

API Reference: Push.setForegroundPush

Java

API Reference: Push.INSTANCE.setForegroundPush

Swift

API Reference: Swift

Objective-C

API Reference: Objective-C

앱 활성화 시 알림 수신 여부 조회
아래 API를 사용하면 앱이 활성화 상태일 때 알림 수신 여부를 조회할 수 있습니다.

Unity®

API Reference: Push.getForegroundPush

C++

API Reference: Push::getForegroundPush

Kotlin

API Reference: Kotlin

Java

API Reference: Push.INSTANCE.getForegroundPush

Swift

API Reference: PushInterface.getForegroundPush

Objective-C

API Reference: HIVEPush getForegroundPush

Provisional Authorization

Hive SDK v4.11.4부터 iOS 12에 추가된 Provisional Authorization 기능을 지원합니다.

Hive SDK 약관 동의 이후 노출되던 기존의 푸시 전송 동의 팝업이 더 이상 노출되지 않기 때문에 앱을 실행한 유저들은 모든 푸시 메시지를 기본으로 수신합니다. 이때 푸시 수신 여부는 유저가 받은 푸시 메시지나 앱 설정에서 선택할 수 있습니다. 유저가 수동으로 푸시 전송에 동의하기 전까지는 푸시를 수신해도 알림음이 울리지 않으며, 팝업 또한 노출되지 않습니다.
iOS 12 미만 버전을 사용하는 기기에서는 기존과 동일하게 초기화 이후 푸시 전송 동의 팝업이 노출됩니다.

명시적 푸시 권한 요청

v4.16.2 (Android) 부터 게임에서 필요한 경우 유저에게 명시적으로 푸시 전송 동의 팝업을 노출할 수 있는 API가 적용됩니다. 유저가 푸시 전송 동의 여부를 설정하지 않은 상태라면 Push 클래스의 requestPushPermission() 메서드를 호출하여 유저에게 푸시 전송 동의 팝업을 노출할 수 있습니다.
iOS의 경우 Provisional Authorization을 활용하여 Hive SDK 약관 동의에 대한 묵시적 권한 동의를 받은 경우라도 푸시 전송 동의 팝업이 노출되며, 푸시 전송에 동의한 유저에게는 명시적으로 푸시 메시지가 노출됩니다.
Android의 경우 Android 13 이상 기기에서 target SDK 33 이상일 때 팝업이 노출되며, target SDK 33 미만일 경우에는 AuthV4.setup() 시 노출됩니다.

다음은 iOS 푸시 전송 동의 팝업을 노출하는 예제 코드입니다.

Unity®

API Reference: hive.Push.requestPushPermission

C++

API Reference: Push::requestPushPermission

Kotlin

API Reference: Push.requestPushPermission

Java

API Reference: Push.INSTANCE.requestPushPermission

Swift

API Reference: PushInterface.requestPushPermission

Objective-C

API Reference: HIVEPush::requestPushPermission

 

푸시 설정 다국어 표기법

언어 모든 알림 게임 알림 공지 알림
영어 All notifications Game notification Announcement notification
일본어 全ての通知 ゲーム通知 お知らせ通知
중국어 간체 所有通知 游戏通知 公告通知
중국어 번체 所有通知 遊戲通知 公告通知
독일어 Alle Benachrichtigungen Spiel-Benachrichtigung Ankündigungen
러시아어 Все уведомления Уведомления игры Объявления
말레이시아어 Semua notifikasi Notifikasi permainan Notifikasi pengumuman
베트남어 Tất cả thông báo Thông báo game Thông báo tin tức
스페인어 Todas las notificaciones Notificación del Juego Notificación de Anuncio
이탈리아어 Tutte le notifiche Notifiche di gioco Notifiche degli avvisi
인도네시아어 Semua Notifikasi Notifikasi Game Notifikasi Pengumuman
태국어 การแจ้งเตือนทั้งหมด การแจ้งเตือนเกม การแจ้งเตือนประกาศ
터키어 Tüm Bildirimler Oyun Bildirimi Duyuru Bildirimi
포르투갈어 Todas as notificações Notificação de Jogo Notificação de Anúncios
프랑스어 Toutes les notifications Notification de jeu Notification d’annonce
아랍어 كل الإشعارات إشعارات اللعبة إشعارات الإخطار

푸시 알림과 앱 아이콘 뱃지

기기에서 알림을 수신하면 앱 아이콘 뱃지가 자동으로 표시됩니다. 뱃지란 앱 아이콘 오른쪽 상단 모서리에 표시되는 숫자로, 이 앱으로 온 알림 개수입니다. 뱃지 기능은 앱 설정 또는 기기 설정에서 끄거나 켤 수 있습니다. 기본적으로 뱃지 표시는 OS별로 아래 정책을 따릅니다.

  • iOS
    • 새로 수신한 알림 개수와 상관 없이 앱 아이콘 뱃지는 1로 표시합니다.
    • 앱 아이콘 뱃지가 0이 되는 순간, 알림 센터에 쌓인 모든 알림이 제거됩니다.
    • Hive SDK에서 앱 아이콘 뱃지가 0이 되는 시점은 다음과 같습니다.
      • 앱을 최초로 실행할 때
      • 알림을 클릭하여 앱을 다시 포그라운드 상태로 불러왔을 때
  • Android
    • 알림을 수신하면 뱃지가 1개씩 증가합니다.
    • 알림을 클릭하여 앱을 실행하는 등, 앱이 포그라운드 상태가 되면 뱃지가 0으로 초기화됩니다.
    • 알림 센터의 목록은 클릭한 알림만 삭제됩니다.