메인 콘텐츠로 건너뛰기

개요

백필 광고는 직광고가 없을 때 대체 광고를 자동으로 노출하여 수익을 극대화하는 기능입니다. Adrop은 AdMob, Pangle 등 주요 광고 네트워크를 백필 광고로 지원합니다.

시작 전 준비

  • 백필 광고 준비를 완료해주세요.
  • 추가 의존성 설치가 필요합니다: io.adrop:adrop-ads-backfill

설치

1. Gradle 설정

Settings.gradle.kts

Pangle 광고 네트워크 저장소를 추가합니다:
settings.gradle.kts
dependencyResolutionManagement {
    repositoriesMode.set(RepositoriesMode.FAIL_ON_PROJECT_REPOS)
    repositories {
        google()
        mavenCentral()
        maven { url = uri("https://artifact.bytedance.com/repository/pangle") }
    }
}

Build.gradle.kts

백필 광고 의존성을 추가합니다:
dependencies {
    implementation("io.adrop:adrop-ads:1.7.3")
    implementation("io.adrop:adrop-ads-backfill:1.7.3")
}

2. AndroidManifest.xml 설정

AdMob을 백필 광고로 사용하는 경우, APPLICATION_ID를 AndroidManifest.xml에 추가합니다:
AndroidManifest.xml
<manifest>
    <application>
        <!-- AdMob App ID -->
        <meta-data
            android:name="com.google.android.gms.ads.APPLICATION_ID"
            android:value="ca-app-pub-xxxxxxxxxxxxxxxx~yyyyyyyyyy"/>
    </application>
</manifest>
ca-app-pub-xxxxxxxxxxxxxxxx~yyyyyyyyyy를 실제 AdMob App ID로 교체해야 합니다.

콘솔 설정

Adrop 콘솔에서 백필 광고를 활성화합니다:
  1. Adrop 콘솔에 로그인
  2. 광고 유닛 메뉴로 이동
  3. 백필 광고를 사용할 광고 유닛 선택
  4. 백필 설정 섹션에서 백필 광고 활성화
  5. 사용할 백필 광고 네트워크 선택 (AdMob, Pangle 등)
  6. 광고 네트워크별 설정 입력 (예: AdMob Ad Unit ID)

광고 노출 흐름

백필 광고는 다음과 같은 순서로 노출됩니다:

지원 광고 형식

백필 광고는 다음 형식을 지원합니다:
광고 형식지원 여부설명
배너 (Banner)✅ 지원고정 크기 배너 광고
네이티브 (Native)✅ 지원커스터마이징 가능한 네이티브 광고
전면 (Interstitial)✅ 지원전체 화면 광고
리워드 (Rewarded)✅ 지원보상형 광고

백필 광고 확인

광고가 백필 광고인지 확인하려면 isBackfilled 프로퍼티를 사용합니다:
AdropBanner(context, "YOUR_UNIT_ID").apply {
    listener = object : AdropAdListener() {
        override fun onAdReceived(ad: AdropAd) {
            if (ad.isBackfilled) {
                Log.d("Adrop", "백필 광고가 로드되었습니다")
            } else {
                Log.d("Adrop", "직광고가 로드되었습니다")
            }
        }
    }
    load()
}

UMP (User Messaging Platform) 연동

백필 SDK는 Google UMP를 통해 GDPR 및 CCPA 규정 준수를 지원합니다. Consent Manager를 사용하여 사용자 동의를 요청하세요.

기본 사용법

import io.adrop.ads.Adrop
import io.adrop.ads.consent.AdropConsentListener
import io.adrop.ads.consent.AdropConsentResult

class MainActivity : AppCompatActivity() {

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)

        // Adrop.initialize() 이후에 호출
        Adrop.consentManager?.requestConsentInfoUpdate(this, object : AdropConsentListener {
            override fun onConsentInfoUpdated(result: AdropConsentResult) {
                if (result.error != null) {
                    Log.e("Consent", "오류: ${result.error}")
                }
            }
        })
    }
}

