はじめに
プッシュ設定¶
ユーザーはアプリをインストールした後、初回のゲームプレイ時に利用規約を確認し、マーケティングのための広告プッシュを受け取るための同意プロセスを実行します。ただし、プッシュ通知を受け取りたくないユーザーのために、ゲーム設定ページでサービスへのオプトインまたはオプトアウトの機能を提供する必要があります。
設定タイプ¶
プッシュ通知のすべての通知、ゲーム通知、お知らせ通知、および夜間通知のオプトインまたはオプトアウトが可能であるべきです。
| すべての通知 | 
 | 
| ゲーム通知 | 
 | 
| お知らせ通知 | 
 | 
| 夜間通知 | 
 | 
プッシュ設定ポリシー¶
1. ユーザーがゲーム内でプッシュサービスを有効または無効にするためのメニューを提供します。
-  プッシュ設定の構成 
-  ゲーム言語が韓国語のときの通知設定メニュー (すべてのデバイス、AndroidおよびiOSプラットフォームを含む、夜間通知設定を表示することを確認してください)  
-  プッシュ通知設定が変更されたときは、2秒間トーストポップアップを表示する必要があります。 
-  通知ポップアップを表示する - ユーザーが韓国からログインしたとき
- すべての通知、通知、夜間通知の設定が変更されたとき(ゲーム通知の場合、トーストポップアップを表示しない)
 
-  トーストポップアップのテキスト - すべての通知を有効にする: [会社名] 2016.05.01 あなたはすべての通知にオプトインしました。
- 発表通知を無効にする: [会社名] 2016.05.01 あなたは発表通知からオプトアウトしました。
- 夜間通知を有効にする: [会社名] 2016.05.01 あなたは夜間通知にオプトインしました。
 
