AdMob은 사용자 앱에서 광고를 할 수 있도록 구글에서 제공하는 방법입니다.

이것도 이제 Firebase에서 지원하고 있으니 한 번 안드로이드 앱에 광고를 추가해 보도록 하겠습니다.


Firebase 프로젝트를 생성하고 안드로이드 앱에 Firebase를 추가하는 것은 http://zeany.net/26 를 참조하세요.

이제 안드로이드 프로젝트는 이미 생성되었고 Firebase도 추가되어 있는 상태라고 가정하고 진행합니다. 



1. AdMob 가입하기


Firebase console (https://console.firebase.google.com/?hl=ko)에서 생성한 Firebase 프로젝트를 클릭하여 들어가면 가장 왼쪽 아래 메뉴에 AdMob 이 있습니다.


이것을 클릭했을 때 아직 AdMob에 가입하지 않았다면 다음과 같은 가입 안내 문구가 보이게 됩니다.



또는 https://apps.admob.com/signup/?hl=ko 을 통해 바로 가입할 수도 있습니다.

이제 아래 그림에 보이는 5개의 절차를 진행합니다.


위에서 보이는 애드센스는 사용자가 돈을 받고 광고를 해주는 것이고, 애드워즈는 사용자의 앱을 돈을 주고 광고를 하는 것입니다. 여기서 관심있는 것은 애드센스이지만, 정보는 둘 다 입력해야 합니다.


5개의 절차를 완료하면 AdMob 홈으로 다시 이동하게 되는데, 여기서 광고를 게재할 앱을 등록해야 합니다.



2. AdMob에 광고를 게재할 앱 등록하기


처음 접근했을 때 보이는 빨간 시작하기 버튼을 클릭하거나 수익 창출 탭을 클릭하세요.



이제 어떤 종류의 광고를 어떤 앱에 게재할 것인지를 4단계에 걸쳐 설정합니다.


1) 앱 선택


앱이 마켓에 등록되어 있지 않다면 앱 직접 추가 탭을 눌러 원하는 앱 이름과 플랫폼으로 ANDROID를 선택합니다.


2) 광고 형식 선택 및 광고 단위 이름 지정


우선 가장 기본인 배너를 선택하고 나머지 옵션들은 선택된 그대로 놔둡니다. 광고 단위 이름만 추후 구분할 수 있는 이름으로 정해주세요. ex, 홈 300x250


3) Firebase 애널리틱스 설정(선택사항)


특별한 이유가 없다면 진행 과정에서 이미 Firebase 프로젝트로 등록되어 있을테니 FIREBASE에 연결 해줍니다. 단, 연결하려는 앱의 패키지 이름을 입력해야 하는데 추후 변경이 불가능하다고 하니 정확히 입력하세요.

참고로 패키지 이름은 앱 단위 build.gradle 의 applicationId 입니다.



4) 구현 안내 보기


이 화면에서 1, 2 는 이미 구글 광고가 Firebase에 통합되었기 때문에 의미 없고 3. 은 google-services.json 이기 때문에 절차대로 진행해왔으면 이미 안드로이드 앱에 추가가 되어 있습니다. 4.는 안드로이드 앱에 광고를 추가하는 것이고 아래에서 설명합니다.




3. 안드로이드 앱에 광고 추가하기


이제 마지막 단계입니다. 이에 대한 설명은 https://firebase.google.com/docs/admob/?hl=ko 에 한글로 잘 나와 있습니다.


간략히 절차만 정리하면 다음과 같습니다.


1) 준비 사항


애드몹 홈페이지(https://apps.admob.com/#home)의 수익 창출을 누른 후 왼쪽에 추가한 앱을 선택하세요. 이후 설정 안내 보기를 클릭하면 앱 ID 와 광고 단위 ID를 확인할 수 있으니 복사해 두세요.



2) 주의 사항


절대 절대 테스트 전용 기기나 자신의 기기 또는 에뮬레이터 등에서 위에서 찾아놓은 ID를 통해 게재된 광고를 클릭하지 마세요. 아래 설명에서 보여주는 테스트용 ID로만 테스트를 하거나 자신의 기기는 테스트 기기로 등록하세요.


