Skip to content

Review and exit popups

The promotion provides game review pop-ups and game exit pop-ups for use in the game. Positive ratings and user reviews from gamers influence other users' engagement with the game. It is known that providing inducement pop-ups can increase user participation by 5 to 10 times. You can use the features provided by Hive or implement them directly in the game and link to the market URL.

Popup Type Description
Hive Review Popup A popup that encourages users to leave ratings and reviews for the game in the market where the game app was downloaded.
Native Review Popup (Android/iOS) A popup that encourages users to leave ratings and reviews immediately within the game without moving to the market.


Below is a flowchart showing the process of two types of review pop-up actions.

Hive review popup

This is a popup that guides users to the market using Hive UI and encourages them to leave ratings and reviews. The Hive review popup can either use the default provided popup or be customized for UI use.

Setting Type Description
Default Settings Default provided popup
Custom Settings Custom UI Popup
Note

When configuring the Hive review popup, you need to insert the app market URL link (the link to the location where you can rate and write a review in the app market) into the popup.

Hive review popup conditions

The recommended conditions for the review popup in the Hive SDK are as follows.

  • Display a review prompt within 5 minutes after the user first launches the game after installation
  • Display when the user has a positive experience in the game (e.g., stage clear, reward given)
  • It is recommended to display it multiple times, but it should not cause discomfort to the user
Note

Google and Apple prohibit providing incentives to encourage high ratings, and in particular, Google prohibits any mention of incentives.

The features of the Hive review popup are as follows.

  • If the user clicks the Close (X) button, the review popup will not be displayed again on the same device.
  • If the user clicks the Remind me later button, the review popup may be displayed again on the same device.
  • If the app version changes, it will be displayed again to users who have already participated or declined.
  • The conditions for displaying the review popup and the number of displays must be implemented directly in the game according to Hive conditions.

Hive review popup display

  • Hive review popup screenshot

To display the Hive review popup, call the Promotion class's showReview() method. Depending on the settings configured in the console under Promotion > App Settings, either the default style or custom style review popup will be displayed. (Refer to Operation > Promotion > App Settings on the developer site)

API Reference: Promotion .showReview

using hive;    
    Promotion.showReview((ResultAPI result, PromotionEventType viewEventType) => {    
    if (result.isSuccess()) {    
    // call successful    
    }    
});
#include "HivePromotion.h"

FHivePromotion::ShowReview(FHivePromotionViewDelegate::CreateLambda([this](const FHiveResultAPI& Result, const EHivePromotionEventType& PromotionEventType) {
        if (Result.IsSuccess()) {
                // API call succeeded
        }
}));

API Reference: Promotion ::showReview

#include <HIVE_SDK_Plugin/HIVE_CPP.h>    
    using namespace std;    
    using namespace hive;    
    Promotion::showReview([=](ResultAPI const & result, PromotionEventType viewEventType) {    
         if (result.isSuccess()) {    
             // call successful    
         }    
});

API Reference: Promotion.showReview

import com.hive.Promotion    
    import com.hive.ResultAPI    
    Promotion.showReview(object : Promotion.PromotionViewListener {    
         override fun onPromotionView(result: ResultAPI, promotionEventType: Promotion.PromotionViewResultType) {    
             if (result.isSuccess) {    
                 // call successful    
             }    
         }    
})

API Reference: Promotion .INSTANCE.showReview

import com.hive.Promotion;    
    import com.hive.ResultAPI;    
    Promotion.INSTANCE.showReview((result, promotionEventType) -> {    
         if (result.isSuccess()) {    
             // call successful    
         }    
});

API Reference: PromotionInterface .showReview

import HIVEService    
    PromotionInterface.showReview() { result, viewResultType in    
    if result.isSuccess() {    
    // call successful    
    }    
}

API Reference: HIVEPromotion showReview

#import <HIVEService/HIVEService-Swift.h>    
    [HIVEPromotion showReview: ^(ResultAPI *result, HIVEPromotionViewResultType viewResultType) {    
         if ([result isSuccess]) {    
             // API call successful    
         }    
}];

Native review popup

This is a popup that allows users to leave ratings and reviews instantly within the app without moving to the app market.

Android native review popup conditions

Hive SDK provides a feature that allows users using games in the Android environment to leave reviews while the game is running. Unlike the existing review pop-up, satisfaction ratings can be made without moving to the market, and if you respond to the review request, you will be taken directly to the writing page. The Android native review pop-up will be displayed according to the policies provided by Google as follows.

Warning

Promotion class's showNativeReview() method can be applied when using the Google Play Store.

  • The visibility of the review popup is determined by Google's internal policies, and it cannot be changed arbitrarily.
  • If the app ID is linked to the Google market, it can be displayed on Android devices with the Google Play Store installed.
  • To enhance user privacy protection and prevent API misuse, it is recommended to call the API according to the Google Play In-App Review API guide.
  • The visibility is also determined by Google's internal policies for builds under development. To set up constant visibility, refer to the In-App Review Testing guide provided by Google.

Displaying Android native review popup

  • Android Native Review Popup Screenshot

iOS native review popup conditions

Hive SDK provides a feature that allows users using the game in the iOS environment to leave reviews while the game is running. Unlike the existing review popup, it allows for satisfaction evaluation without moving to the market, and if you respond to the review request, you will be taken directly to the writing page. The conditions for using the iOS native review popup are as follows.

  • Even if you use the review popup provided commonly in Hive, it can be used simultaneously with the iOS native review popup.
  • If you use a custom review popup developed in the game, it cannot be used simultaneously with the iOS native review popup.

