Monetizing Your React Native App Using AdMob

Monetizing Your React Native App Using AdMob

Written by
Written by

Debasish S.

Post Date
Post Date

Oct 17, 2025

shares

1_ETx4oOcfVajvdDnZuRJ5NA

What is AdMob?

Google AdMob is a mobile advertising platform that allows app developers to earn revenue by displaying ads inside their apps. It supports multiple ad formats, each with its own purpose:

The key is choosing the right format for your app’s flow and user behavior.

Before We Begin

Make sure you have:

Once that’s ready, let’s dive in.

Step 1: Create Your AdMob App

1. Go to the Google AdMob dashboard.

2. Click Apps → Add App and select your platform (Android or iOS).

3. Copy your App ID — you’ll need it later when configuring the native projects.

Step 2: Install the AdMob Package

Run the following command inside your React Native project:

npm install react-native-google-mobile-ads # or yarn add react-native-google-mobile-ads
This library provides a clean React Native interface for AdMob’s SDKs.

Step 3: Configure Your Native Projects

Android

<meta-data   android:name="com.google.android.gms.ads.APPLICATION_ID"   android:value="ca-app-pub-xxxxxxxxxxxxxxxx~yyyyyyyyyy"/>

iOS

<key>GADApplicationIdentifier</key> <string>ca-app-pub-xxxxxxxxxxxxxxxx~yyyyyyyyyy</string>
Also include your App IDs in app.json:
{   "react-native-google-mobile-ads": {     "android_app_id": "ca-app-pub-xxxxxxxx~xxxxxxxx",     "ios_app_id": "ca-app-pub-xxxxxxxx~xxxxxxxx"   } }

Step 4: Handle iOS App Tracking Transparency (ATT)

<key>NSUserTrackingUsageDescription</key> <string>This identifier will be used to deliver personalized ads to you.</string>
import { >requestTrackingPermission } from 'react-native-tracking-transparency'; const status = awaitrequestTrackingPermission(); console.log('ATT status:', status);

Step 5: Use Test Ads During Development

Step 6: Add Ads to Your App

1. Banner Ads

import React from 'react'; import { View } from 'react-native'; import { BannerAd, BannerAdSize, TestIds } from 'react-native-google-mobile-ads'; const bannerAdUnitId = __DEV__ ? TestIds.BANNER : 'ca-app-pub-xxxxxxxxxxxxxxxx/xxxxxxxxxx'; export default function BannerExample() {   return (     <View style={{ alignItems: 'center', marginVertical: 10 }}>       <BannerAd         unitId={bannerAdUnitId}         size={BannerAdSize.BANNER}         requestOptions={{           requestNonPersonalizedAdsOnly: true,         }}       />     </View>   ); }

Best Practice: Place banners away from buttons or text inputs to prevent accidental taps.

2. Interstitial Ads

 

import { useEffect } from 'react'; import { InterstitialAd, AdEventType, TestIds } from 'react-native-google-mobile-ads'; const interstitialAdUnitId = __DEV__ ? TestIds.INTERSTITIAL : 'ca-app-pub-xxxxxxxxxxxxxxxx/xxxxxxxxxx'; const interstitial = InterstitialAd.createForAdRequest(interstitialAdUnitId); export default function useInterstitial() { useEffect(() => { const unsubscribe = interstitial.addAdEventListener(AdEventType.LOADED, () => { interstitial.show(); }); interstitial.load(); return unsubscribe; }, []); }
Tip: Show interstitials only after a user completes an action (like finishing a level or submitting a form).

3. Rewarded Ads

 

import { useEffect } from 'react'; import { RewardedAd, RewardedAdEventType, TestIds } from 'react-native-google-mobile-ads'; const rewardedAdUnitId = __DEV__ ? TestIds.REWARDED : 'ca-app-pub-xxxxxxxxxxxxxxxx/xxxxxxxxxx'; const rewarded = RewardedAd.createForAdRequest(rewardedAdUnitId); export default function useRewardedAd(onReward) {   useEffect(() => {     const rewardListener = rewarded.addAdEventListener(RewardedAdEventType.EARNED_REWARD, reward => {       onReward(reward);     });     rewarded.load();     return rewardListener;   }, []); }

Use Case: Offer users a “Watch Ad to Earn Reward” button for premium access or bonus features.

4. App Open Ads

 

import { AppOpenAd, AdEventType, TestIds } from 'react-native-google-mobile-ads'; import { useEffect } from 'react'; const appOpenAdUnitId = __DEV__ ? TestIds.APP_OPEN : 'ca-app-pub-xxxxxxxxxxxxxxxx/xxxxxxxxxx'; const appOpenAd = AppOpenAd.createForAdRequest(appOpenAdUnitId); export default function useAppOpenAd() {   useEffect(() => {     const unsubscribe = appOpenAd.addAdEventListener(AdEventType.LOADED, () => {       appOpenAd.show();     });     appOpenAd.load();     return unsubscribe;   }, []); }

Important: Wait until your splash screen or intro finishes before showing App Open ads.

Step 7: Monetization Best Practices

Step 8: Follow Ad Placement Rules

Violating AdMob policies can tank your revenue — or your entire account. Here’s how to stay safe:

A clean user experience doesn’t just keep you compliant — it keeps your users happy, and happy users engage more (which means more revenue anyway).

Step 9: Advanced Optimization

Once your ads are live, start refining your strategy:

Conclusion

Monetizing your React Native app with AdMob isn’t just about slapping in ads — it’s about doing it thoughtfully.

When you create a balance between profit and user satisfaction — the true mark of a sustainable app business.

Pro Tip: Happy users bring better engagement and, ultimately, better ad revenue. Prioritize their experience, and the profits will follow.