# Implement rewarded ads in Android

> Implement rewarded ads in your Android app. Load ad content, display it through Java code, and use a listener to manage ad events and reward logic.

Rewarding users for watching ads increases user engagement, resulting in higher revenue. For example, games might reward users with in-game currency, consumables, additional lives, or experience-multipliers. For more information on how to effectively design your rewarded ads, refer to the [monetization strategy](/monetization/getting-started/monetization-strategy.md) guide.

## Rewarded video ad load example

Call `show()` on the retained `RewardedAd` instance, passing the activity, a `ShowConfiguration`, and a `RewardedShowListener`. The listener provides `onStarted`, `onClicked`, and `onFailed` callbacks for standard ad lifecycle events, as well as two reward-specific callbacks: `onRewarded`, which fires when the user earns a reward, and `onCompleted`, which fires after it when the ad closes. Because both callbacks can fire in sequence, reward logic should be handled in only one of them, typically by checking a flag like `shouldAlwaysRewardUser()` to avoid granting the reward twice.

1. **Java**

   ```java
   loadedRewardedAd.show( activity, new ShowConfiguration.Builder().build(), new RewardedShowListener()
   {
   @Override
   public void onStarted(@NonNull RewardedAd ad) 
   { /* displayed */ }

   @Override
   public void onClicked(@NonNull RewardedAd ad) 
   { /* clicked */ }

   @Override
   public void onRewarded(@NonNull RewardedAd ad)
   {
       if ( !shouldAlwaysRewardUser() )
       {
           listener.onUserRewarded(getReward());
       }
   }

   @Override
   public void onCompleted(@NonNull RewardedAd ad, @NonNull ShowFinishState state)
   {
       if ( shouldAlwaysRewardUser() )
       {
           listener.onUserRewarded(getReward());
       }
       listener.onRewardedAdHidden();
   }

   @Override
   public void onFailed(@NonNull RewardedAd ad, @NonNull UnityAdsError error) 
       { /* failed */ }
   } );
   ```

2. **Kotlin**

   ```kotlin
   loadedRewardedAd.show(activity, ShowConfiguration.Builder().build(), object : RewardedShowListener {
   override fun onStarted(ad: RewardedAd)  
   { /* displayed */ }
   override fun onClicked(ad: RewardedAd)  
   { /* clicked */ }

   override fun onRewarded(ad: RewardedAd) {
       if (!shouldAlwaysRewardUser()) {
           listener.onUserRewarded(getReward())
       }
   }

   override fun onCompleted(ad: RewardedAd, state: ShowFinishState) {
       if (shouldAlwaysRewardUser()) {
           listener.onUserRewarded(getReward())
       }
       listener.onRewardedAdHidden()
   }

   override fun onFailed(ad: RewardedAd, error: UnityAdsError) 
       { /* failed */ }
   })
   ```

## Rewarded video ad show example

1. **Java**

   ```java
   rewardedAd.show(activity, showConfig, rewardedAdShowListener)
   {
        @Override
        public void onStarted(@NonNull InterstitialAd ad)   
        { /* displayed */ }

        @Override
        public void onClicked(@NonNull InterstitialAd ad)   
        { /* clicked */ }

        @Override
        public void onCompleted(@NonNull InterstitialAd ad, @NonNull ShowFinishState state) 
        { /* hidden */ }

        @Override
        public void onFailed(@NonNull InterstitialAd ad, @NonNull UnityAdsError error)      
        { /* failed */ }
     } 
   ```

2. **Kotlin**

   ```kotlin
   rewardedAd.show(activity, showConfig, rewardedAdShowListener)
   {
        @Override
        public void onStarted(@NonNull InterstitialAd ad)   
        { /* displayed */ }

        @Override
        public void onClicked(@NonNull InterstitialAd ad)   
        { /* clicked */ }

        @Override
        public void onCompleted(@NonNull InterstitialAd ad, @NonNull ShowFinishState state) 
        { /* hidden */ }

        @Override
        public void onFailed(@NonNull InterstitialAd ad, @NonNull UnityAdsError error)      
        { /* failed */ }
     } 
   ```

**Next steps**: Refer to [Implement banner ads in Android](/ads-android/4.19.0/sdk-integration/banner-ads.md).
