메인 콘텐츠로 건너뛰기

개요

전면 광고(Interstitial Ad)는 앱의 화면 전체를 덮는 형태로 표시되는 광고입니다. 게임의 레벨 전환, 콘텐츠 페이지 전환 등 앱의 자연스러운 전환 시점에 표시하기 적합합니다.

특징

  • 전체 화면을 덮는 몰입형 광고
  • 사용자가 명시적으로 닫기 전까지 유지
  • 이미지 및 동영상 광고 지원
  • 높은 시각적 주목도
개발 환경에서는 테스트 유닛 ID를 사용하세요: PUBLIC_TEST_UNIT_ID_INTERSTITIAL

구현 단계

전면 광고는 다음 4단계로 구현합니다:
  1. 초기화 - AdropInterstitialAd 인스턴스 생성
  2. 리스너 설정 - 광고 이벤트 수신을 위한 리스너 설정
  3. 광고 로드 - 광고 요청 및 수신
  4. 광고 표시 - 화면에 광고 표시

기본 구현

AdropInterstitialAd 인스턴스 생성

AdropInterstitialAd 생성자

context
Context
필수
Android Context 객체 (Activity 또는 Application Context)
unitId
String
필수
광고 유닛 ID (콘솔에서 발급)

리스너 설정

광고 이벤트를 수신하려면 AdropInterstitialAdListener를 구현하고 설정해야 합니다.

광고 로드

load() 메서드를 호출하여 광고를 요청합니다.
광고 로드 완료 시 onAdReceived 콜백이 호출되며, 실패 시 onAdFailedToReceive 콜백이 호출됩니다.

광고 표시

광고가 로드된 후 show() 메서드를 호출하여 광고를 표시합니다.

isLoaded 프로퍼티

광고가 로드되었는지 확인하는 프로퍼티입니다. show() 호출 전에 이 값을 확인하는 것이 좋습니다.

show 메서드

fromActivity
Activity
필수
광고를 표시할 Activity 객체

AdropInterstitialAd 프로퍼티

unitId

광고 유닛 ID를 반환합니다.

isLoaded

광고가 로드되었는지 여부를 반환합니다.

creativeId

현재 로드된 광고의 크리에이티브 ID를 반환합니다.

txId

현재 로드된 광고의 트랜잭션 ID를 반환합니다.

campaignId

현재 로드된 광고의 캠페인 ID를 반환합니다.

isBackfilled

현재 로드된 광고가 백필 광고인지 여부를 반환합니다.

close()

프로그래밍 방식으로 전면 광고를 닫습니다.

AdropInterstitialAdListener 메서드

필수 메서드

onAdReceived
(AdropInterstitialAd) -> Unit
광고 수신 성공 시 호출됩니다. 이 시점에서 show()를 호출하여 광고를 표시할 수 있습니다.
onAdFailedToReceive
(AdropInterstitialAd, AdropErrorCode) -> Unit
광고 수신 실패 시 호출됩니다. 에러 코드를 통해 실패 원인을 확인할 수 있습니다.

선택 메서드

onAdImpression
(AdropInterstitialAd) -> Unit
광고 노출이 기록되었을 때 호출됩니다.
onAdClicked
(AdropInterstitialAd) -> Unit
사용자가 광고를 클릭했을 때 호출됩니다.
onAdWillPresentFullScreen
(AdropInterstitialAd) -> Unit
전면 광고가 표시되기 직전에 호출됩니다. 게임 일시정지 등의 작업을 수행할 수 있습니다.
onAdDidPresentFullScreen
(AdropInterstitialAd) -> Unit
전면 광고가 화면에 표시된 직후 호출됩니다.
onAdWillDismissFullScreen
(AdropInterstitialAd) -> Unit
전면 광고가 닫히기 직전에 호출됩니다.
onAdDidDismissFullScreen
(AdropInterstitialAd) -> Unit
전면 광고가 닫힌 직후 호출됩니다. 다음 광고를 미리 로드하기 좋은 시점입니다.
onAdFailedToShowFullScreen
(AdropInterstitialAd, AdropErrorCode) -> Unit
광고 표시 실패 시 호출됩니다. 에러 코드를 통해 실패 원인을 확인할 수 있습니다.

