Skip to content

Rewarded Ads ​

Rewarded ads let you offer users in-app items—such as continued gameplay, virtual currency, or other rewards—in exchange for their engagement with ads. Rewarded ads boost engagement because users receive a tangible benefit for their time.

This guide shows you how to integrate rewarded ads into an your app.

Load ad ​

Create an instance of CTReward, passing in the placementId and calling the loadAd method.

java

CTAdRequest adRequest = new CTAdRequest.Builder()
    .setPlacementId("REWARD_PLACEMENT_ID")// [necessary] placementId from carty publisher
    .setMute(true)// [optional] does video ads mute play, sdk default value true
    .build();
CTReward ctReward = new CTReward(adRequest);
ctReward.loadAd();
kotlin

val adRequest = CTAdRequest.Builder()
    .setPlacementId("REWARD_PLACEMENT_ID")// [necessary] placementId from carty publisher
    .setMute(true)// [optional] does video ads mute play, sdk default value true
    .build()
val ctReward = CTReward(adRequest)
ctReward.loadAd()

Register Listener ​

It is recommended to register a listener before calling the CTReward.loadAd method.

java

ctReward.setRewardAdListener(new CTRewardAdListener() {
    @Override
    public void onLoaded(CTBaseAd baseAd) {
    }

    @Override
    public void onLoadFailed(CTAdError adError) {
    }

    @Override
    public void onShown(CTBaseAd baseAd) {
    }

    @Override
    public void onShowFailed(CTBaseAd baseAd, CTAdError adError) {
    }

    @Override
    public void onClicked(CTBaseAd baseAd) {
    }

    @Override
    public void onClosed(CTBaseAd baseAd) {
    }

    @Override
    public void onRewarded(CTBaseAd baseAd, Map<String, Object> rewardMap) {
    }

    @Override
    public void onVideoPlay(CTBaseAd baseAd) {
    }

    @Override
    public void onVideoComplete(CTBaseAd baseAd) {
    }
});
kotlin

ctReward.setRewardAdListener(object : CTRewardAdListener {
    override fun onLoaded(baseAd: CTBaseAd?) {
    }

    override fun onLoadFailed(adError: CTAdError?) {
    }

    override fun onShown(baseAd: CTBaseAd?) {
    }

    override fun onShowFailed(baseAd: CTBaseAd?, adError: CTAdError?) {
    }

    override fun onClicked(baseAd: CTBaseAd?) {
    }

    override fun onClosed(baseAd: CTBaseAd?) {
    }

    override fun onRewarded(baseAd: CTBaseAd?, rewardMap: Map<String?, Any?>?) {
    }

    override fun onVideoPlay(baseAd: CTBaseAd?) {
    }

    override fun onVideoComplete(baseAd: CTBaseAd?) {
    }
})

Make sure ad ready ​

Before you showAd, you need to check if the ad is ready.

java

ctReward.isReady();
kotlin

ctReward.isReady()

Display ad ​

Call showAd on the CTReward object that you instantiated.

java

ctReward.showAd(activity);
kotlin

ctReward.showAd(activity)

Client-side bidding ​

After the ad loads successfully, you can obtain ecpm by calling CTBaseAd.getEcpm

java

baseAd.getEcpm();
kotlin

baseAd.ecpm

After winning the ad bid, call onC2SBiddingSuccess and pass in the second-highest bid from this bid.

java

ctReward.onC2SBiddingSuccess("secondPrice", null);
kotlin

ctReward.onC2SBiddingSuccess("$secondPrice", null)

After an ad is lost, onC2SBiddingFailed is called with the highest bid received in the auction.

java

ctReward.onC2SBiddingFailed("topPrice", null);
kotlin

ctReward.onC2SBiddingFailed("$topPrice", null)

Others ​

Server-to-Server (S2S) Reward ​

Examples on GitHub ​