Javascript/React-Native

[RN] React Native Admob 설치

eulBlue 2024. 9. 24. 16:20

📱테스트 환경

"react": "18.2.0"
"react-native": "0.74.2"

광고를 붙여야 돈을 벌 수 있으니 광고를 붙여보려고 한다.

근데 Android 는 좀해봤어도 IOS 개발은 안해봐서 설정에 좀 애먹다보니

해당 설정하는 내용을 기록하려고 한다!

Podfile 에

pod 'Google-Mobile-Ads-SDK'

해당 내용 추가

해당 내용은

target 'ProjectName' do

안에 넣어주면 된다.

그다음 Xcode 에서

File > Add Package Dependencies... 에서

https://github.com/googleads/swift-package-manager-google-mobile-ads.git

추가해주면 끝!


면 좋겠지만 .. 진짜 프로젝트 생성할때마다 에러를 겪어서 해당 방법을 추가한다..

Info.plist 에 해당 값을 추가한다.

<key>GADApplicationIdentifier</key>
<string>ca-app-pub-3940256099942544~1458002511</string>

string 값은 Amdob 에서 광고단위를 만들면 확인할 수 있으니 값은 변경해줘야한다.

안드로이드 같은 경우에는

AndroidManifest.xml 로 가서

<meta-data
    android:name="com.google.android.gms.ads.APPLICATION_ID"
    android:value="ca-app-pub-3940256099942544~1458002511"
    tools:replace="android:value"
/>

해당 값을 추가해준다.

FATAL EXCEPTION: main
Process: com.phonmacase, PID: 12610
java.lang.RuntimeException: Unable to get provider com.google.android.gms.ads.MobileAdsInitProvider: java.lang.IllegalStateException: 

******************************************************************************
* Invalid application ID. Follow instructions here:                          *
* https://googlemobileadssdk.page.link/admob-android-update-manifest         *
* to find your app ID.                                                       *
* Google Ad Manager publishers should follow instructions here:              *
* https://googlemobileadssdk.page.link/ad-manager-android-update-manifest.   *
******************************************************************************


    at android.app.ActivityThread.installProvider(ActivityThread.java:8297)
    at android.app.ActivityThread.installContentProviders(ActivityThread.java:7807)
    at android.app.ActivityThread.handleBindApplication(ActivityThread.java:7488)
    at android.app.ActivityThread.-$$Nest$mhandleBindApplication(Unknown Source:0)
    at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2416)
    at android.os.Handler.dispatchMessage(Handler.java:107)
    at android.os.Looper.loopOnce(Looper.java:232)
    at android.os.Looper.loop(Looper.java:317)
    at android.app.ActivityThread.main(ActivityThread.java:8705)
    at java.lang.reflect.Method.invoke(Native Method)
    at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:580)
    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:886)
Caused by: java.lang.IllegalStateException: 

******************************************************************************
* Invalid application ID. Follow instructions here:                          *
* https://googlemobileadssdk.page.link/admob-android-update-manifest         *
* to find your app ID.                                                       *
* Google Ad Manager publishers should follow instructions here:              *
* https://googlemobileadssdk.page.link/ad-manager-android-update-manifest.   *
******************************************************************************


    at com.google.android.gms.ads.internal.client.zzek.attachInfo(com.google.android.gms:play-services-ads-lite@@23.3.0:15)
    at com.google.android.gms.ads.MobileAdsInitProvider.attachInfo(com.google.android.gms:play-services-ads-lite@@23.3.0:1)
    at android.app.ActivityThread.installProvider(ActivityThread.java:8292)
    ... 11 more

뭐 이런 에러를 처음봤는데 해당 에러가 APPLICATION_ID 값이 잘못되서 그렇다고한다.

가이드대로 설치하고나면 값이

<meta-data
    android:name="com.google.android.gms.ads.APPLICATION_ID"
    android:value="${appJSONGoogleMobileAdsAppID}"/>

이런식으로 react-native-google-mobile-ads > AndroidManifest.xml 에 있을텐데

replace 를 통해서 ID 값을 적용시켜준다.