# firebase::gma::RewardedAd


`#include <rewarded_ad.h>`

Loads and displays Google Mobile Ads rewarded ads.

## Summary

[RewardedAd](https://developers.google.com/admob/cpp/reference/class/firebase/gma/rewarded-ad#classfirebase_1_1gma_1_1_rewarded_ad) is a single-use object that can load and show a single GMA rewarded ad.

[RewardedAd](https://developers.google.com/admob/cpp/reference/class/firebase/gma/rewarded-ad#classfirebase_1_1gma_1_1_rewarded_ad) objects provide information about their current state through Futures. [Initialize](https://developers.google.com/admob/cpp/reference/class/firebase/gma/rewarded-ad#classfirebase_1_1gma_1_1_rewarded_ad_1ac9a5abe7332744e9b552f0d2ff1b8ba3), [LoadAd](https://developers.google.com/admob/cpp/reference/class/firebase/gma/rewarded-ad#classfirebase_1_1gma_1_1_rewarded_ad_1a605b9817e1ef0b16c022c8a1d4b099dc), and [Show](https://developers.google.com/admob/cpp/reference/class/firebase/gma/rewarded-ad#classfirebase_1_1gma_1_1_rewarded_ad_1a2ce829f157134207c8a6b590504e8ed1) each have a corresponding [Future](https://developers.google.com/admob/cpp/reference/class/firebase/future#classfirebase_1_1_future) from which you can determine result of the previous call.

Here's how one might initialize, load, and show an rewarded ad while checking against the result of the previous action at each step:


```c++
namespace gma = ::firebase::gma;
gma::RewardedAd* rewarded = new gma::RewardedAd();
rewarded->Initialize(ad_parent);
```

<br />

Then, later:


```c++
if (rewarded->InitializeLastResult().status() ==
    ::firebase::kFutureStatusComplete &&
    rewarded->InitializeLastResult().error() ==
    firebase::gma::kAdErrorCodeNone) {
  rewarded->LoadAd( "YOUR_AD_UNIT_ID", my_ad_request);
}
```

<br />

And after that:


```c++
if (rewarded->LoadAdLastResult().status() ==
    ::firebase::kFutureStatusComplete &&
    rewarded->LoadAdLastResult().error() ==
    firebase::gma::kAdErrorCodeNone)) {
  rewarded->Show(&my_user_earned_reward_listener);
}
```

<br />

**[Deprecated.](https://developers.google.com/admob/cpp/reference/deprecated/deprecated)** The Google Mobile Ads C++ SDK is now deprecated. Please see <https://developers.google.com/admob/cpp/reference/namespace/firebase/gma> for more information.

| ### Constructors and Destructors ||
|---|---|
| `https://developers.google.com/admob/cpp/reference/class/firebase/gma/rewarded-ad#classfirebase_1_1gma_1_1_rewarded_ad_1a05f77f91a0cd6d05e6995830cbaf8dde()` Creates an uninitialized [RewardedAd](https://developers.google.com/admob/cpp/reference/class/firebase/gma/rewarded-ad#classfirebase_1_1gma_1_1_rewarded_ad) object. ||
| `https://developers.google.com/admob/cpp/reference/class/firebase/gma/rewarded-ad#classfirebase_1_1gma_1_1_rewarded_ad_1a20e80a56c529f86853b14e07cc4af9a1()` ||

| ### Public functions ||
|---|---|
| `https://developers.google.com/admob/cpp/reference/class/firebase/gma/rewarded-ad#classfirebase_1_1gma_1_1_rewarded_ad_1ac9a5abe7332744e9b552f0d2ff1b8ba3(https://developers.google.com/admob/cpp/reference/namespace/firebase/gma#namespacefirebase_1_1gma_1a1ed4b6a8f045afeb8aea12e47884ca9c parent)` | `https://developers.google.com/admob/cpp/reference/class/firebase/future#classfirebase_1_1_future< void >` Initialize the [RewardedAd](https://developers.google.com/admob/cpp/reference/class/firebase/gma/rewarded-ad#classfirebase_1_1gma_1_1_rewarded_ad) object. |
| `https://developers.google.com/admob/cpp/reference/class/firebase/gma/rewarded-ad#classfirebase_1_1gma_1_1_rewarded_ad_1a924b54c4ed23bd2eb07e1effa5ae41c9() const ` | `https://developers.google.com/admob/cpp/reference/class/firebase/future#classfirebase_1_1_future< void >` Returns a [Future](https://developers.google.com/admob/cpp/reference/class/firebase/future#classfirebase_1_1_future) containing the status of the last call to [Initialize](https://developers.google.com/admob/cpp/reference/class/firebase/gma/rewarded-ad#classfirebase_1_1gma_1_1_rewarded_ad_1ac9a5abe7332744e9b552f0d2ff1b8ba3). |
| `https://developers.google.com/admob/cpp/reference/class/firebase/gma/rewarded-ad#classfirebase_1_1gma_1_1_rewarded_ad_1a605b9817e1ef0b16c022c8a1d4b099dc(const char *ad_unit_id, const https://developers.google.com/admob/cpp/reference/class/firebase/gma/ad-request#classfirebase_1_1gma_1_1_ad_request & request)` | `https://developers.google.com/admob/cpp/reference/class/firebase/future#classfirebase_1_1_future< https://developers.google.com/admob/cpp/reference/class/firebase/gma/ad-result#classfirebase_1_1gma_1_1_ad_result >` Begins an asynchronous request for an ad. |
| `https://developers.google.com/admob/cpp/reference/class/firebase/gma/rewarded-ad#classfirebase_1_1gma_1_1_rewarded_ad_1acd4671fc57fecb921a434f0184e987f9() const ` | `https://developers.google.com/admob/cpp/reference/class/firebase/future#classfirebase_1_1_future< https://developers.google.com/admob/cpp/reference/class/firebase/gma/ad-result#classfirebase_1_1gma_1_1_ad_result >` Returns a [Future](https://developers.google.com/admob/cpp/reference/class/firebase/future#classfirebase_1_1_future) containing the status of the last call to [LoadAd](https://developers.google.com/admob/cpp/reference/class/firebase/gma/rewarded-ad#classfirebase_1_1gma_1_1_rewarded_ad_1a605b9817e1ef0b16c022c8a1d4b099dc). |
| `https://developers.google.com/admob/cpp/reference/class/firebase/gma/rewarded-ad#classfirebase_1_1gma_1_1_rewarded_ad_1a46d9d98a411697d994d4252a5e4e6049(https://developers.google.com/admob/cpp/reference/class/firebase/gma/full-screen-content-listener#classfirebase_1_1gma_1_1_full_screen_content_listener *listener)` | `void` Sets the [FullScreenContentListener](https://developers.google.com/admob/cpp/reference/class/firebase/gma/full-screen-content-listener#classfirebase_1_1gma_1_1_full_screen_content_listener) for this [RewardedAd](https://developers.google.com/admob/cpp/reference/class/firebase/gma/rewarded-ad#classfirebase_1_1gma_1_1_rewarded_ad). |
| `https://developers.google.com/admob/cpp/reference/class/firebase/gma/rewarded-ad#classfirebase_1_1gma_1_1_rewarded_ad_1aec0f68217cec31d8a57013faf08a3455(https://developers.google.com/admob/cpp/reference/class/firebase/gma/paid-event-listener#classfirebase_1_1gma_1_1_paid_event_listener *listener)` | `void` Registers a callback to be invoked when this ad is estimated to have earned money. |
| `https://developers.google.com/admob/cpp/reference/class/firebase/gma/rewarded-ad#classfirebase_1_1gma_1_1_rewarded_ad_1adf51013c5c2a54f1e69c781b3809175e(const https://developers.google.com/admob/cpp/reference/struct/firebase/gma/rewarded-ad/server-side-verification-options#structfirebase_1_1gma_1_1_rewarded_ad_1_1_server_side_verification_options & serverSideVerificationOptions)` | `void` Sets the server side verification options. |
| `https://developers.google.com/admob/cpp/reference/class/firebase/gma/rewarded-ad#classfirebase_1_1gma_1_1_rewarded_ad_1a2ce829f157134207c8a6b590504e8ed1(https://developers.google.com/admob/cpp/reference/class/firebase/gma/user-earned-reward-listener#classfirebase_1_1gma_1_1_user_earned_reward_listener *listener)` | `https://developers.google.com/admob/cpp/reference/class/firebase/future#classfirebase_1_1_future< void >` Shows the [RewardedAd](https://developers.google.com/admob/cpp/reference/class/firebase/gma/rewarded-ad#classfirebase_1_1gma_1_1_rewarded_ad). |
| `https://developers.google.com/admob/cpp/reference/class/firebase/gma/rewarded-ad#classfirebase_1_1gma_1_1_rewarded_ad_1a25a4351b55c423699d4d69693671bb70() const ` | `https://developers.google.com/admob/cpp/reference/class/firebase/future#classfirebase_1_1_future< void >` Returns a [Future](https://developers.google.com/admob/cpp/reference/class/firebase/future#classfirebase_1_1_future) containing the status of the last call to [Show](https://developers.google.com/admob/cpp/reference/class/firebase/gma/rewarded-ad#classfirebase_1_1gma_1_1_rewarded_ad_1a2ce829f157134207c8a6b590504e8ed1). |

| ### Structs ||
|---|---|
| [firebase::gma::RewardedAd::ServerSideVerificationOptions](https://developers.google.com/admob/cpp/reference/struct/firebase/gma/rewarded-ad/server-side-verification-options) | Options for [RewardedAd](https://developers.google.com/admob/cpp/reference/class/firebase/gma/rewarded-ad#classfirebase_1_1gma_1_1_rewarded_ad) server-side verification callbacks. |

## Public functions

### Initialize

```c++
Future< void > Initialize(
  AdParent parent
)
```
Initialize the [RewardedAd](https://developers.google.com/admob/cpp/reference/class/firebase/gma/rewarded-ad#classfirebase_1_1gma_1_1_rewarded_ad) object.

<br />

Details Parameters `parent` The platform-specific UI element that will host the ad.

### InitializeLastResult

```c++
Future< void > InitializeLastResult() const 
```
Returns a [Future](https://developers.google.com/admob/cpp/reference/class/firebase/future#classfirebase_1_1_future) containing the status of the last call to [Initialize](https://developers.google.com/admob/cpp/reference/class/firebase/gma/rewarded-ad#classfirebase_1_1gma_1_1_rewarded_ad_1ac9a5abe7332744e9b552f0d2ff1b8ba3).

### LoadAd

```c++
Future< AdResult > LoadAd(
  const char *ad_unit_id,
  const AdRequest & request
)
```
Begins an asynchronous request for an ad.

<br />

Details Parameters `ad_unit_id` The ad unit ID to use in loading the ad. `request` An [AdRequest](https://developers.google.com/admob/cpp/reference/class/firebase/gma/ad-request#classfirebase_1_1gma_1_1_ad_request) struct with information about the request to be made (such as targeting info).

### LoadAdLastResult

```c++
Future< AdResult > LoadAdLastResult() const 
```
Returns a [Future](https://developers.google.com/admob/cpp/reference/class/firebase/future#classfirebase_1_1_future) containing the status of the last call to [LoadAd](https://developers.google.com/admob/cpp/reference/class/firebase/gma/rewarded-ad#classfirebase_1_1gma_1_1_rewarded_ad_1a605b9817e1ef0b16c022c8a1d4b099dc).

### RewardedAd

```c++
 RewardedAd()
```
Creates an uninitialized [RewardedAd](https://developers.google.com/admob/cpp/reference/class/firebase/gma/rewarded-ad#classfirebase_1_1gma_1_1_rewarded_ad) object.

[Initialize](https://developers.google.com/admob/cpp/reference/class/firebase/gma/rewarded-ad#classfirebase_1_1gma_1_1_rewarded_ad_1ac9a5abe7332744e9b552f0d2ff1b8ba3) must be called before the object is used.

### SetFullScreenContentListener

```c++
void SetFullScreenContentListener(
  FullScreenContentListener *listener
)
```
Sets the [FullScreenContentListener](https://developers.google.com/admob/cpp/reference/class/firebase/gma/full-screen-content-listener#classfirebase_1_1gma_1_1_full_screen_content_listener) for this [RewardedAd](https://developers.google.com/admob/cpp/reference/class/firebase/gma/rewarded-ad#classfirebase_1_1gma_1_1_rewarded_ad).

<br />

Details Parameters `listener` A valid [FullScreenContentListener](https://developers.google.com/admob/cpp/reference/class/firebase/gma/full-screen-content-listener#classfirebase_1_1gma_1_1_full_screen_content_listener) to receive callbacks.

### SetPaidEventListener

```c++
void SetPaidEventListener(
  PaidEventListener *listener
)
```
Registers a callback to be invoked when this ad is estimated to have earned money.

<br />

Details Parameters `listener` A valid [PaidEventListener](https://developers.google.com/admob/cpp/reference/class/firebase/gma/paid-event-listener#classfirebase_1_1gma_1_1_paid_event_listener) to receive callbacks.

### SetServerSideVerificationOptions

```c++
void SetServerSideVerificationOptions(
  const ServerSideVerificationOptions & serverSideVerificationOptions
)
```
Sets the server side verification options.

<br />

Details Parameters `serverSideVerificationOptions` A [ServerSideVerificationOptions](https://developers.google.com/admob/cpp/reference/struct/firebase/gma/rewarded-ad/server-side-verification-options#structfirebase_1_1gma_1_1_rewarded_ad_1_1_server_side_verification_options) object containing custom data and a user Id.

### Show

```c++
Future< void > Show(
  UserEarnedRewardListener *listener
)
```
Shows the [RewardedAd](https://developers.google.com/admob/cpp/reference/class/firebase/gma/rewarded-ad#classfirebase_1_1gma_1_1_rewarded_ad).

This should not be called unless an ad has already been loaded.

<br />

Details Parameters `listener` The [UserEarnedRewardListener](https://developers.google.com/admob/cpp/reference/class/firebase/gma/user-earned-reward-listener#classfirebase_1_1gma_1_1_user_earned_reward_listener) to be notified when user earns a reward.

### ShowLastResult

```c++
Future< void > ShowLastResult() const 
```
Returns a [Future](https://developers.google.com/admob/cpp/reference/class/firebase/future#classfirebase_1_1_future) containing the status of the last call to [Show](https://developers.google.com/admob/cpp/reference/class/firebase/gma/rewarded-ad#classfirebase_1_1gma_1_1_rewarded_ad_1a2ce829f157134207c8a6b590504e8ed1).

### \~RewardedAd

```c++
 ~RewardedAd()
```