Android (안드로이드)

[Android] Google AdMob / 앱에 광고 붙이기 / 배너 광고

Oscar:) 2024. 3. 7. 14:21

 

 

 

이번 포스팅에서는 앱에 광고 붙이는 방법을 알아보겠다.

 

광고는 Google AdMob을 사용할 것이다.

 

 

 


 

 

Google AdMob ?

 

 

출처 : Google AdMob 공식 홈페이지

 

 

 

Google AdMob은 앱으로 수익을 창출하려고 할 때 사용할 수 있는

모바일 광고 플랫폼이다.

 

 

개발자가 AdMob 플랫폼에 앱과 광고 단위를 등록하면

Google AdMob에서 사용자에게 알맞은 광고를 띄워준다.

 

즉, 개발자는 어떤 광고가 띄워질지는 모른다.

 

 

노출 수에 비례하는 수익을 창출하는 원리이며,

개발자는 AdMob 콘솔에서 광고 활동 보고서를 통해 세부 내용을 확인할 수 있다.

 

 

 

 

사용할 수 있는 광고 단위는 다음과 같다.

 

 

 

이번 포스팅에서는 배너 광고를 달아볼 것이다.

 

 

 


 

앱 적용 프로세스

 

 

크게 2가지 단계로 나누어 실습해보자.

 

 

✅ AdMob 콘솔에서의 작업

 

● AdMob 계정 만들기

 

● 앱 등록하기

 

● 광고 단위 추가

 

 

 

✅ Android Studio에서의 작업

 

● build.gradle에 의존성 추가

 

● 매니페스트에 부여받은 앱 ID 등록

 

● 광고가 삽입될 레이아웃 지정 & 광고 단위 ID 등록

 

● 광고가 표시될 시점에 초기화 작업

 

 

 


 

실습

 

 

위에서 언급한 7가지 작업을 순서대로 진행해 보겠다.

 

 

🌐 AdMob 콘솔

 

 

✅ AdMob 계정 만들기

 

 

AdMob 링크 ↓

 

Google AdMob: 모바일 앱 수익 창출

인앱 광고를 사용하여 모바일 앱에서 더 많은 수익을 창출하고, 사용이 간편한 도구를 통해 유용한 분석 정보를 얻고 앱을 성장시켜 보세요.

admob.google.com

 

AdMob 계정이 없다면 위 링크에 접속하여 생성해주자.

 

 

 

Google 계정을 통해 진입할 수 있으며 각자 상황에 맞게 세팅해주면 된다.

 

 

 

 

 

메인 콘솔 화면에 들어오면 결제 계정 미등록 상태에 대한 경고가 표시될 것이다.

 

'지급' 카테고리에서 결제 계정을 등록할 수 있다.

 

 

 

수익이 발생하면 지급 받을 계좌를 입력하면 된다.

 

계좌 & 주소 정보는 포스팅할 내용이 아니니, 각자 알아서 등록하기 바란다.

 

 

 


 

✅ 앱 등록하기

 

 

 

'앱' 카테고리에서 앱 추가를 눌러준다.

 

 

 

 

 

플랫폼과 스토어 등록 여부를 체크한다.

 

아직 개발 중인 앱은 출시 여부에 '아니요'를 체크해야 하고,

출시 후 다시 스토어 연결 등록을 할 수 있다.

 

 

 

 

 

앱 이름을 작성해주고 추가하면 앱이 추가된다.

 

 

 

 

 

'앱 설정' 카테고리에 들어가서

 

 

 

 

 

앱 ID를 복사해놓고 어딘가에 저장해놓자.

이 앱 ID가 내 앱의 식별자이며, 나중에 매니페스트에 추가해줘야 한다.

 

 

 


 

✅ 광고 단위 추가

 

 

 

'광고 단위' 카테고리에서 광고 단위 추가를 눌러준다.

 

 

 

 

 

배너 광고를 실습해볼 것이므로 배너를 선택해준 뒤,

광고 단위의 이름을 붙여주면 된다.

 

광고 단위 이름은 각 광고의 식별자라고 생각하면 된다.

(앱에 여러 광고를 붙일 수도 있으므로)

 

 

 

 

 

해당 광고 단위를 클릭하면 세부 내용을 확인할 수 있다.

 