즉, 고의든 실수든(!!) 불건전한 방법으로 광고를 이용해 수익을 내려고 하지 마세요.


이 사항을 어기면 구글에서 계정을 정지 시키거나 바로 없애버릴 수도 있습니다. 지금까지 접하지 못했던 구글의 차가운 모습을 볼 수 있으니 절대 주의하시기 바랍니다.  


3) 앱 수준 build.gradle 수정


앱 수준 build.gradle에 compile 'com.google.firebase:firebase-ads:10.0.1' 를 추가합니다.

firebase-core는 Analytics 때문에 필요합니다. 만약 클라우드 메시지를 보내지 않는다면 firebase-messaging은 삭제하거나 주석 처리해도 무방합니다.  


 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
...
    dependencies {
            compile fileTree(dir: 'libs', include: ['*.jar'])
            ...


            compile 'com.google.firebase:firebase-core:10.0.1'
            // compile 'com.google.firebase:firebase-messaging:10.0.1'
            compile 'com.google.firebase:firebase-ads:10.0.1'
        }
...

apply plugin: 'com.google.gms.google-services'


추가 후에는 화면 상단 위에 Sync Now를 눌러주세요.


4) res/values/strings.xml 수정


아래처럼 test용과 위에서 준비한 광고 단위 ID를 입력하세요. 참고로 test용은 구글에서 공유한 것으로 공개해도 무방합니다.


    <!-- test ad -->

    <string name="banner_ad_unit_id">ca-app-pub-3940256099942544/6300978111</string>

    <!-- real ad -->

    <!--<string name="banner_ad_unit_id">ca-app-pub-광고 단위 ID</string>--> 


5) layout 수정 (ex, activity_main.xml)


광고를 추가하는 Activity의 layout에 아래처럼 네임스페이스와 AdView를 추가합니다.


<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"

    xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent"

    xmlns:ads="http://schemas.android.com/apk/res-auto"

    ...

    >


    <com.google.android.gms.ads.AdView

        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>


    ...


</RelativeLayout>



6) Activity 수정 (ex, MainActivity.java)


광고를 추가하는 Activity의 onCreate() 메소드에 다음처럼 코드를 추가합니다.


 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_select);

        MobileAds.initialize(getApplicationContext(), "ca-app-pub-3940256099942544~3347511713");  // test ad
//        MobileAds.initialize(getApplicationContext(), "ca-app-pub-앱 ID");  // real ad

        AdView mAdView = (AdView) findViewById(R.id.adView);

        AdRequest adRequest = new AdRequest.Builder()
                .addTestDevice(AdRequest.DEVICE_ID_EMULATOR)        // All emulators
//                .addTestDevice("테스트 기기의 Device ID")  // Galaxy Nexus-4 device ID
                .build();
        mAdView.loadAd(adRequest);

        ...


이제 모든 설정이 완료 되었습니다.



4. 실행 결과


다음처럼 화면 하단부에 테스트 광고가 뜨면 정상적으로 실행된 것입니다. 다른 테스트 광고가 뜰 수도 있으나 문구를 통해 테스트 광고라는 것을 명확히 알 수 있습니다.



테스트 기기의 Device ID는 앱을 실행해보면 로그를 통해 알 수 있습니다.

이 Device ID를 복사 후 위 소스의 13 라인의 주석을 풀고 addTestDevice()에 입력하세요.  



이렇게 등록 후에는 앱 ID 와 광고 단위 ID를 실제 값으로 수정 후 실행해도 테스트 광고가 뜨게 됩니다.


지금까지 테스트 광고를 띄우는 것을 살펴봤으나, 광고는 돈이 관련된 것이라서 반드시 애드몹(https://firebase.google.com/docs/admob/?hl=ko)에 대한 모든 내용을 꼼꼼히 읽어 보시기 바랍니다.  


이후 안드로이드 마켓에 앱을 배포하면 됩니다.




WRITTEN BY
zeany
이젠 기록하지 않으면 기억되지 않아서.. 이것저것 여기에 새겨 보려고 한다..

받은 트랙백이 없고 , 댓글 하나 달렸습니다.
  1. 응원해여!!!
secret