Skip to content

Review/exit popups

Promotions provides game review popups and game exits popups.

Review Popup

Review Popup encourage users to leave ratings and reviews on the store such as Google Play Store and Apple App Store. From Hive SDK v1.16.2 and v4.11.0, Hive SDK lets you customize the phrases on the review popup by game. You can also customize the review popup text and popup UI and do not forget to link the store URL with the review popup.

Conditions of Review Popup

Hive SDK suggests conditions of game review popup as follows:

  • Display a review popup within five minutes from the first play of a game.
  • Display the review popup when a user achieves remarkable results in game such as stage clear and rewards.
  • It is recommended to repeat to pop up several times, but it should not bother users to play games.
Note

Google and Apple are prohibited from attracting ratings and reviews from users by offering rewards, and Google specifically prohibits mentioning rewards.

Review Popup functions as follows:

  • If a user clicks the close (button X), the review pop-up is not re-exposed on the same device.
  • If a user clicks the Later button, the review pop-up is able to re-expose on the same device.
  • If the app version is upgraded, the review popup is displayed again to the users who already rejected to evaluate or reviewed the game.
  • In accordance with the policy, game studio should implement the display conditions and counts of the review popup.

Display Review Popup

  • An example of Review popup

To show up Review popups, call showReview() method of Promotion class. The basic style or custom style in-app review popup is displayed depending on the settings in Promotion > App Settings of Hive Console. (See the Opration > Promotion > App Settings guide from Hive Developers.)

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 success
        }
}));

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    
         }    
}];

Conditions of In-game Review Popup for Android

From version v.4.15.1 of Hive SDK, users who use the game in the Android environment provide the ability to leave a review while the game is running. Unlike existing review pop-ups, you can evaluate your satisfaction without going to the market, and if you respond to a review request, you will be taken to the writing page immediately. Android star review pop-ups are displayed according to the policy provided by Google as follows.

Warning

Implementing the showNativeReview() method of Promotion class is currently available on Google Play Store only. Hive SDK, which implements the Review popup to Android Market and OneStore, will release later.

  • Whether or not to display a review pop-up is determined according to Google's internal policy, and it is not possible to manually change the exposure or not.
  • It can be exposed on Android devices running Android 5.0 (API level 21) or higher with the Google Play Store installed if the appId is set up for using Google market.
  • To enhance user privacy and prevent API misuse, It is recommended to call the API according to the contents of the Google Guide.
  • Even in the build under development, exposure is decided according to Google's internal policy, and to always set the exposure, the corresponding Google Guide.

Display In-game Review Popup for Android

  • An example of In-game Review popup for Android

Conditions of Native Review Popup for iOS

Native review popup for iOS encourages users to rate and write reviews in games on iOS. This popup allows game users to click stars to score the game or add a review without switching pages to the market. Different from Game Review Popup, In-game Review Popup shows a writing page right after a user clicks Write a Review button. Hive SDK suggests conditions of native review popup for iOS as follows:

  • Available to use Game Review Popup provided by Hive and native Review popup for iOS at the same time.
  • If Game Review Popup is customized for each game, native review popup for iOS is unavilable to use simultaneously.

In-game Review Popup is exposed by following the Apple policy. Make sure to run with Hive SDK v1.16.0 and later, or v4.10.0 and later.

  • Unavailable to customize the display order, text, or UI.
  • Each game displays the popup triannually per device. Popup display follows the Apple's internal policy, so unavailable to customize.
  • Run on iOS 10.3 and later versions.
  • Unavailable to display the popup when a user sets Enable Restrictions for your app as disabled state on the device.
  • The builds in developing are unlimited to display popups and unavailable to submit ratings to the market.
  • Unavailable on the apps distributed using TestFlight.

If this API is called on Android or iOS which version does not support the in-game review, the Review Popup is exposed as usual. The condition of exposure is the same as Game Review Popup.

Display Native Review Popup for iOS

  • An example of native review popup for iOS

To show up the native review popup, call the showNativeReview() method of Promotion class.

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];

Exit Popup

This popup checks whether a user wants to quit the game as well as to be given game recommendations.

Note

Exit popup is provided with Android only due to a policy issue.

Note

If you link the game page on m.withhive.com with 'More games' button when implementing an exit popup, you can't use custom view but use URL via internet browser on user device.

Conditions of Exit Popup

According to guidelines to build apps for Android, your game should go to previous page when users tap Back button while playing a game. Therefore, if a user taps Back button, go to previous page until there is no more page to go back then display exit popup to quit or continue the game; it is usually when user is on the game lobby.

Display Exit Popup

  • An example of close popup with Hive game recommendations

To show up exit popups, call showExit() method of Promotion class. When a user clicks the exit button after the exit popup appears, PromotionEventType.EXIT is assigned to promotionEventType. The following is an example code that shows an exit popup.

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 app termination functionality
                // Ex) 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);    
         }    
});