광고 단위 ID도 복사해놓고 어딘가에 저장해주자.

앱에 광고 단위를 지정할 때 필요하다.

 

 

 

 

이제 AdMob에서 해야할 기초 작업은 끝났다.

Android Studio로 넘어가자.

 

 

 


 

 

📱 Android Studio

 

 

✅ build.gradle 모듈 수준에 다음 의존성을 추가해준다.

 

 

build.gradle

dependencies {

    ...

    implementation 'com.google.android.gms:play-services-ads:22.6.0'
}

 

최신 버전은 AdMob 공식 문서에서 확인하기 바란다.

 

 

 


 

✅ 매니페스트에 부여받은 앱 ID 등록

 

 

매니페스트에 다음 내용들을 추가해준다.

 

 

AndroidManifest.xml

...

// 권한 등록
<uses-permission android:name="com.google.android.gms.permission_AD_ID" />

<application

        ...
        
        >
        // 앱 ID 등록
        <meta-data
            android:name="com.google.android.gms.ads.APPLICATION_ID"
            android:value="저장해둔 앱 ID"/>
            
        ...
        
</application>

 

- Target SDK 33 이상 부터는 앱에서 광고 ID를 사용할 경우 위 권한을 추가해야 한다.

- <application> 태그 안에 <meta-data> 태그를 만들고 위와 같이 추가해준다.

 

 


 

✅ 광고가 삽입될 레이아웃 지정 & 광고 단위 ID 등록

 

 

activity_main.xml

<com.google.android.gms.ads.AdView
                android:id="@+id/adView"
                xmlns:ads="http://schemas.android.com/apk/res-auto"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                ads:adSize="BANNER"
                ads:adUnitId="저장해둔 광고 단위 ID"
                />

 

유심히 봐야할 속성은 다음 2가지다.

 

- ads:adSize

 

표준 배너 크기로 지정된 상수는 'BANNER' 이다.

 

이외의 다른 크기는 다음과 같다.

 

 

 

- ads:adUnitId

 

광고를 게재할 앱의 광고 단위를 지정해준다.

 

아까 AdMob 콘솔에서 복사해둔 ID를 사용하는 것이 맞지만,

유의해야할 점이 있다.

 

앱을 출시하기 전까지는 반드시 테스트 단위 ID를 사용해야 한다.

 

공식 문서에서도 강조하고 있는 내용이다.

 

 

 

앱을 출시하여 사용자들에게 자연스럽게 뿌려지는 광고가 아닌,

개발 단계에서 노출되는 실제 광고로 인한 수익을 악용하는 사례를 예방하는 것이다.

 

따라서 위 광고 단위 ID에는 다음 값을 넣어주면 된다.

 

ca-app-pub-3940256099942544/6300978111

 

 

 

★ 출시 직전, 앱 번들 파일을 뽑아내기 전에는 실제 광고 단위 ID로 수정해줘야 한다!

 

 

 


 

✅ 광고가 표시될 시점에 초기화 작업

 

 

광고를 띄워줄 액티비티 · 프래그먼트 단위에서 초기화 작업을 해준다.

 

 

MainActivity.java

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    adView = findViewById(R.id.adView);
    
    MobileAds.initialize(MainActivity.this);
    AdRequest adRequest = new AdRequest.Builder().build();
    adView.loadAd(adRequest);

} // onCreate()

 

 

문법은 위와 같다.

 

레이아웃에서 선언한 AdView를 초기화 해주고,

MobileAds와 AdRequest 객체를 초기화 해준 뒤

AdView에 AdRequest 객체를 로드해주면 된다.

 

 

위에서는 onCreate() 시점에 광고를 초기화하고 로드했지만,

광고가 표시될 시점을 조정해도 상관은 없다.

 

공식문서에서는 웬만하면 onCreate()에서 초기화할 것을 권장하긴 한다.

 

 

 


 

✅ 결과

 

 

앱 하단에 테스트 배너 광고를 띄웠다.

 

광고 단위 ID 값에 본래의 ID를 사용하면 실제 광고가 나온다.

하지만 앱 출시 전에는 꼭 테스트 단위를 사용하자!

 

 


 

 

 

Google AdMob 배너 광고를 붙여 보았다.

앱을 출시하고 사용자가 늘어났을 때의 수익률이 궁금하다.