Published on

React Native 10장: 광고 수익화 (AdMob, 보상형 광고 등)

[10장] 광고 수익화 (AdMob, 보상형 광고 등)


1. 수익화 방식 종류

방식예시설명
배너 광고화면 하단 작게 고정됨가장 흔하지만 수익 낮음
전면 광고페이지 전환 시 전체 화면에 노출수익 높음, UX 신경 써야 함
보상형 광고“광고 보면 포인트 지급”사용자 선택 기반, 가장 추천됨
네이티브 광고콘텐츠 중간에 자연스럽게 삽입UX 최상, 구현 난이도 높음

2. Google AdMob 준비

  1. https://apps.admob.com 에서 앱 등록 (패키지명 필요)
  2. 광고 단위 ID 생성
    • 배너 / 전면 / 보상형 광고 각각 ID 따로 생성
  3. 테스트 광고 ID 사용 권장 (ca-app-pub-3940256099942544/...)

3. 라이브러리 설치 (React Native Firebase 기반)

npm install react-native-google-mobile-ads
npx pod-install

설정

  • iOS: Info.plist에 GADApplicationIdentifier 추가
  • Android: AndroidManifest.xml에 meta-data 설정 추가

4. 배너 광고

import { BannerAd, BannerAdSize, TestIds } from 'react-native-google-mobile-ads';

<BannerAd
  unitId={TestIds.BANNER}
  size={BannerAdSize.ADAPTIVE_BANNER}
  requestOptions={{ requestNonPersonalizedAdsOnly: true }}
/>

5. 전면 광고 (Interstitial)

import { InterstitialAd, AdEventType, TestIds } from 'react-native-google-mobile-ads';

const interstitial = InterstitialAd.createForAdRequest(TestIds.INTERSTITIAL);

useEffect(() => {
  const unsubscribe = interstitial.addAdEventListener(AdEventType.LOADED, () => {
    interstitial.show();
  });

  interstitial.load();

  return () => unsubscribe();
}, []);

6. 보상형 광고

import { RewardedAd, RewardedAdEventType } from 'react-native-google-mobile-ads';

const rewarded = RewardedAd.createForAdRequest(TestIds.REWARDED);

useEffect(() => {
  const listener = rewarded.addAdEventListener(RewardedAdEventType.EARNED_REWARD, reward => {
    console.log('보상 획득!', reward);
  });

  rewarded.load();

  return () => listener();
}, []);

const showRewardAd = () => {
  if (rewarded.loaded) {
    rewarded.show();
  }
};

7. 광고 UX 팁

  • 광고 위치는 사용자 흐름을 방해하지 않는 곳에
  • 보상형은 사용자가 선택할 수 있게 해야 거부감 적음
  • 광고 너무 자주 → 이탈률 증가, 리텐션 저하
  • 전면 광고는 특정 행동 후 1회만, 타이밍 제어 중요

8. 실시간 수익 확인 & 최적화

  • AdMob 콘솔 → 수익, 클릭률, 노출률 분석 가능
  • 플랫폼/국가/시간대별 최적화
  • 낮은 수익 단위는 제거, 보상형 위주로 전략 변경

요약

  • 광고는 앱 내 자연스러운 위치에 적절한 빈도로 삽입해야 수익과 UX를 함께 잡을 수 있음
  • 보상형 광고는 사용자와의 Win-Win 구조로 가장 추천
  • react-native-google-mobile-ads는 공식 최신 AdMob SDK 기반
  • iOS는 승인 심사에서 광고 과다 노출 시 반려될 수 있으므로 주의

심화학습

Q1. 테스트 광고 ID를 계속 쓰면 실제 수익이 들어오나요?
A1. 아니. 테스트 광고는 절대 수익이 발생하지 않는다. 실제 광고 ID로 배포 후부터 수익 계산이 시작된다.


Q2. 보상형 광고에서 사용자에게 아이템을 주는 로직은 언제 실행해야 하나요?
A2. 반드시 RewardedAdEventType.EARNED_REWARD 이벤트 시점에만 지급해야 한다. 광고 재생만으로 지급하면 악용 가능성 있음.


Q3. 광고가 앱 로딩을 느리게 만들 수 있나요?
A3. 가능하다. 특히 전면 광고를 App.js에 preload하면 앱 진입 자체가 느려질 수 있다. 광고는 필요한 시점에만 load + show 하는 방식이 안정적이다.