App/Android

android admob 광고달기

selfstarter 2019. 8. 5. 21:53

android admob 광고달기

  1. https://apps.admob.com/v2/home 회원가입

  2. 광고를 하나 만든다(나는 배너광고를 만들었다)

  3. 그러면 앱 id와 배너 광고 id를 받을 수 있다. 앱 id는 앱의 고유한 id를 의미한다. 배너 광고 id는 광고의 id를 말한다(예를들어 하나의 앱 안의 여러개의 광고가 있을 수 있다. 그 광고들을 구분시켜주는 id가 광고id 이다)

  4. 앱 id는 ca-app-pub-123123123123~123123131123 이렇게 물결형식으로 되어있다. 배너 id는 ca-app-pub-123123123123/123123131123 '/'작대기를 쓴다

  5. 앱 id는 AndroidManifest.xml, Java에서 사용하고 배너id는 Layout에서 사용한다

  6. 테스트 중인 앱에선 실제 광고 id 대신 테스트 광고 id를 사용한다admob 테스트 가이드
    아래는 예제 코드

AndroidManifest.xml 설정

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

MainActivity.java

 private AdView mAdView = null;

 protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN);
        setContentView(R.layout.activity_main);

        MobileAds.initialize(this,"ca-app-pub-1231231231~123123123");
        mAdView = (AdView) findViewById(R.id.adViewMain);
        AdRequest adRequest = new AdRequest.Builder().build();
        mAdView.loadAd(adRequest);
 }

activity_main.xml

<com.google.android.gms.ads.AdView
    xmlns:ads="http://schemas.android.com/apk/res-auto"
    android:id="@+id/adViewMain"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_centerHorizontal="true"
    android:layout_alignParentBottom="true"
    ads:adSize="BANNER"
    ads:adUnitId="ca-app-pub-3940256099942544/6300978111">
</com.google.android.gms.ads.AdView>

Error 해결

Not retrying to fetch app settings
I/Ads: Ad failed to load : 2
자꾸만 I/Ads: Ad failed to load : 2 에러가 떴다. 알고보니 xml에 광고 id를 넣어야 하는데, 앱 id를 넣어서 발생한 오류였다

Attempt to invoke virtual method 'void com.google.android.gms.ads.AdView.loadAd(com.google.android.gms.ads.AdRequest)' on a null object reference
setContentView 하기 전(화면을 만들기 전) admob을 초기화하여 발생한 에러였다. 화면을 다 만들고 admob을 초기화하니 에러가 해결되었다.