적응형 스티키 배너

앱 화면의 상단 또는 하단에 배치되어 자동으로 업데이트되는 작은 광고입니다. 주요 앱 콘텐츠와 겹치지 않으며 게임 앱에서 자주 사용됩니다.

적응형 스티키 배너는 각 장치에서 광고 크기를 최적화하여 최대 효율성을 제공합니다. 이 광고 유형은 개발자가 허용 가능한 최대 광고 너비를 설정할 수 있게 하지만, 최적의 광고 크기는 여전히 자동으로 결정됩니다. 적응형 스티키 배너의 높이는 화면 높이의 15%를 초과해서는 안 됩니다.

표시 형태

이 가이드는 Compose Multiplatform 앱에 적응형 스티키 배너를 통합하는 방법을 설명합니다. 코드 예시·안내와 함께 형식별 권장 사항과 추가 자료 링크를 제공합니다.

사전 요건

  1. 빠른 시작에 따라 Yandex Mobile Ads Compose Multiplatform 플러그인을 통합합니다.
  2. 최신 Yandex Mobile Ads Compose Multiplatform 플러그인 버전을 사용하세요. 미디에이션을 사용하는 경우 최신 통합 빌드 버전도 사용하세요.

구현

적응형 스티키 배너 통합의 주요 단계:

  • Banner Composable을 추가하고 컨테이너 너비로 BannerAdSize.Sticky를 전달합니다.
  • BannerEvents로 생명 주기 콜백을 등록합니다.

적응형 스티키 배너 통합 시 특징

  1. onAdFailedToLoad에서 오류를 받았을 때 새 광고 로드를 시도하지 마세요. 필요하면 재시도를 제한하세요.

  2. 사용 가능한 전체 너비를 쓰는 것이 가장 좋습니다. 대개 기기 화면 전체 너비이며, 패딩과 안전 영역을 포함하세요.

  3. 크기는 컨테이너의 사용 가능 너비를 넘기는 BannerAdSize.Sticky(width)로 지정합니다.

  4. 기기 클래스별로 스티키 배너는 SDK가 고른 안정적인 너비·높이를 사용합니다. 대표 기기에서 레이아웃을 한 번 검증한 뒤 동일 크기 클래스를 사용하세요.

  5. 적응형 스티키 배너 높이는 화면 높이의 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를 설정하세요. 카테고리와 오류 수준별로 로그를 필터링할 수도 있습니다.

광고 통합에 문제가 있는 경우, 문제에 대한 상세한 보고서와 해결 방법에 대한 권장 사항을 받게 됩니다.