プッシュ設定の通知テキストを提供してください。
ユーザーがプッシュ通知を受信しない場合、ユーザーがプッシュ設定メニューでそれを有効にしているにもかかわらず、デバイス設定メニューでユーザーの通知設定を確認するための指示を提供してください。ユーザーがデバイス設定で通知をオプトアウトした場合、プッシュ通知は表示されません。
2. Hive SDK APIを使用して、Hive Consoleを通じて送信される通知の設定を構成します。 
- Hive コンソールは、2種類のプッシュ通知を提供します。アナウンス通知と夜間通知です。
- 2つの通知オプションの値は、Hive サーバーに設定された値に設定する必要があります。
- 両方の通知オプションが変更されるときは、Hive サーバーに変更を渡す必要があります。
- 詳細については、リモートプッシュの送信を参照してください。
3. 夜間通知ポリシーを適用する。
夜間通知はアナウンス通知に属します。夜間通知設定メニューを実装する際は、以下のポリシーを適用してください。
- ユーザーがアナウンス通知をオプトアウトした場合、夜間通知は自動的に無効にされるべきです。
- アナウンス通知が無効になっている場合、夜間通知は有効にできないべきです。
- ユーザーがアナウンス通知をオプトアウトしても、夜間通知は自動的に有効になってはいけません。
Note
Hive SDKのv1.12.0以前のゲームに対する構成の夜間通知は、ユーザーがどこからゲームをプレイしているかを確認するために国コードオブジェクトを要求します。
プッシュ表示設定¶
プッシュ通知は、一般的にゲームアプリが使用されていないときに表示されます。しかし、Hive SDK v4.9.0では、アプリがアクティブになっていてもプッシュサービスが利用可能です。iOSはiOS 10からサポートされています。
プッシュ設定クラス
以下のクラスは、アプリがアクティブになったときにプッシュメッセージが送信されるかどうかを示しています。
プッシュ設定コールバック
プッシュ設定APIを呼び出す際に、リクエスト結果について取得するために以下のコールバックを実装してください。
アクティブ化されたアプリでプッシュメッセージを受信するかどうかを設定します
アプリがアクティブ化されたときにプッシュメッセージを受信するかどうかを設定するには、以下のAPIを使用できます。
APIリファレンス: Push.setForegroundPush
using hive;    
    // リモートプッシュ設定    
    Boolean useForegroundRemotePush = true;    
    // ローカルプッシュ設定    
    Boolean useForegroundLocalPush = false;    
    PushSetting pushSetting = new PushSetting(useForegroundRemotePush, useForegroundLocalPush);    
    Push.setForegroundPush (pushSetting, (ResultAPI result, PushSetting setting) => {    
         if (result.isSuccess()) {    
    // 成功した場合の呼び出し    
    // 設定: API経由で設定された通知を表示するかどうかの結果    
         }    
});
#include "HivePush.h"
// リモートプッシュ設定 
bool bUseForegroundRemotePush = true;
// ローカルプッシュ設定   
bool bUseForegroundLocalPush = false;
FHivePushSetting PushSetting(bUseForegroundRemotePush, bUseForegroundLocalPush);
FHivePush::SetForegroundPush(PushSetting, FHivePushOnPushSettingDelegate::CreateLambda([this](const FHiveResultAPI& Result, const FHivePushSetting& PushSetting) {
        if (Result.IsSuccess()) {
            // 成功した場合の呼び出し    
    // 設定: API経由で設定された通知を表示するかどうかの結果 
        }
}));
APIリファレンス: Push ::setForegroundPush
#include <HIVE_SDK_Plugin/HIVE_CPP.h>    
    using namespace std;    
    using namespace hive;    
    // リモートプッシュ設定    
    bool useForegroundRemotePush = true;    
    // ローカルプッシュ設定    
    bool useForegroundLocalPush = false;    
    PushSetting pushSetting(useRemote, useLocal);    
    Push::setForegroundPush(pushSetting, [=](ResultAPI const & result, PushSetting setting) {    
         if (result.isSuccess()) {    
             // 成功を呼び出す    
    // 設定: API経由で設定された通知を表示するかどうかの結果    
         }    
});
APIリファレンス: Push.setForegroundPush
import com.hive.Push    
    import com.hive.ResultAPI    
    // リモートプッシュ設定    
    val useForegroundRemotePush = true    
    // ローカルプッシュ設定    
    val useForegroundLocalPush = false    
    val pushSetting = Push.PushSetting(useForegroundRemotePush, useForegroundLocalPush)    
    Push.setForegroundPush(pushSetting, object: Push.PushSettingListener{    
         override fun onPushSetting(result: ResultAPI, pushSetting: Push.PushSetting?) {    
             if (result.isSuccess) {    
                 // 呼び出し成功    
                 // pushSetting: API経由で設定された通知の可視性の結果    
             }    
         }    
})
APIリファレンス: Push.INSTANCE .setForegroundPush
import com.hive.Push;    
    import com.hive.ResultAPI;    
    // リモートプッシュ設定    
    boolean useForegroundRemotePush = true;    
    // ローカルプッシュ設定    
    boolean useForegroundLocalPush = false;    
    Push.PushSetting setting = new Push.PushSetting(useForegroundRemotePush, useForegroundLocalPush);    
    Push.INSTANCE.setForegroundPush(setting, (result, pushSetting) -> {    
         if (result.isSuccess()) {    
             // 成功した呼び出し    
             // pushSetting: APIを介して設定された通知の可視性の結果    
         }    
});
APIリファレンス: Swift
import HIVEService    
    let pushSetting = PushSetting()    
    // リモートプッシュ設定    
    pushSetting.useForegroundRemotePush = true    
    // ローカルプッシュ設定    
    pushSetting.useForegroundLocalPush = false    
    PushInterface.setForegroundPush(pushSetting) { result, setting in    
    if result.isSuccess() {    
    // 呼び出し成功    
    // setting: API経由で設定された通知を表示するかどうかの結果    
    }    
}
API リファレンス: Objective -C
#import <HIVEService/HIVEService-Swift.h>    
    HIVEPushSetting *pushSetting = [[HIVEPushSetting alloc] init];    
    // リモートプッシュ設定    
    pushSetting.useForegroundRemotePush = YES;    
    // ローカルプッシュ設定    
    pushSetting.useForegroundLocalPush = NO;    
    [HIVEPush setForegroundPush: pushSetting handler: ^(HIVEResultAPI *result, HIVEPushSetting *setting) {    
         if ([result isSuccess]) {    
    // 成功した場合の呼び出し    
    // 設定: API経由で設定された通知を表示するかどうかの結果    
         }    
}];
アクティブなアプリでプッシュメッセージを受信しているかどうかを検索
アプリがアクティブ化されたときにプッシュメッセージを受信しているかどうかの状態を検索するには、以下のAPIを使用できます。
APIリファレンス: Push .getForegroundPush
APIリファレンス: Push ::getForegroundPush
API リファレンス: Kotlin
API リファレンス: Push.INSTANCE .getForegroundPush
APIリファレンス: PushInterface .getForegroundPush
APIリファレンス: HIVEPush getForegroundPush
仮承認¶
Hive SDK v4.11.4は、iOS 12のための新しい機能、仮承認をサポートし始めます。
プッシュ通知を送信する際の合意ポップアップは、Hive SDKの利用規約に同意した後は表示されなくなるため、アプリを実行しているユーザーはデフォルトであらゆる種類のプッシュメッセージを受け取ります。仮の承認があれば、すべてのユーザーはプッシュメッセージまたはアプリ設定でプッシュ通知を受け取ることを選択できます。デフォルト設定では、ユーザーが手動でプッシュ通知にオプトインするまで、プッシュメッセージは音を鳴らさず、表示されません。ユーザーがメッセージを受け取っても同様です。 iOS 12以前のデバイスでは、Hive SDKを初期化した後、プッシュ通知を送信する際の合意ポップアップが通常通り表示されます。
目立つプッシュの許可をリクエスト¶
Hive SDK v4.16.2 (Android) から、ゲーム内で必要に応じて目立つプッシュ通知を送信する際に合意ポップアップを表示できます。目立つプッシュ通知を送信する際に合意ポップアップを表示するには、ユーザーがプッシュ通知の送信に同意するかどうかを設定する前に、Push クラスの requestPushPermission() メソッドを呼び出します。 iOSの場合、ユーザーがProvisional Authorizationを通じてHive SDKの利用規約に同意しても、目立つプッシュ通知を送信する際に合意ポップアップが表示され、ユーザーは目立つプッシュ通知を受け取ることができます。 Androidの場合、ターゲットSDKが33以上のAndroid 13以上のデバイスではポップアップが表示され、ターゲットSDKが33未満の場合は、AuthV4.setup()が呼び出されたときに表示されます。
プッシュ通知を送信する際に合意ポップアップを表示するためのサンプルコードは以下の通りです。
APIリファレンス: hive.Push.requestPushPermission
API リファレンス: Push::requestPushPermission
APIリファレンス: Push.requestPushPermission
APIリファレンス: Push.INSTANCE.requestPushPermission
APIリファレンス: PushInterface.requestPushPermission
APIリファレンス: 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になると、通知センターに積み重なったすべての通知が削除されます。
- アプリアイコンのバッジが0になる時間は、Hive SDKにおいて以下のように説明されます。- アプリの初回実行
- アプリが通知の1つをクリックしてフォアグラウンドに戻るとき。
 
 
- Android- アプリアイコンのバッジは、新しい通知が届くと1増加します。
- アプリがフォアグラウンドに戻ると、通知の1つをクリックしてアプリを実行するか、他の方法で、バッジは0にリセットされます。
- クリックされた通知のみが通知センターから削除されます。
 