동의 상태

상태설명
UNKNOWN동의 상태가 아직 결정되지 않음
REQUIRED동의 필요 (팝업이 표시됨)
NOT_REQUIRED동의 불필요 (비GDPR 지역)
OBTAINED이미 동의 완료됨

디버그 설정 (테스트 모드)

개발 중에 GDPR/CCPA 동의 흐름을 테스트하세요:
import io.adrop.ads.consent.AdropConsentDebugGeography

if (BuildConfig.DEBUG) {
    // 동의 요청 전에 디버그 지역 설정
    Adrop.consentManager?.setDebugSettings(
        testDeviceHashedIds = listOf("YOUR_HASHED_DEVICE_ID"),  // Logcat에서 확인
        geography = AdropConsentDebugGeography.EEA  // GDPR 테스트
    )

    // 테스트를 위한 동의 상태 리셋
    Adrop.consentManager?.reset(this)
}
지역설명
DISABLED실제 기기 위치 사용
EEAGDPR 테스트 (유럽 경제 지역)
REGULATED_US_STATECCPA 테스트 (캘리포니아 등)
OTHER규제가 없는 지역 테스트

WebView에서 AdSense 광고

WebView를 Adrop SDK에 등록하여 AdSense 광고를 표시합니다.

AndroidManifest.xml 설정

WebView에서 AdSense를 활성화하려면 AndroidManifest.xml에 다음을 추가하세요:
AndroidManifest.xml
<manifest>
    <application>
        <!-- AdSense WebView 통합 -->
        <meta-data
            android:name="com.google.android.gms.ads.INTEGRATION_MANAGER"
            android:value="webview"/>
    </application>
</manifest>
이 설정은 WebView에서 AdSense 광고가 정상적으로 작동하는 데 필요합니다. 이 설정이 없으면 AdSense 광고가 표시되지 않을 수 있습니다.

WebView 등록

import android.webkit.WebView
import io.adrop.ads.Adrop

class WebViewActivity : AppCompatActivity() {

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)

        val webView = findViewById<WebView>(R.id.webView)

        // AdSense 지원을 위해 WebView 등록
        // 콘텐츠 로드 전에 가능한 빨리 호출
        Adrop.registerWebView(webView)

        // 웹 콘텐츠 로드
        webView.loadUrl("https://your-website.com")
    }
}
registerWebView()는 다음 WebView 설정을 자동으로 구성합니다:
  • JavaScript 활성화
  • DOM Storage 활성화
  • 사용자 제스처 없이 미디어 재생
  • 서드파티 쿠키 활성화
이 메서드는 메인 스레드에서 가능한 빨리 호출하세요 (예: onCreate).
WebView에서 AdSense를 사용하려면 adrop-ads-backfill 모듈이 필요합니다. 모듈이 설치되지 않은 경우 registerWebView()는 조용히 무시됩니다.

모범 사례

백필 광고 활성화

모든 광고 유닛에서 백필 광고를 활성화하여 광고 노출률과 수익을 극대화하세요.

적절한 타임아웃 설정

직광고와 백필 광고의 적절한 타임아웃을 설정하여 사용자 경험을 개선하세요.

백필 광고 분석

isBackfilled 프로퍼티를 사용하여 직광고와 백필 광고의 비율을 추적하고 분석하세요.

광고 네트워크 최적화

여러 백필 광고 네트워크를 테스트하고 가장 높은 수익을 제공하는 네트워크를 선택하세요.

주의사항

  • 백필 광고를 사용하려면 반드시 io.adrop:adrop-ads-backfill 의존성을 추가해야 합니다.
  • AdMob을 사용하는 경우 AndroidManifest.xml에 APPLICATION_ID를 반드시 추가해야 합니다.
  • GDPR/CCPA 준수를 위해 광고 로드 전에 UMP 동의 흐름을 구현하세요.
  • 백필 광고 네트워크의 정책을 준수해야 합니다.

관련 문서