Rewarded ads give your users in-app items for interacting with video ads, playable ads, and surveys. For details, see Overview of rewarded ad units.
This guide shows you how to integrate rewarded ads into a React Native app.
Prerequisites
Before you continue, do the following:
- Set up Google Mobile Ads SDK for React Native.
- Enable test ads and use the following test ad unit:
Android
ca-app-pub-3940256099942544/5224354917
iOS
ca-app-pub-3940256099942544/1712485313
Load an ad
To load a rewarded ad, call the load method on
the RewardedAd class.
The following example loads a rewarded ad on success and logs an error on failure:
export async function loadRewardedAd(
adUnitId: string,
): Promise<RewardedAd | null> {
try {
const ad = await RewardedAd.load({adUnitId});
return ad;
} catch (error) {
const loadError = error as LoadAdError;
console.error('Failed to load rewarded ad:', loadError.message);
return null;
}
}
Listen for ad events
Before you show the ad, set the
adEventCallback listener on the loaded
RewardedAd instance. This listener
receives callbacks for ad lifecycle events, such as the ad showing on the
screen or a user tapping the ad. For available callbacks, see
AdEventCallback.
The following example sets callbacks to listen for ad events:
export function registerAdEvents(ad: RewardedAd) {
ad.adEventCallback = {
// Called when the ad is presented on screen.
onAdShowedFullScreenContent: () => {
console.log('Rewarded ad showed full screen content.');
},
// Called when the ad is closed by the user.
onAdDismissedFullScreenContent: () => {
console.log('Rewarded ad dismissed full screen content.');
ad.destroy();
},
// Called when presentation fails.
onAdFailedToShowFullScreenContent: (error) => {
console.error('Failed to show rewarded ad:', error);
ad.destroy();
},
// Called when an impression is recorded.
onAdImpression: () => {
console.log('Rewarded ad recorded an impression.');
},
// Called when the user taps the ad.
onAdClicked: () => {
console.log('Rewarded ad was clicked.');
},
// Called when the ad is estimated to have earned money.
onAdPaid: (adValue) => {
console.log(
`Rewarded ad paid: ${adValue.amountMicros} ${adValue.currencyCode}`,
);
},
};
}
This example also calls the destroy method when a user closes the ad or when
the ad fails to show. This process releases the resources the ad used.
Show the ad
To show a rewarded ad, call the show method with
a callback to handle the reward that the user earned:
export function showRewardedAd(
ad: RewardedAd,
onRewardEarned: (reward: Reward) => void,
) {
ad.show(onRewardEarned);
}
Optional: Validate server-side verification callbacks
If your app requires custom verification parameters, such as a user ID or
custom reward metadata, in server-side verification (SSV) callbacks,
set the
serverSideVerificationOptions
property on the loaded ad instance before showing the ad.
The values you set are passed to the SSV callback query parameters:
userId: Passes to theuser_idquery parameter to identify the user.customData: Passes to thecustom_dataquery parameter to forward custom metadata.
The following example sets
ServerSideVerificationOptions
(customData and
userId) on a rewarded ad
object before showing an ad:
View the full example
This section covers the full example to integrate a rewarded ad into a React Native app.
The following example integrates the ad into a React Native component, manages the ad instance in state, and provides controls to load and display the ad:
Next steps
After you integrate a rewarded ad, explore the following topics: