Rewarded Video: Publishers Get Started

Prerequisites

Request rewarded video

GADRewardBasedVideoAd has a singleton design, so the following example shows a request to load an ad being made to the shared instance:

[[GADRewardBasedVideoAd sharedInstance] loadRequest:[GADRequest request]
                                       withAdUnitID:@"ca-app-pub-3940256099942544/1712485313"];

To allow videos to be preloaded, we recommend calling loadRequest: as early as possible (for example, in your app delegate's application:didFinishLaunchingWithOptions: method).

Set up event notification

To set up event notification, insert the line shown in bold before your loadRequest: call:

[GADRewardBasedVideoAd sharedInstance].delegate = self;
[[GADRewardBasedVideoAd sharedInstance] loadRequest:[GADRequest request]
                                       withAdUnitID:@"ca-app-pub-3940256099942544/1712485313"];

GADRewardBasedVideoAdDelegate notifies you of rewarded video lifecycle events. You are required to set the delegate prior to loading an ad. The most important event in this delegate is rewardBasedVideoAd:didRewardUserWithReward:, which is called when the user should be rewarded for watching a video. You may optionally implement other methods in this delegate.

Here is an example that logs each event available in GADRewardBasedVideoAdDelegate::

- (void)rewardBasedVideoAd:(GADRewardBasedVideoAd *)rewardBasedVideoAd
    didRewardUserWithReward:(GADAdReward *)reward {
  NSString *rewardMessage =
      [NSString stringWithFormat:@"Reward received with currency %@ , amount %lf",
          reward.type,
          [reward.amount doubleValue]];
  NSLog(rewardMessage);
}

- (void)rewardBasedVideoAdDidReceiveAd:(GADRewardBasedVideoAd *)rewardBasedVideoAd {
  NSLog(@"Reward based video ad is received.");
}

- (void)rewardBasedVideoAdDidOpen:(GADRewardBasedVideoAd *)rewardBasedVideoAd {
  NSLog(@"Opened reward based video ad.");
}

- (void)rewardBasedVideoAdDidStartPlaying:(GADRewardBasedVideoAd *)rewardBasedVideoAd {
  NSLog(@"Reward based video ad started playing.");
}

- (void)rewardBasedVideoAdDidClose:(GADRewardBasedVideoAd *)rewardBasedVideoAd {
  NSLog(@"Reward based video ad is closed.");
}

- (void)rewardBasedVideoAdWillLeaveApplication:(GADRewardBasedVideoAd *)rewardBasedVideoAd {
  NSLog(@"Reward based video ad will leave application.");
}

- (void)rewardBasedVideoAd:(GADRewardBasedVideoAd *)rewardBasedVideoAd
    didFailToLoadWithError:(NSError *)error {
  NSLog(@"Reward based video ad failed to load.");
}

Additional parameters

Ad networks may support extra targeting parameters or inputs that are not covered by the additional request parameters provided by the Google Mobile Ads SDK. These ad networks may provide a class that implements the GADAdNetworkExtras protocol. You can pass each ad network an instance of the GADAdNetworkExtras subclass when you build the ad request.

Suppose an ad network created a class that supported a muteAudio parameter. Let's call that class GADMMyAdNetworkExtras for the sake of this example. Here is how you could create this object and add it to the request:

GADRequest *request = [GADRequest request];
GADMMyAdNetworkExtras *myAdNetworkExtras = [[GADMMyAdNetworkExtras alloc] init];
myAdNetworkExtras.muteAudio = YES;
[request registerAdNetworkExtras:myAdNetworkExtras];

The GADMMyAdNetworkExtras class is used as an example in the code snippet above. Substitute the adapter class corresponding to the network for which your bundle is intended.

If an adapter supports extra parameters, refer to the ad network's documentation to learn how to pass extra parameters to that network.

Display rewarded video

It is a best practice to ensure a rewarded video ad has completed loading before attempting to display it. The isReady method indicates that a rewarded video ad request has been successfully fulfilled:

if ([[GADRewardBasedVideoAd sharedInstance] isReady]) {
  [[GADRewardBasedVideoAd sharedInstance] presentFromRootViewController:self];
}

Integration with Unity

For instructions on integrating rewarded video into a Unity project, see Rewarded Video.

Download the example

You can also download the rewarded video example from GitHub to see rewarded video ads in action.

Download example from GitHub

Send feedback about...

AdMob by Google
AdMob by Google