Google Admob으로 배너광고 표시하기

이번 포스팅에서는 구글 애드몹 라이브러리를 이용해서 앱에 배너광고를 표시하는 법에 대해 알아보도록 하겠습니다.

우선은 build.gradle에 애드몹 라이브러를 추가해줍니다.

1
2
3
dependencies {
    implementation 'com.google.android.gms:play-services-ads:19.7.0'
}

다음은 AndroidManifest.xml에 인터넷 접근권한을 부여하고 애드몹 ID 정보를 추가합니다. 애드몹 ID는 구글 애드몹 사이트에 가입하고 자신의 앱을 등록하면 받을 수 있습니다. 여기서는 Mobile Ads SDK (Android)에서 테스트를 할때 사용하라고 주는 값을 사용하였습니다.

1
2
3
4
5
6
7
<uses-permission android:name="android.permission.INTERNET"/>

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

다음은 화면 xml에 광고를 표시하기 위한 AdView를 추가합니다. 배너 사이즈는 이미 정해진 리스트 중에서 고를 수 있는데 여기서는 SMART_BANNER를 선택했습니다.

그리고 adUnitId는 구글 애드몹 사이트에서 각 앱에 대해 배너광고를 추가했을 때 생기는 ID를 넣으면 됩니다. 여기서는 역시 구글에서 제공하는 테스트 ID를 사용했습니다.

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context=".MainActivity">

    <com.google.android.gms.ads.AdView
        android:id="@+id/adView"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        app:adSize="SMART_BANNER"
        app:adUnitId="ca-app-pub-3940256099942544/6300978111"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintStart_toStartOf="parent" />

</androidx.constraintlayout.widget.ConstraintLayout>

다음은 메인액티비티를 설정합니다. 뷰바인딩을 설정해주고 showBannerAd라는 함수를 만든 뒤 그 안에서 광고를 불러오는 처리를 해 줍니다.

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
private fun showBannerAd() {
    // 애드몹 초기화
    MobileAds.initialize(this) {}

    // 테스트용 기기를 등록하여 광고 카운팅을 제외하도록 처리
    val testDeviceIds = listOf("My device ID1", "My Device ID2")
    MobileAds.setRequestConfiguration(
        RequestConfiguration.Builder()
            .setTestDeviceIds(testDeviceIds)
            .build()
    )

    mAdView = binding.adView
    // 인터넷에서 광고를 불러옴
    val bannerAdRequest = AdRequest.Builder().build()
    // 광고를 배너에 표시
    mAdView.loadAd(bannerAdRequest)
    mAdView.adListener = object : AdListener() {
        // 광고 로딩이 성공했을때 처리
        override fun onAdLoaded() {
            Toast.makeText(applicationContext, "Banner Ad loaded", Toast.LENGTH_SHORT).show()
        }

        // 광고 로딩이 실패했을때 처리
        override fun onAdFailedToLoad(p0: LoadAdError?) {
            Toast.makeText(applicationContext, "Banner Ad loading failed", Toast.LENGTH_SHORT).show()
        }
    }
}

마지막으로 사용되지 않는 배너리소스를 정리해줍니다.

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
override fun onPause() {
    mAdView.pause()
    super.onPause()
}

override fun onResume() {
    super.onResume()
    mAdView.resume()
}

override fun onDestroy() {
    mAdView.destroy()
    super.onDestroy()
}

이렇게 해서 앱에 구글 애드몹으로 배너광고를 표시하는 법에 대해 알아보았습니다.

Built with Hugo
Theme Stack designed by Jimmy