@earthling/react-native-admob
TypeScript icon, indicating that this package has built-in type declarations

1.1.1 • Public • Published

cover with mockup

React Native AdMob

npm version weekly downloads npm bundle size license

Admob for React Native with powerful hooks and components

📦 Installation

See Installation Guide

📃 Documentation

Head over Documentation Page

🚀 Usage

Initializing Mobile Ads SDK

import AdMob from '@react-native-admob/admob';

AdMob.initialize();

Displaying Banner Ad

import { BannerAd, BannerAdSize } from '@react-native-admob/admob';

<BannerAd
  size={BannerAdSize.BANNER}
  unitId={UNIT_ID_BANNER}
  onAdFailedToLoad={(error) => console.error(error)}
  requestOptions={{
    requestNonPersonalizedAdsOnly: true,
  }}
/>;

Displaying InterstitialAd

import { useInterstitialAd } from '@react-native-admob/admob';

const { adLoadError, adLoaded, show } = useInterstitialAd(UNIT_ID_INTERSTITIAL);

useEffect(() => {
  if (adLoadError) {
    console.error(adLoadError);
  }
}, [adLoadError]);

useEffect(() => {
  if (adLoaded) {
    show();
  }
}, [adLoaded]);

Displaying RewardedAd

import { useRewardedAd } from '@react-native-admob/admob';

const { adLoadError, adLoaded, show, reward } = useRewardedAd(UNIT_ID_REWARDED);

useEffect(() => {
  if (adLoadError) {
    console.error(adLoadError);
  }
}, [adLoadError]);

useEffect(() => {
  if (adLoaded) {
    show();
  }
}, [adLoaded]);

useEffect(() => {
  if (reward) {
    console.log('Reward earned: ');
    console.log(reward);
  }
}, [reward]);

Displaying App Open Ad

import { useAppOpenAd } from '@react-native-admob/admob';
import RNBootSplash from 'react-native-bootsplash';

export default function App() {
  const [initialized, setInitialized] = useState(false);
  const [loaded, setLoaded] = useState(false);
  const [splashDismissed, setSplashDismissed] = useState(false);
  const { adDismissed, adLoadError } = useAppOpenAd(
    initialized ? UNIT_ID_APP_OPEN : null,
    {
      showOnColdStart: true,
    }
  );

  useEffect(() => {
    const initAdmob = async () => {
      await AdMob.initialize();
      setInitialized(true);
    };
    const load = async () => {
      await new Promise((resolve) => setTimeout(resolve, 3000));
      setLoaded(true);
    };

    initAdmob();
    load();
  }, []);

  useEffect(() => {
    if (initialized && loaded && (adDismissed || adLoadError)) {
      RNBootSplash.hide({ fade: true });
      setSplashDismissed(true);
    }
  }, [initialized, loaded, adDismissed, adLoadError]);

  return splashDismissed ? <Example /> : <View />;
}

For detailed usage, head over Documentation.

Change Log

See Change Log

License

MIT

Package Sidebar

Install

npm i @earthling/react-native-admob

Weekly Downloads

1

Version

1.1.1

License

MIT

Unpacked Size

333 kB

Total Files

148

Last publish

Collaborators

  • vhle