본문 바로가기

Android/Guide

[AdMob] 애드몹 광고 달기

(2018.12.23 최신 정보 업데이트)


물론 사람이 순수하게 인류의 발전을 위해 앱을 만들어야 하겠지만, 나도 모르게 광고를....

순서는 아래와 같다. ㅋ


공식 설정순서는 아래 사이트를 참고하면 된다.

https://developers.google.com/admob/android/quick-start


1. AdMob 가입

2. Gradle 수정

3. AndroidManifest.xml 수정

4. layout.xml 수정

5. activity 수정

6. 주의사항


AdMob 가입 (https://www.google.co.kr/admob/)  - 그림 업로드가 안되어 다음에...  


가입은 구글계정만 있으면 가능하다.

[수익창출] > [새로운 앱에서 수익창출] 을 선택하여 순서대로 등록한다.


[앱 선택]

  - 이미 마켓에 출시한 앱이 있다면 앱 검색으로 처리하고 아니라면, 앱 직접 추가를 선택하여 이름과 플랫폼(Android)를 선택한다.

  - 앱 추가를 누르면 앱 ID 라는 것이 생기는데 이 값을 나중에 string.xml에 기재하게 된다.

[광고 형식 선택]

  - 보통 배너를 할 것이고 나머진 그대로 두고 광고 단위 이름을 아무거나 정한다. (ex. 앱이름_하단배너)

[Firebase 애널리틱스 설정]

  - 선택사항인데 난 그냥 건너 뛴다.


그럼 광고를 사용할 준비가 완료되었다. 경험상 광고를 생성하자 마자 앱 ID를 등록하여 사용하면 광고가 나오지 않는다.

어느정도 시간이 지나야 동작하니 1-2시간 전에 미리 만들어 앱 ID를 생성해 두자



Gradle 에 compile 추가                              


구글 광고 관련 라이브러리를 사용할 수 있게 아래처럼 build.gradle(Module:app) 파일의 dependencies에 추가한다.

버전은 계속해서 변경 될 수 있으니 한번씩 adMob 사이트에서 확인하자.

compile 'com.google.android.gms:play-services-ads:17.1.1'



AndroidManifest.xml 수정                          


광고는 인터넷을 사용하기에 아래 퍼미션을 추가한다.

<uses-permission android:name="android.permission.INTERNET"/>

application 레벨 아래에 meta-data를 넣어준다

이 작업은 play-services-ads 버전이 17.0.0 이상일 경우에만 넣어준다. [ADMOB_APP_ID] 는 본인이 등록한 정보를 참고한다.

<meta-data
android:name="com.google.android.gms.ads.APPLICATION_ID"
android:value="@string/admob_app_id"/>



layout.xml 수정                                        


광고를 등록하고자 하는 layout에 광고 영역을 추가한다.AdView를 추가하여 화면에 보일 준비를 한다.

<com.google.android.gms.ads.AdView
xmlns:ads="http://schemas.android.com/apk/res-auto"
android:id="@+id/adView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerHorizontal="true"
android:layout_alignParentBottom="true"
ads:adSize="BANNER"
ads:adUnitId="@string/banner_ad_unit_id">
</com.google.android.gms.ads.AdView>


activity 수정                                              


광고를 등록하고자 하는 activity 소스에 로직을 추가한다.

나는 adMob() 이라는 함수를 만들고 onCreate나 초기화 하는 부분에서 그냥 호출해주는 방식으로 구현한다.

private void adMob(){
MobileAds.initialize(this, getString(R.string.admob_app_id));
AdView mAdView = findViewById(R.id.adView);
Bundle extras = new Bundle();
extras.putString("max_ad_content_rating", "G"); // 앱이 3세 이상 사용가능이라면 광고레벨을 설정해줘야 한다
AdRequest adRequest = new AdRequest.Builder()
.addNetworkExtrasBundle(AdMobAdapter.class, extras)
.build();
mAdView.loadAd(adRequest);
}



주의사항                                                   


광고는 보통 클릭이 되어야 비용이 발생된다. 개발을 하고 테스트 해본다고 한 두번 눌러보다가는 광고정지를 당하게 된다 ㅎ

1달 동안 광고가 정리되면 더 잘못하면 계정이 아예 block 된다고 하니 주의 해야 한다.

배너를 위한 테스트를 위한다면 아래 ID를 string의 banner_ad_unit_id 에 설정한다.

ca-app-pub-3940256099942544/6300978111

다른 유형의 광고라면 https://developers.google.com/admob/android/quick-start 를 참고하면 된다.


앱의 연령유형에 따라 광고의 등급을 설정해야 한다. 나의 경우는 G등급이기에 위 소스처럼  Bunde을 이용하여 등록한다.