적응형 스티키 배너
앱 화면의 상단 또는 하단에 배치되어 자동으로 업데이트되는 작은 광고입니다. 주요 앱 콘텐츠와 겹치지 않으며 게임 앱에서 자주 사용됩니다.
적응형 스티키 배너는 각 장치에서 광고 크기를 최적화하여 최대 효율성을 제공합니다. 이 광고 유형은 개발자가 허용 가능한 최대 광고 너비를 설정할 수 있게 하지만, 최적의 광고 크기는 여전히 자동으로 결정됩니다. 적응형 스티키 배너의 높이는 화면 높이의 15%를 초과해서는 안 됩니다.
표시 형태
이 가이드는 Compose Multiplatform 앱에 적응형 스티키 배너를 통합하는 방법을 설명합니다. 코드 예시·안내와 함께 형식별 권장 사항과 추가 자료 링크를 제공합니다.
사전 요건
- 빠른 시작에 따라 Yandex Mobile Ads Compose Multiplatform 플러그인을 통합합니다.
- 최신 Yandex Mobile Ads Compose Multiplatform 플러그인 버전을 사용하세요. 미디에이션을 사용하는 경우 최신 통합 빌드 버전도 사용하세요.
구현
적응형 스티키 배너 통합의 주요 단계:
BannerComposable을 추가하고 컨테이너 너비로BannerAdSize.Sticky를 전달합니다.BannerEvents로 생명 주기 콜백을 등록합니다.
적응형 스티키 배너 통합 시 특징
-
onAdFailedToLoad에서 오류를 받았을 때 새 광고 로드를 시도하지 마세요. 필요하면 재시도를 제한하세요. -
사용 가능한 전체 너비를 쓰는 것이 가장 좋습니다. 대개 기기 화면 전체 너비이며, 패딩과 안전 영역을 포함하세요.
-
크기는 컨테이너의 사용 가능 너비를 넘기는
BannerAdSize.Sticky(width)로 지정합니다. -
기기 클래스별로 스티키 배너는 SDK가 고른 안정적인 너비·높이를 사용합니다. 대표 기기에서 레이아웃을 한 번 검증한 뒤 동일 크기 클래스를 사용하세요.
-
적응형 스티키 배너 높이는 화면 높이의 15%를 넘지 않아야 하며 최소 50 dp여야 합니다.
레이아웃에 배너 추가
스티키 자리가 계속 보이도록 할 위치(보통 화면 하단 고정)에 Banner를 배치합니다.
예:
@Composable
fun StickyBannerBar(adRequest: AdRequest, containerWidth: Int) {
Banner(
adRequest = adRequest,
adSize = BannerAdSize.Sticky(width = containerWidth),
modifier = Modifier.fillMaxWidth(),
events = BannerEvents(
onAdLoaded = { /* ad loaded */ },
onAdFailedToLoad = { error -> /* handle error */ },
onAdClicked = { /* ad clicked */ },
onImpression = { data -> /* impression tracked */ },
),
)
}
광고 로드 및 표시
Banner는 컴포지션에 들어오면 광고를 로드합니다.
BannerAdSize.Sticky(width)에는 부모 또는 화면 너비(패딩·안전 영역 포함)를 사용하세요. BoxWithConstraints 등으로 너비를 읽을 수 있습니다:
BoxWithConstraints(modifier = Modifier.fillMaxWidth()) {
val widthDp = maxWidth.value.toInt()
Banner(
adRequest = adRequest,
adSize = BannerAdSize.Sticky(width = widthDp),
modifier = Modifier.fillMaxWidth(),
events = BannerEvents(/* ... */),
)
}
Yandex Advertising Network 인터페이스의 adUnitId가 필요합니다.
로드 성공·실패와 생명 주기는 위와 같이 BannerEvents로 처리합니다.
AdRequest로 요청을 확장할 수 있습니다. 광고 타게팅 참고.
로드 후 자동 표시 예시:
@Composable
fun StickyBanner(adUnitId: String) {
Banner(
adRequest = AdRequest(adUnitId = adUnitId),
adSize = BannerAdSize.Sticky(width = 320),
modifier = Modifier.fillMaxWidth(),
events = BannerEvents(
onAdLoaded = {
// The ad was loaded successfully and will be shown.
},
onAdFailedToLoad = { error ->
// Ad failed to load with AdRequestError.
// Attempting to load a new ad from the onAdFailedToLoad() method is strongly discouraged.
},
onAdClicked = {
// Called when a click is recorded for an ad.
},
onImpression = { data ->
// Called when an impression is recorded for an ad.
},
),
)
}
통합 중 adUnitId로 'demo-banner-yandex' 사용 가능, 출시 전 실제 유닛으로 교체하세요.
리소스 해제
배치가 더 이상 필요 없으면 Banner를 컴포지션에서 제거하세요. SDK가 뷰를 정리합니다. 오래된 인스턴스를 붙잡지 말고, 다시 보일 때 새 Banner를 만드세요.
적응형 스티키 배너 통합 테스트
광고 테스트를 위한 데모 광고 단위 사용
적응형 스티키 배너 통합 및 앱 자체를 테스트하기 위해 테스트 광고를 사용하는 것이 좋습니다.
모든 광고 요청에 대해 테스트 광고가 반환되도록 보장하기 위해 특별한 데모 광고 배치 ID를 생성했습니다. 광고 통합을 확인하는 데 사용하세요.
데모 adUnitId: demo-banner-yandex.
Важно
앱을 스토어에 게시하기 전에 데모 배치 ID를 Yandex Advertising Network 인터페이스에서 획득한 실제 ID로 교체해야 합니다.
사용 가능한 데모 광고 배치 ID 목록은 테스트용 데모 광고 단위 섹션에서 찾을 수 있습니다.
광고 통합 테스트
SDK의 내장 분석기를 사용하여 적응형 스티키 배너 통합을 확인할 수 있습니다.
이 도구는 광고가 제대로 통합되었는지 확인하고 로그에 상세한 보고서를 출력합니다. 보고서를 보려면 Android 앱 디버깅을 위한 Logcat 도구에서 "YandexAds" 키워드를 검색하세요.
adb logcat -v brief '*:S YandexAds'
통합에 성공하면 다음 메시지가 표시됩니다.
adb logcat -v brief '*:S YandexAds'
mobileads$ adb logcat -v brief '*:S YandexAds'
I/YandexAds(13719): [Integration] Ad type banner was integrated successfully
배너 광고 통합에 문제가 있는 경우, 문제에 대한 상세한 보고서와 해결 방법에 대한 권장 사항을 받게 됩니다.
데모 광고 유닛으로 광고 테스트
광고 통합 및 앱 자체를 테스트하기 위해 테스트 광고를 사용하는 것이 좋습니다.
모든 광고 요청에 대해 테스트 광고가 반환되도록 보장하기 위해 특별한 데모 광고 배치 ID를 생성했습니다. 광고 통합을 확인하는 데 사용하세요.
데모 adUnitId: demo-banner-yandex.
Важно
앱을 스토어에 게시하기 전에 데모 배치 ID를 Yandex Advertising Network 인터페이스에서 획득한 실제 ID로 교체해야 합니다.
사용 가능한 데모 광고 배치 ID 목록은 테스트용 데모 광고 단위 섹션에서 찾을 수 있습니다.
광고 통합 검증
네이티브 콘솔 도구를 사용하여 광고 통합을 테스트할 수 있습니다.
자세한 로그를 보려면 YMAMobileAds 클래스의 enableLogging 메서드를 호출하세요.
YMAMobileAds.enableLogging()
SDK 로그를 보려면 콘솔 도구로 이동하여 Subsystem = com.mobile.ads.ads.sdk를 설정하세요. 카테고리와 오류 수준별로 로그를 필터링할 수도 있습니다.
광고 통합에 문제가 있는 경우, 문제에 대한 상세한 보고서와 해결 방법에 대한 권장 사항을 받게 됩니다.