본문 바로가기
개발(Development)/Android(안드로이드)

[안드로이드 kotlin] Admob 앱 배너 광고 넣는 방법( + 테스트광고)

by 카레유 2021. 7. 23.

이 글에서는 안드로이드 앱에 아래와 같은 배너 광고 삽입하는 방법을 정리한다.

 

안드로이드앱 Admob 배너 테스트 광고


# 안드로이드 Adbmob 광고 삽입 방법(요약 버전)

1. build.gradle에 모바일광고SDK추가

2. Manifest.XML에 광고설정 추가

3. 레이아웃.XML에 AdView 추가

4. Kotlin 코드에서 AdView에 광고 띄우기

 

위와 같은 간단한 작업만으로 광고 노출이 가능하다.

 

테스트 광고를 노출할 경우에는

Admon에 가입하지 않아도, 구글에서 제공해주는 테스트용 ID를 사용하면 된다.

 

실제 구글플레이에 앱을 올릴 때는

Admon 가입후, 앱 ID 및 광고단위 ID를 생성하여 교체해주면 된다.

 

Admob에 앱을 생성하는 방법은 아래글 참고

[안드로이드] Admob 앱 추가 등록 및 설정 방법

 

Admob에서 광고단위를 생선하는 방법은 아래글 참고

[안드로이드] Admob 광고단위(배너 등) 추가 생성/수정/삭제 방법


# Admob 광고 삽입 방법(상세 버전)

* 아래의 1번, 2번 작업은 레이아웃.XML에서 Google > AdView 를 배치하면 뜨는 팝업에서 OK를 누르면 자동으로 설정된다.

 

1. build.gradle(프로젝트) 세팅 추가

- google maven저장소를 설정한다.(최신 안드로이드 스튜디오는 디폴트로 설정되어 있을 가능성이 높다)

buildscript {
    repositories {
        google()
    }
}

allprojects {
    repositories {
        google()
    }
}

 

 

2. build.gradle(모듈)에 라이브러리 추가

- 모바일광고SDK를 추가한다.

dependencies {
  implementation 'com.google.android.gms:play-services-ads:20.2.0'
}

 

 

3. Manifest 파일에 광고 설정 추가

- Admob UI 설정을 위한 메타데이터를 추가해준다.

- value속성값에 Admob에서 발급 받은 앱 ID를 설정한다.

- 테스트 용도인 경우, value 속성 값을  ca-app-pub-3940256099942544~3347511713 로 설정해야 한다.

<manifest>
    <application>
        <!-- Sample AdMob app ID: ca-app-pub-3940256099942544~3347511713 -->
        <meta-data
            android:name="com.google.android.gms.ads.APPLICATION_ID"
            android:value="ca-app-pub-3940256099942544~3347511713"/>
    </application>
</manifest>

 

 

4. 레이아웃.XML에 AdView 추가

- Design 모드에서 Google > AdView를 끌어다가 배치하고 위치를 적절히 조정한다.

- adSize에 광고 크기를 설정하고,  

- adUnitId에 Admob에서 생성한 광고단위 ID를 설정해서 아래의 코드처럼 작성한다.

<com.google.android.gms.ads.AdView
    android:id="@+id/adViewBanner"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"    
    app:adSize="BANNER" 
    app:adUnitId="ca-app-pub-3940256099942544/6300978111" />

 

 

adSize(광고크기)는 레퍼런스를 참고하여 BANNER, SMART_BANNER 등의 상수를 사용해도되고, 임의로 지정해도 된다.

adUnitId(광고단위 ID)는 테스트 광고인 경우, 광고 유형별로 아래의 테스트 전용 광고단위 ID를 사용해준다.

(배너 광고인 경우엔 ca-app-pub-3940256099942544/6300978111을 테스트 ID로 사용)

광고 형식 테스트 광고단위 ID
앱 오프닝 광고 ca-app-pub-3940256099942544/3419835294
배너 광고 ca-app-pub-3940256099942544/6300978111
전면 광고 ca-app-pub-3940256099942544/1033173712
전면 동영상 광고 ca-app-pub-3940256099942544/8691691433
보상형 광고 ca-app-pub-3940256099942544/5224354917
보상형 전면 광고 ca-app-pub-3940256099942544/5354046379
네이티브 광고 고급형 ca-app-pub-3940256099942544/2247696110
네이티브 동영상 광고 고급형 ca-app-pub-3940256099942544/1044960115

 

 

5. Kotlin 코드에서 광고SDK 초기화

- Activity의 onCreate() 등의 내부에서 모바일 광고 SDK를 초기화 해준다.

import com.google.android.gms.ads.MobileAds

class MainActivity : AppCompatActivity() {
    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main)

        // 1. 모바일광고 SDK 초기화
        MobileAds.initialize(this) {}
    }
}

 

 

6. Kotlin 코드에서 광도 띄우기(Activity, Fragment  등)

- 아래의 코드는 직접적으로 광고를 로드시킨다. 즉, 광고가 화면에 뜬다.

- loadAd()를 호출할 때마다 새로운 광고가 리프레시 된다.(단 잦은 리로드는 정책에 위배될 수 있으니 주의)

import com.google.android.gms.ads.AdRequest
import com.google.android.gms.ads.AdView

class MainActivity : AppCompatActivity() {

    lateinit var mAdView : AdView

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main)

        // 1. 모바일광고 SDK 초기화
        MobileAds.initialize(this) {}

        // 2. 광고 띄우기
        mAdView = findViewById(R.id.adView)
        val adRequest = AdRequest.Builder().build()
        mAdView.loadAd(adRequest)
    }
}

 

 

 

7. 광고 이벤트 리스너 등록

- 광고의 로딩 상태 등에 따라 아래의 콜백 메서드가 호출된다. 필요에 따라 활용하면 된다.

mAdView.adListener = object: AdListener() {
    override fun onAdLoaded() {
        // Code to be executed when an ad finishes loading.
    }

    override fun onAdFailedToLoad(adError : LoadAdError) {
        // Code to be executed when an ad request fails.
    }

    override fun onAdOpened() {
        // Code to be executed when an ad opens an overlay that
        // covers the screen.
    }

    override fun onAdClicked() {
        // Code to be executed when the user clicks on an ad.
    }

    override fun onAdClosed() {
        // Code to be executed when the user is about to return
        // to the app after tapping on an ad.
    }
}

 


# 코드로 광고를 생성/로딩하는 방법

레이아웃XML파일에 AdView를 등록하는게 아니라

Kotlin 코드 상에서 동적으로(?) AdView 객체를 생성하여  띄우는 방법은 아래와 같다.

 

// 1. AdView 객체 생성
val adView = AdView(this)

// 2. 광고 크기 설정
adView.adSize = AdSize.BANNER

// 3. 광고단위 ID 설정
adView.adUnitId = "ca-app-pub-3940256099942544/6300978111"

// 4. 다른 뷰(레이아웃 등)에 adView를 삽입하기.

 


코드 작성 완료후 앱을 빌드하면,

처음에 광고가 뜨는데 상당시간이 걸릴 수 있다.

처음에만 그런 것이니 당황하지 말자.

 

댓글