앱개발 종합반 5주차 - 1

귀찮Lee·2022년 3월 24일
0

App 강의

목록 보기
5/9

□ [왕초보] 나만의 수익성 앱, 앱개발 종합반 (5주차 과정)

22.03.24(목)

애드몹(AdMob)

  • 종류: 배너, 리워드...
// 설치하기
expo install expo-ads-admob

//app.json에 추가 / key 값은 해당 키값을 추가
"ios": {
      "supportsTablet": true,
      "buildNumber": "1.0.0",
      "bundleIdentifier": "com.myhoneytip.gun",
      "config": {
        "googleMobileAdsAppId": ""
      }
    },
    "android": {
          "package": "com.myhoneytip.gun",
          "versionCode": 1,
          "config": {
            "googleMobileAdsAppId": ""
          }
  }

◎ 애드몹(AdMob) 하단 배너 추가

// Mainpage
import {
  //setTestDeviceIDAsync,
  AdMobBanner,
  //AdMobInterstitial,
  //PublisherBanner,
  //AdMobRewarded
} from 'expo-ads-admob';

// Mainpage 메인 함수 return 값에 추가
// adUnitID는 값에 따라 바꾸어야 함
 {Platform.OS === 'ios' ? (
                <AdMobBanner
                  bannerSize="fullBanner"
                  servePersonalizedAds={true}
                  adUnitID="ca-app-pub-3271224099084995/6111705561"
                  style={styles.banner}
                />
            ) : (
                <AdMobBanner
                  bannerSize="fullBanner"
                  servePersonalizedAds={true}
                  adUnitID="ca-app-pub-3271224099084995/8434632486"
                  style={styles.banner}
                />
            )}

◎ 애드몹(AdMob) 페이지 이동시 짧은 광고 추가

import {
  //setTestDeviceIDAsync,
  //AdMobBanner,
  AdMobInterstitial,
  //PublisherBanner,
  //AdMobRewarded
} from 'expo-ads-admob';

useEffect(()=>{
  // Card.js에 들어오자마자 전면 광고 준비하느라 useEffect에 설정
  //애드몹도 외부 API 이므로 실행 순서를 지키기위해 async/await 사용!
  //안드로이드와 IOS 각각 광고 준비 키가 다르기 때문에 디바이스 성격에 따라 다르게 초기화 시켜줘야 합니다.
  // setAdUnitID 값은 다르게 설정해주어야 함
        Platform.OS === 'ios' ? AdMobInterstitial.setAdUnitID("ca-app-pub-3271224099084995/3801252904") : AdMobInterstitial.setAdUnitID("ca-app-pub-3271224099084995/3812845286")

        AdMobInterstitial.addEventListener("interstitialDidLoad", () =>
            console.log("interstitialDidLoad")
        );
        AdMobInterstitial.addEventListener("interstitialDidFailToLoad", () =>
            console.log("interstitialDidFailToLoad")
        );
        AdMobInterstitial.addEventListener("interstitialDidOpen", () =>
            console.log("interstitialDidOpen")
        );
        AdMobInterstitial.addEventListener("interstitialDidClose", () => {
              //광고가 끝나면 다음 코드 줄이 실행!
            console.log("interstitialDidClose")
            navigation.navigate('DetailPage',{idx:content.idx})
        });
    },[])

 const goDetail = async () =>{

      await AdMobInterstitial.requestAdAsync({ servePersonalizedAds: true});
      await AdMobInterstitial.showAdAsync();
    }
profile
배운 것은 기록하자! / 오류 지적은 언제나 환영!

0개의 댓글