Rewarded Ads
Ad Request
Placement
Create a RewardedRequest.Builder
instance, set placement id and other parameters, if applicable.
- Java
- Kotlin
RewardedRequest.Builder rewardedRequestBuilder = new RewardedRequest.Builder()
.setTargetingParams(...) // Set TargetingParams instance
.setPriceFloorParams(...) // Set price floor parameters
.setLoadingTimeOut(...) // Set loading timeout in milliseconds
.setPlacementId(...) // Set placement id
val rewardedRequestBuilder = RewardedRequest.Builder()
.setTargetingParams(...) // Set TargetingParams instance
.setPriceFloorParams(...) // Set price floor parameters
.setLoadingTimeOut(...) // Set loading timeout in milliseconds
.setPlacementId(...) // Set placement id
General Request
Set the RewardedRequest.AdRequestListener
instance to theRewardedRequest.Builder
instance.
- Java
- Kotlin
rewardedRequestBuilder.setListener(new RewardedRequest.AdRequestListener() {
@Override
public void onRequestSuccess(@NonNull RewardedRequest request,
@NonNull AuctionResult auctionResult) {
// Called when RewardedRequest was requested successfully
}
@Override
public void onRequestFailed(@NonNull RewardedRequest request,
@NonNull BMError error) {
// Called when RewardedRequest request failed
}
@Override
public void onRequestExpired(@NonNull RewardedRequest request) {
// Called when RewardedRequest expired
}
});
rewardedRequestBuilder.setListener(object : RewardedRequest.AdRequestListener {
override fun onRequestSuccess(request: RewardedRequest,
auctionResult: AuctionResult) {
// Called when RewardedRequest was requested successfully
}
override fun onRequestFailed(request: RewardedRequest,
error: BMError) {
// Called when RewardedRequest request failed
}
override fun onRequestExpired(request: RewardedRequest) {
// Called when RewardedRequest expired
}
})
AdRequestListener
callbacks are delivered on the background thread, not the main one.
When all the necessary parameters are set, call build
on the RewardedRequest.Builder
instance:
- Java
- Kotlin
RewardedRequest rewardedRequest = rewardedRequestBuilder.build();
val rewardedRequest = rewardedRequestBuilder.build()
You need to keep reference to RewardedRequest
before calling RewardedRequest#request
, otherwise, it is possible it will be cleared by Garbage Collector and callbacks won’t be triggered.
Client Bidding Request
Bid Token
With S2S integration, you will need a BidToken
that you need to transfer in the request.
Define AdPlacementConfig
:
- Java
- Kotlin
AdPlacementConfig adPlacementConfig = new AdPlacementConfig.Builder(AdsFormat)
.withPlacementId(...) // Set placement id
.build();
val adPlacementConfig = AdPlacementConfig.Builder(AdsFormat)
.withPlacementId(...) // Set placement id
.build()
To get a BidToken
, you can use one of 2 methods:
- Java
- Kotlin
// Must be run on background thread
String bidToken = BidMachine.getBidToken(@NonNull Context, @NonNull AdPlacementConfig);
// Must be run on background thread
val bidToken = BidMachine.getBidToken(Context, AdPlacementConfig)
or
- Java
- Kotlin
BidMachine.getBidToken(@NonNull Context, @NonNull AdPlacementConfig, new BidTokenCallback() {
@Override
public void onCollected(@NonNull String bidToken) {
// The BidToken will be returned on a background thread
}
});
BidMachine.getBidToken(Context, AdPlacementConfig) { bidToken ->
// The BidToken will be returned on a background thread
}
Bid Payload
After completing the server-side auction, you will receive a Base64-encoded payload string, which must be passed as a parameter to the RewardedRequest.Builder
:
- Java
- Kotlin
rewardedRequestBuilder.setBidPayload(@Nullable String);
rewardedRequestBuilder.setBidPayload(String?)
When all the necessary parameters are set, call build
on the RewardedRequest.Builder
instance:
- Java
- Kotlin
RewardedRequest rewardedRequest = rewardedRequestBuilder.build();
val rewardedRequest = rewardedRequestBuilder.build()
You need to keep reference to RewardedRequest
before calling RewardedRequest#request
, otherwise, it is possible it will be cleared by Garbage Collector and callbacks won’t be triggered.
Ad Display
Prepare the Ad Request object
When you need to request an ad and get an AuctionResult
, call request
on the RewardedRequest
instance.
- Java
- Kotlin
rewardedRequest.request(...);
rewardedRequest.request(...)
When you made an in-house meditation and you decided that an advertisement from BidMachine will be shown - call rewardedRequest.notifyMediationWin
, if BidMachine lost in mediation - call rewardedRequest.notifyMediationLoss
Destroy the RewardedRequest
instance if you don't need it anymore.
- Java
- Kotlin
rewardedRequest.destroy();
rewardedRequest.destroy()
Don't destroy the RewardedRequest
instance, if it will be used for load the RewardedAd
instance or if the RewardedAd
instance loaded with the RewardedRequest
instance has not been shown yet.
Otherwise, ad will not work correctly, which can affect a lower display rate, fill rate, rendering errors, and as a result - lower revenue.
Define Ad Listener
Before execute load
on the RewardedAd
instance set the RewardedListener
instance:
- Java
- Kotlin
RewardedAd rewardedAd = new RewardedAd(...);
rewardedAd.setListener(new RewardedListener() {
@Override
public void onAdLoaded(@NonNull RewardedAd ad) {
// Called when Ad was loaded and ready to be displayed
}
@Override
public void onAdLoadFailed(@NonNull RewardedAd ad,
@NonNull BMError error) {
// Called when Ad failed to load
}
@Override
public void onAdImpression(@NonNull RewardedAd ad) {
// Called when Ad Impression has been tracked
}
@Override
public void onAdShowFailed(@NonNull RewardedAd ad,
@NonNull BMError error) {
// Called when Ad show failed
}
@Override
public void onAdClicked(@NonNull RewardedAd ad) {
// Called when Ad has been clicked
}
@Override
public void onAdRewarded(@NonNull RewardedAd ad) {
// Called when Rewarded Ad was completed (e.g.: the video has been played to the end).
// You can use this event to reward the user
}
@Override
public void onAdClosed(@NonNull RewardedAd ad,
boolean finished) {
// Called when Ad was closed (e.g - user clicked the close button)
// finished indicates if the ad was finished (e.g - video playing completed)
}
@Override
public void onAdExpired(@NonNull RewardedAd ad) {
// Called when Ad expired
}
});
rewardedAd.load(rewardedRequest);
val rewardedAd = RewardedAd(...)
rewardedAd.setListener(object : RewardedListener {
override fun onAdLoaded(ad: RewardedAd) {
// Called when Ad was loaded and ready to be displayed
}
override fun onAdLoadFailed(ad: RewardedAd,
error: BMError) {
// Called when Ad failed to load
}
override fun onAdImpression(ad: RewardedAd) {
// Called when Ad Impression has been tracked
}
override fun onAdShowFailed(ad: RewardedAd,
error: BMError) {
// Called when Ad show failed
}
override fun onAdClicked(ad: RewardedAd) {
// Called when Ad has been clicked
}
override fun onAdRewarded(ad: RewardedAd) {
// Called when Rewarded Ad was completed (e.g.: the video has been played to the end).
// You can use this event to reward the user
}
override fun onAdClosed(ad: RewardedAd,
finished: Boolean) {
// Called when Ad was closed (e.g - user clicked the close button)
// finished indicates if the ad was finished (e.g - video playing completed)
}
override fun onAdExpired(ad: RewardedAd) {
// Called when Ad expired
}
})
rewardedAd.load(rewardedRequest)
Loading and presenting rewarded ads
Make sure that the RewardedRequest
instance have AuctionResult
. It's mean ads requested successfully.
- Java
- Kotlin
rewardedRequest.getAuctionResult() != null
rewardedRequest.auctionResult != null
Use onAdLoaded
callback to determine the possibility of displaying
Before displaying, check if the RewardedAd
instance can be displayed:
- Java
- Kotlin
rewardedAd.canShow();
rewardedAd.canShow()
To display the RewardedAd
instance, you just need to execute show
.
- Java
- Kotlin
rewardedAd.show();
rewardedAd.show()
After ad was successful shown and no longer needed, it can be destroyed.
- Java
- Kotlin
rewardedAd.destroy();
rewardedAd.destroy()
You can find code examples written in Java and Kotlin: Github Rewarded