コンテンツにスキップ

はじめに

プッシュ設定

ユーザーはアプリをインストールした後、初回のゲームプレイ時に利用規約を確認し、マーケティングのための広告プッシュを受け取るための同意プロセスを実行します。ただし、プッシュ通知を受け取りたくないユーザーのために、ゲーム設定ページでサービスへのオプトインまたはオプトアウトの機能を提供する必要があります。

設定タイプ

プッシュ通知のすべての通知ゲーム通知お知らせ通知、および夜間通知のオプトインまたはオプトアウトが可能であるべきです。

すべての通知
  • Androidデバイスのみ。
  • すべてのプッシュ通知にオプトインまたはオプトアウトします。
ゲーム通知
  • Hive サーバー API によって送信されるリモートプッシュまたはローカルプッシュにオプトインまたはオプトアウトします。
  • 内容に応じて広告情報と非広告情報に分けることができます。ゲームの特性に応じて、より詳細な項目に分けることができます。
  • ゲーム通知設定に応じたプッシュ通知の送信フィルタリングは、開発者がゲーム内で実装する必要があります。
お知らせ通知
  • Hive コンソールを通じて送信されるすべてのプッシュは広告と見なされます。
  • この設定がOFFの場合、夜間通知はOFFに変更されます。
夜間通知
  • お知らせ通知の下位項目です。
  • 韓国からアクセスするユーザーには、AndroidおよびiOSを含むすべてのプラットフォームでこの通知を適用することを確認してください。 (* 情報通信ネットワークの利用促進及び情報保護に関する法律第50条に基づき、利益のための広告情報の送信は制限されています。この条項に違反した場合、₩300万の罰金が科される可能性があります。)
  • この設定がOFFの場合、夜間通知(午後9時から午前8時まで)は無効になります。
  • 韓国からアクセスするユーザーにこの通知を表示し、Hive APIからの検索結果をデフォルト値として設定します。
  • 韓国以外のグローバルユーザーからこの通知を非表示にし、お知らせ通知の状態に従ってON/OFFの状態を設定します。

プッシュ設定ポリシー

1. ユーザーがゲーム内でプッシュサービスを有効または無効にするためのメニューを提供します。

  • プッシュ設定の構成

    • すべての通知はAndroidデバイスで公開されており、ゲームの機能に応じて詳細を含めることができます。
    • 夜間通知は韓国のユーザーにのみ公開されています。
    • すべての通知およびゲーム通知設定のデフォルト値はONです。
    • アナウンス通知および夜間通知設定のデフォルト値はHive APIから取得されます。
  • ゲーム言語が韓国語のときの通知設定メニュー (すべてのデバイス、AndroidおよびiOSプラットフォームを含む、夜間通知設定を表示することを確認してください)

  • ゲーム言語が韓国語でない場合の通知設定メニュー Androidの例

  • プッシュ通知設定が変更されたときは、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

using hive;    
    Push.getForegroundPush ((ResultAPI result, PushSetting pushSetting) => {    
    if (result.isSuccess()) {    
    // TODO: Check whether notifications are received using pushSetting    
         }    
});
#include "HivePush.h"

FHivePush::GetForegroundPush(FHivePushOnPushSettingDelegate::CreateLambda([this](const FHiveResultAPI& Result, const FHivePushSetting& PushSetting) {
        if (Result.IsSuccess()) {
                // Check whether notifications are received using pushSetting
        }
}));

APIリファレンス: Push ::getForegroundPush

#include <HIVE_SDK_Plugin/HIVE_CPP.h>    
    using namespace std;    
    using namespace hive;    
    Push::getForegroundPush([=](ResultAPI const & result, PushSetting pushSetting) {    
         if (result.isSuccess()) {    
    // TODO: Check whether notifications are received using pushSetting    
         }    
});

API リファレンス: Kotlin

import com.hive.Push    
    import com.hive.ResultAPI    
    Push.getForegroundPush(object : Push.PushSettingListener {    
         override fun onPushSetting(result: ResultAPI, pushSetting: Push.PushSetting?) {    
             if (result.isSuccess) {    
                 // TODO: Check whether to receive notifications with pushSetting    
             }    
         }    
})

API リファレンス: Push.INSTANCE .getForegroundPush

import com.hive.Push;    
    import com.hive.ResultAPI;    
    Push.INSTANCE.getForegroundPush((result, pushSetting) -> {    
         if (result.isSuccess()) {    
             //TODO: Check whether notifications are received using pushSetting    
         }    
});

APIリファレンス: PushInterface .getForegroundPush

import HIVEService    
    PushInterface.getForegroundPush() { result, pushSetting in    
    if result.isSuccess() {    
    // TODO: Check whether notifications are received using pushSetting    
    }    
}

APIリファレンス: HIVEPush getForegroundPush

#import <HIVEService/HIVEService-Swift.h>    
    [HIVEPush getForegroundPush: ^(HIVEResultAPI *result, HIVEPushSetting *pushSetting) {    
         if ([result isSuccess]) {    
             // TODO: Check whether notifications are received using pushSetting    
         }    
}];

仮承認

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

using hive;    
Push.requestPushPermission();
#include "HivePush.h"

FHivePush::RequestPushPermission();

API リファレンス: Push::requestPushPermission

#include <HIVE_SDK_Plugin/HIVE_CPP.h>    
    using namespace std;    
    using namespace hive;    
Push::requestPushPermission();

APIリファレンス: Push.requestPushPermission

import com.hive.Push    
Push.requestPushPermission()

APIリファレンス: Push.INSTANCE.requestPushPermission

import com.hive.Push;    
Push.INSTANCE.requestPushPermission();

APIリファレンス: PushInterface.requestPushPermission

import HIVEService    
PushInterface.requestPushPermission()

APIリファレンス: HIVEPush:: requestPushPermission

#import <HIVEService/HIVEService-Swift.h>    
[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にリセットされます。
    • クリックされた通知のみが通知センターから削除されます。