Android 팝업 광고
팝업 지면은 전면광고와 유사하게 앱을 완전히 덮으면서 노출됩니다. 팝업 지면은 위치에 따라 하단, 중앙 두가지 타입의 UI를 제공하고 있어 원하는 기획에 맞게 선택하여 연동할 수 있습니다.

팝업 광고 노출하기
Popup (bottom)
PUBLIC_TEST_UNIT_ID_POPUP_BOTTOM
Popup Video (bottom 16:9)
PUBLIC_TEST_UNIT_ID_POPUP_BOTTOM_VIDEO_16_9
Popup Video (bottom 9:16)
PUBLIC_TEST_UNIT_ID_POPUP_BOTTOM_VIDEO_9_16
Popup (center)
PUBLIC_TEST_UNIT_ID_POPUP_CENTER
Popup Video (center 16:9)
PUBLIC_TEST_UNIT_ID_POPUP_CENTER_VIDEO_16_9
Popup Video (center 9:16)
PUBLIC_TEST_UNIT_ID_POPUP_CENTER_VIDEO_9_16
광고 노출하기
package io.adrop.ads.example
import android.os.Bundle
import android.util.Log
import android.widget.Button
import androidx.appcompat.app.AppCompatActivity
import io.adrop.ads.model.AdropErrorCode
import io.adrop.ads.popupAd.AdropPopupAd
import io.adrop.ads.popupAd.AdropPopupAdListener
class PopupActivity : AppCompatActivity() {
private var adropPopupAd: AdropPopupAd? = null
private lateinit var presetBottomButton: Button
private lateinit var presetCenterButton: Button
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_popup)
initViews()
setupClickListeners()
}
/**
* UI 컴포넌트 초기화
*/
private fun initViews() {
presetBottomButton = findViewById(R.id.btn_preset_bottom_video)
presetCenterButton = findViewById(R.id.btn_preset_center_video)
}
/**
* 버튼 클릭 리스너 설정
*/
private fun setupClickListeners() {
// 하단 팝업 광고 (이미지 또는 동영상 자동 결정)
presetBottomButton.setOnClickListener {
loadPopupAd("PUBLIC_TEST_UNIT_ID_POPUP_BOTTOM_VIDEO_16_9")
}
// 중앙 팝업 광고 (이미지 또는 동영상 자동 결정)
presetCenterButton.setOnClickListener {
loadPopupAd("PUBLIC_TEST_UNIT_ID_POPUP_CENTER_VIDEO_16_9")
}
}
/**
* 팝업 광고 로드 및 표시
* @param unitId Adrop에서 발급받은 광고 단위 ID
*/
private fun loadPopupAd(unitId: String) {
Log.d("PopupActivity", "팝업 광고 로드 시작: $unitId")
// 기존 광고 인스턴스 정리
adropPopupAd?.destroy()
// 새로운 팝업 광고 인스턴스 생성
adropPopupAd = AdropPopupAd(this, unitId).apply {
popupAdListener = object : AdropPopupAdListener {
/**
* 광고 로드 성공 시 호출
* 자동으로 광고를 표시합니다
*/
override fun onAdReceived(ad: AdropPopupAd) {
Log.d("PopupActivity", "광고 로드 성공: ${ad.unitId}")
// 광고 로드 완료 즉시 표시
ad.show(this@PopupActivity)
}
/**
* 광고 로드 실패 시 호출
*/
override fun onAdFailedToReceive(ad: AdropPopupAd, errorCode: AdropErrorCode) {
Log.e("PopupActivity", "광고 로드 실패: ${ad.unitId} / 에러코드: $errorCode")
// 실패한 광고 인스턴스 정리
ad.destroy()
adropPopupAd = null
}
/**
* 사용자가 광고를 클릭했을 때 호출
*/
override fun onAdClicked(ad: AdropPopupAd) {
Log.d("PopupActivity", "광고 클릭됨: ${ad.unitId}")
}
/**
* 광고가 사용자에게 노출되었을 때 호출
*/
override fun onAdImpression(ad: AdropPopupAd) {
Log.d("PopupActivity", "광고 노출됨: ${ad.unitId}")
}
/**
* 전체화면 광고가 표시되기 전 호출
*/
override fun onAdWillPresentFullScreen(ad: AdropPopupAd) {
Log.d("PopupActivity", "전체화면 광고 표시 예정: ${ad.unitId}")
}
/**
* 전체화면 광고가 표시된 후 호출
*/
override fun onAdDidPresentFullScreen(ad: AdropPopupAd) {
Log.d("PopupActivity", "전체화면 광고 표시됨: ${ad.unitId}")
}
/**
* 전체화면 광고가 닫히기 전 호출
*/
override fun onAdWillDismissFullScreen(ad: AdropPopupAd) {
Log.d("PopupActivity", "전체화면 광고 닫힘 예정: ${ad.unitId}")
}
/**
* 전체화면 광고가 닫힌 후 호출
*/
override fun onAdDidDismissFullScreen(ad: AdropPopupAd) {
Log.d("PopupActivity", "전체화면 광고 닫힘: ${ad.unitId}")
}
}
// 광고 로드 시작
load()
}
}
/**
* Activity 종료 시 광고 리소스 정리
*/
override fun onDestroy() {
super.onDestroy()
adropPopupAd?.destroy()
adropPopupAd = null
}
}package io.adrop.ads.example;
import android.os.Bundle;
import android.util.Log;
import android.widget.Button;
import androidx.appcompat.app.AppCompatActivity;
import io.adrop.ads.model.AdropErrorCode;
import io.adrop.ads.popupAd.AdropPopupAd;
import io.adrop.ads.popupAd.AdropPopupAdListener;
public class PopupActivity extends AppCompatActivity {
private AdropPopupAd adropPopupAd;
private Button presetBottomButton;
private Button presetCenterButton;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_popup);
initViews();
setupClickListeners();
}
/**
* UI 컴포넌트 초기화
*/
private void initViews() {
presetBottomButton = findViewById(R.id.btn_preset_bottom_video);
presetCenterButton = findViewById(R.id.btn_preset_center_video);
}
/**
* 버튼 클릭 리스너 설정
*/
private void setupClickListeners() {
// 하단 팝업 광고 (이미지 또는 동영상 자동 결정)
presetBottomButton.setOnClickListener(v ->
loadPopupAd("PUBLIC_TEST_UNIT_ID_POPUP_BOTTOM_VIDEO_16_9"));
// 중앙 팝업 광고 (이미지 또는 동영상 자동 결정)
presetCenterButton.setOnClickListener(v ->
loadPopupAd("PUBLIC_TEST_UNIT_ID_POPUP_CENTER_VIDEO_16_9"));
}
/**
* 팝업 광고 로드 및 표시
* @param unitId Adrop에서 발급받은 광고 단위 ID
*/
private void loadPopupAd(String unitId) {
Log.d("PopupActivity", "팝업 광고 로드 시작: " + unitId);
// 기존 광고 인스턴스 정리
if (adropPopupAd != null) {
adropPopupAd.destroy();
}
// 새로운 팝업 광고 인스턴스 생성
adropPopupAd = new AdropPopupAd(this, unitId);
adropPopupAd.setPopupAdListener(new AdropPopupAdListener() {
/**
* 광고 로드 성공 시 호출
* 자동으로 광고를 표시합니다
*/
@Override
public void onAdReceived(AdropPopupAd ad) {
Log.d("PopupActivity", "광고 로드 성공: " + ad.getUnitId());
// 광고 로드 완료 즉시 표시
ad.show(PopupActivity.this);
}
/**
* 광고 로드 실패 시 호출
*/
@Override
public void onAdFailedToReceive(AdropPopupAd ad, AdropErrorCode errorCode) {
Log.e("PopupActivity", "광고 로드 실패: " + ad.getUnitId() + " / 에러코드: " + errorCode);
// 실패한 광고 인스턴스 정리
ad.destroy();
adropPopupAd = null;
}
/**
* 사용자가 광고를 클릭했을 때 호출
*/
@Override
public void onAdClicked(AdropPopupAd ad) {
Log.d("PopupActivity", "광고 클릭됨: " + ad.getUnitId());
}
/**
* 광고가 사용자에게 노출되었을 때 호출
*/
@Override
public void onAdImpression(AdropPopupAd ad) {
Log.d("PopupActivity", "광고 노출됨: " + ad.getUnitId());
}
/**
* 전체화면 광고가 표시되기 전 호출
*/
@Override
public void onAdWillPresentFullScreen(AdropPopupAd ad) {
Log.d("PopupActivity", "전체화면 광고 표시 예정: " + ad.getUnitId());
}
/**
* 전체화면 광고가 표시된 후 호출
*/
@Override
public void onAdDidPresentFullScreen(AdropPopupAd ad) {
Log.d("PopupActivity", "전체화면 광고 표시됨: " + ad.getUnitId());
}
/**
* 전체화면 광고가 닫히기 전 호출
*/
@Override
public void onAdWillDismissFullScreen(AdropPopupAd ad) {
Log.d("PopupActivity", "전체화면 광고 닫힘 예정: " + ad.getUnitId());
}
/**
* 전체화면 광고가 닫힌 후 호출
*/
@Override
public void onAdDidDismissFullScreen(AdropPopupAd ad) {
Log.d("PopupActivity", "전체화면 광고 닫힘: " + ad.getUnitId());
}
});
// 광고 로드 시작
adropPopupAd.load();
}
/**
* Activity 종료 시 광고 리소스 정리
*/
@Override
protected void onDestroy() {
super.onDestroy();
if (adropPopupAd != null) {
adropPopupAd.destroy();
adropPopupAd = null;
}
}
}참고
onAdReceived콜백 이전show를 호출 시,onAdFailedToShowFullScreen로 에러 콜백을 받을 수 있습니다onAdReceived콜백 확인 후, show를 호출하는 것을 권장드립니다.show하는 타이밍이 따로 있으시다면AdropPopup의isLoaded를 확인 후show해주시면 됩니다!
커스텀 팝업 콜백
팝업 광고의 닫기 관련 이벤트를 처리하기 위한 리스너입니다.
popupAd = AdropPopupAd(this, unitId)
popupAd?.closeListener = object: AdropPopupAdCloseListener {
override fun onTodayOffClicked(ad: AdropPopupAd) {
Log.d("adrop", "popup ad today off clicked")
}
override fun onDimClicked(ad: AdropPopupAd) {
Log.d("adrop", "popup ad dim clicked")
}
override fun onClosed(ad: AdropPopupAd) {
Log.d("adrop", "popup ad closed")
}
}popupAd.setCloseListener(new AdropPopupAdCloseListener() {
@Override
public void onTodayOffClicked(AdropPopupAd ad) {
Log.d("adrop", "popup ad today off clicked");
}
@Override
public void onDimClicked(AdropPopupAd ad) {
Log.d("adrop", "popup ad dim clicked");
}
@Override
public void onClosed(AdropPopupAd ad) {
Log.d("adrop", "popup ad closed");
}
});적용 확인하기
console에서 발급받은 unitId가 한 번이라도 광고요청을 할 경우 성공적으로 연결됩니다.

Last updated