Android 배너 광고

배너 광고는 앱 레이아웃의 일부를 차지하는 직사각형 광고입니다. 사용자가 앱과 상호작용하는 동안 화면에 유지됩니다. 이 가이드에서는 Adrop 배너 광고를 Android 앱에 통합하는 방법을 설명합니다.

시작하기 전에

  1. Android SDK 설치 를 완료하세요.

  2. Adrop 콘솔에서 배너 광고 유닛을 생성하고 Unit ID를 확인하세요.

1

광고 Unit ID 준비

Adrop 콘솔에서 생성한 광고 유닛 ID를 준비하세요. 개발 중에는 테스트 ID를 사용할 수 있습니다.

// 테스트용 Unit ID
val unitId = "PUBLIC_TEST_UNIT_ID_320_50"

// 프로덕션용 Unit ID (콘솔에서 발급)
val unitId = "YOUR_UNTI_ID" 

테스트 Unit ID 목록

Banner (375X80)

PUBLIC_TEST_UNIT_ID_375_80

Banner (320X50)

PUBLIC_TEST_UNIT_ID_320_50

Banner (320X100)

PUBLIC_TEST_UNIT_ID_320_100

Banner(캐러셀)

PUBLIC_TEST_UNIT_ID_CAROUSEL

Banner Video (16:9)

PUBLIC_TEST_UNIT_ID_BANNER_VIDEO_16_9

Banner Video (9:16)

PUBLIC_TEST_UNIT_ID_BANNER_VIDEO_9_16

주의: 테스트 Unit ID는 개발 중에만 사용하세요. 앱 출시 전 반드시 콘솔에서 발급받은 실제 Unit ID로 교체해야 합니다.

2

레이아웃에 광고 컨테이너 추가

배너 광고가 표시될 컨테이너를 XML 레이아웃에 추가합니다. 광고 지면 높이를 지정합니다.

<!-- activity_main.xml -->
<FrameLayout
    android:id="@+id/banner_container"
    android:layout_width="match_parent"
    android:layout_height="50dp"/> <!-- 지면 높이를 설정하세요 -->

3

배너 광고 로드

import io.adrop.ads.banner.AdropBanner

class MainActivity : AppCompatActivity() {
    private var banner: AdropBanner? = null

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

        // 배너 생성
        banner = AdropBanner(this, "YOUR_UNIT_ID")

        // 컨테이너에 추가
        val container = findViewById<FrameLayout>(R.id.banner_container)
        container.addView(banner)

        // 광고 로드
        banner?.load()
    }

    override fun onDestroy() {
        super.onDestroy()
        banner?.destroy()
    }
}

4

광고 이벤트 처리 (선택사항)

광고 로드 성공, 실패, 클릭, 노출 이벤트를 처리하려면 리스너를 설정하세요.

로드 실패 했을 때 에러코드를 확인하세요.

import io.adrop.ads.banner.AdropBanner
import io.adrop.ads.banner.AdropBannerListener
import io.adrop.ads.model.AdropErrorCode

banner?.listener = object : AdropBannerListener {
    override fun onAdReceived(banner: AdropBanner) {
        // 광고 로드 성공
        Log.d("Adrop", "광고 로드 성공")
    }

    override fun onAdFailedToReceive(banner: AdropBanner, errorCode: AdropErrorCode) {
        // 광고 로드 실패
        Log.e("Adrop", "광고 로드 실패: $errorCode")
    }

    override fun onAdClicked(banner: AdropBanner) {
        // 광고 클릭됨
    }

    override fun onAdImpression(banner: AdropBanner) {
        // 광고 노출됨
    }
}

5

전체 코드 예시

import android.os.Bundle
import android.util.Log
import android.widget.FrameLayout
import androidx.appcompat.app.AppCompatActivity
import io.adrop.ads.banner.AdropBanner
import io.adrop.ads.banner.AdropBannerListener
import io.adrop.ads.model.AdropErrorCode

class MainActivity : AppCompatActivity() {
    private var banner: AdropBanner? = null

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

        banner = AdropBanner(this, "YOUR_UNIT_ID").apply {
            listener = object : AdropBannerListener {
                override fun onAdReceived(banner: AdropBanner) {
                    Log.d("Adrop", "광고 로드 성공")
                }

                override fun onAdFailedToReceive(banner: AdropBanner, errorCode: AdropErrorCode) {
                    Log.e("Adrop", "광고 로드 실패: $errorCode")
                }

                override fun onAdClicked(banner: AdropBanner) {
                    Log.d("Adrop", "광고 클릭됨")
                }

                override fun onAdImpression(banner: AdropBanner) {
                    Log.d("Adrop", "광고 노출됨")
                }
            }
        }

        findViewById<FrameLayout>(R.id.banner_container).addView(banner)
        banner?.load()
    }

    override fun onDestroy() {
        super.onDestroy()
        banner?.destroy()
    }
}

유의사항

  1. 메모리 관리

    • Activity 종료 시 반드시 banner?.destroy() 호출

    • 새 배너 로드 전 기존 배너 정리 필수

    • 프로덕션에서는 메모리 누수 방지를 위해 적절한 생명주기 관리 구현

  2. 광고 로드 타이밍

    • 네트워크 상태 확인 후 광고 로드

    • 사용자가 실제로 볼 수 있는 시점에 로드

    • 백그라운드에서의 불필요한 광고 로드 방지

Last updated