According to the policy provided by Apple, the iOS native review popup will be displayed.

  • Exposure order, text, UI, etc. cannot be arbitrarily changed
  • Pop-ups are displayed only 3 times a year per device in each app, and the display is subject to Apple's internal policies, so arbitrary changes are not allowed
  • If the user disables (OFF) the In-App Ratings and Reviews option in device settings, it will not be displayed
  • In builds under development, it is always displayed regardless of the number of exposures, but ratings cannot be submitted to the market
  • Apps distributed using TestFlight will not be displayed

Displaying iOS native review popup

  • iOS Native Review Popup Screenshot

To display the native review popup, call the Promotion class's showNativeReview() method.

API Reference: Promotion .showNativeReview

using hive;    

Promotion.showNativeReview();

API Reference: Promotion ::showNativeReview

#include <HIVE_SDK_Plugin/HIVE_CPP.h>    
    using namespace std;    
    using namespace hive;    

Promotion::showNativeReview(NULL);
#include "HivePromotion.h"

FHivePromotion::ShowReview(FHivePromotionViewDelegate::CreateLambda([this](const FHiveResultAPI& Result, const EHivePromotionEventType& PromotionEventType) {
        // Native review callback is no longer supported
}));

API Reference: Promotion.showNativeReview

import com.hive.Promotion    
    import com.hive.ResultAPI    

Promotion.showNativeReview()

API Reference: Promotion .INSTANCE.showNativeReview

import com.hive.Promotion;    
    import com.hive.ResultAPI;    

Promotion.INSTANCE.showNativeReview()

API Reference: PromotionInterface.showNativeReview

import HIVEService    

PromotionInterface.showNativeReview()

API Reference: HIVEPromotion showNativeReivew

#import <HIVEService/HIVEService-Swift.h>    

[HIVEPromotion showNativeReivew];

End popup

The exit popup is a popup that asks the user whether to exit the game, and it also requests confirmation on whether to receive a list of game recommendations equipped with Hive.

Note

The game exit popup is not provided on iOS devices for policy reasons and is only available on Android devices.

Note

If you implement the exit popup directly and connect to the game page of m.withhive.com through the More Games button, you cannot use a custom view. You must navigate to the URL through the browser installed on the device.

Exit popup conditions

According to the Android app development guidelines, when a user touches the device's back button during gameplay, it should be implemented to navigate to the previous page of the current page. Accordingly, when a user touches the device's back button during gameplay, the game should be paused, and the user should be asked whether to continue or exit the game. Display an exit popup when there are no more previous pages to return to. Typically, there are no previous pages to return to when the user is in the game lobby.

Displaying exit popup

  • End popup screenshot

To display the exit popup, call the Promotion class's showExit() method. After the exit popup appears, if the user clicks the exit button, promotionEventType will be assigned PromotionEventType.EXIT. Here is an example code to display the exit popup. Due to Apple policies, there is no exit popup provided on iOS devices, so there is no iOS example code.

API Reference: hive.Promotion.showExit

using hive;    

    hive.Promotion.showExit(ResultAPI result, PromotionEventType viewEventType) => {    
         if (!result.isSuccess()) {    
             return;    
         }    

         // call successful    
         if (viewEventType == PromotionEventType.EXIT) {    
             //TODO:    
             // Implement app termination functionality    
             Application.Quit();    
         }    
});
#include "HivePromotion.h"

FHivePromotion::ShowExit(FHivePromotionViewDelegate::CreateLambda([this](const FHiveResultAPI& Result, const EHivePromotionEventType& PromotionEventType) {
        if (!Result.IsSuccess()) {
                return;
        }

        if (PromotionEventType == EHivePromotionEventType::EXIT) {
                // TODO: Implement the app exit functionality
                // For example) UKismetSystemLibrary::QuitGame(GetWorld(), nullptr, EQuitPreference::Quit, false);
        }
}));

API Reference: Promotion::showExit

#include <HIVE_SDK_Plugin/HIVE_CPP.h>    
    using namespace std;    
    using namespace hive;    

    Promotion::showExit([=](ResultAPI result, PromotionEventType viewEventType) {    
         if (!result.isSuccess()) {    
             return;    
         }    

         // call successful    
         if (viewEventType == PromotionEventType::EXIT) {    
             //TODO:    
             // Implement app termination functionality    
             // Cocos2d-x engine user    
             exit(0);    
             // Unreal Engine User    
             UKismetSystemLibrary::QuitGame(GetWorld(), nullptr, EQuitPreference::Quit, false);    
         }    
});

API Reference: com.hive.Promotion.showExit

import com.hive.Promotion    
    import com.hive.ResultAPI    

    Promotion.showExit(object: Promotion.PromotionViewListener {    
         override fun onPromotionView(result: ResultAPI, promotionEventType: Promotion.PromotionViewResultType) {    
             if (!result.isSuccess) {    
                 return    
             }    

             // call successful    
             if (promotionEventType == Promotion.PromotionViewResultType.NEED_TO_EXIT) {    
                 //TODO:    
                 // Implement app termination functionality    
                 exitProcess(0)    
             }    
         }    
})

API Reference: Promotion.INSTANCE.showExit

import com.hive.Promotion;    
    import com.hive.ResultAPI;    

    Promotion.INSTANCE.showExit((result, promotionEventType) -> {    
         if (!result.isSuccess()) {    
             return;    
         }    

         // call successful    
         if (promotionEventType == Promotion.PromotionViewResultType.NEED_TO_EXIT) {    
             //TODO:    
             // Implement app termination functionality    
             System.exit(0);    
         }    
});