백버튼 콜백

전면 광고가 표시된 상태에서 사용자가 뒤로가기 버튼을 누르면 AdropInterstitialAdCloseListener를 통해 콜백을 받을 수 있습니다.

AdropInterstitialAdCloseListener

onBackPressed
(AdropInterstitialAd) -> Unit
사용자가 전면 광고에서 뒤로가기 버튼을 눌렀을 때 호출됩니다.

사용 예시

동작 설명

  • 백버튼 콜백: 사용자가 뒤로가기 버튼을 누르면 closeListener.onBackPressed()가 먼저 호출됩니다.
  • 자동 닫힘 조건: 광고가 표시된 후 30초 이상 경과하거나, WebView가 없는 경우 백버튼 시 자동으로 광고가 닫힙니다.
  • 수동 닫기: ad.close()를 호출하면 언제든 프로그래밍 방식으로 광고를 닫을 수 있습니다.
  • closeListener를 설정하지 않으면: 기존 동작과 동일하게 30초 후 자동 닫힘만 동작합니다.

Android 15+ 호환성

Android 13(Tiramisu) 이상에서 OnBackInvokedCallback을 사용하여 예측형 뒤로가기(Predictive Back)를 지원합니다. 앱에서 enableOnBackInvokedCallback="true"를 설정한 경우에도 정상 동작합니다.

생명주기 관리

destroy 메서드

Activity나 Fragment가 종료될 때 destroy() 메서드를 호출하여 리소스를 해제해야 합니다.
메모리 누수를 방지하기 위해 반드시 destroy()를 호출하세요.

사전 로드 전략

사용자 경험을 향상시키기 위해 광고를 미리 로드하는 것이 좋습니다.

기본 사전 로드

닫기 후 재로드

광고가 닫힌 후 onAdDidDismissFullScreen 콜백에서 다음 광고를 미리 로드합니다.

모범 사례

1. 적절한 표시 시점

앱의 자연스러운 전환 시점에 광고를 표시하세요.

2. 에러 처리

광고 로드 실패에 대비한 처리를 구현하세요.

3. 빈도 제한

너무 자주 광고를 표시하지 않도록 제한하세요.

4. 게임 일시정지 처리

전면 광고 표시 시 게임이나 애니메이션을 일시정지하세요.

테스트

테스트 유닛 ID 사용

개발 중에는 테스트 유닛 ID를 사용하세요.

광고 로드 확인

광고가 정상적으로 로드되는지 확인하세요.

완전한 구현 예제


문제 해결

  • SDK가 초기화되었는지 확인
  • 유닛 ID가 올바른지 확인
  • 네트워크 연결 상태 확인
  • AndroidManifest.xml에 인터넷 권한이 설정되어 있는지 확인
  • 에러 코드를 확인하여 원인 파악
  • ERROR_CODE_AD_NO_FILL: 광고 인벤토리 부족, 나중에 재시도
  • ERROR_CODE_NETWORK: 네트워크 연결 확인
  • ERROR_CODE_INVALID_UNIT: 유닛 ID 확인
  • onAdReceived 콜백 이후에 show()를 호출했는지 확인
  • isLoaded 프로퍼티가 true인지 확인
  • Activity가 유효한지 확인
  • 다른 전면 광고가 이미 표시 중이지 않은지 확인
  • onDestroy()에서 destroy() 메서드 호출 확인
  • Context 참조가 WeakReference로 관리되는지 확인
  • 리스너를 null로 설정하는지 확인

백필 광고

백필 광고가 활성화된 경우, 직광고가 없을 때 자동으로 백필 광고가 로드됩니다. isBackfilled 프로퍼티로 백필 광고 여부를 확인할 수 있습니다.
백필 광고를 사용하려면 io.adrop:adrop-ads-backfill 의존성을 추가해야 합니다. 시작하기를 참고하세요.

다음 단계

보상형 광고

보상형 광고로 사용자 인게이지먼트 향상

배너 광고

배너 광고 구현하기

타겟팅 설정

사용자 속성 및 문맥 타겟팅

레퍼런스

API 레퍼런스 문서