적응형 인라인 배너
적응형 인라인 배너는 장치에서 광고 크기를 최적화하여 최대 효율을 제공하는 유연한 배너 광고 형식입니다.
이 광고 유형은 개발자가 광고에 허용 가능한 최대 너비 및 높이를 설정할 수 있게 하지만, 최적의 광고 크기는 여전히 자동으로 결정됩니다. 최적의 광고 크기를 선택하기 위해, 내장된 적응형 배너는 고정 높이가 아닌 최대 높이를 사용합니다. 따라서 성과를 높일 여지가 있습니다.
일반적으로 해당 형식은 피드 기반 앱이나 광고에 주로 집중해도 되는 상황에서 사용됩니다.
표시 예

이 가이드는 iOS 앱에 적응형 인라인 배너를 통합하는 방법을 보여줍니다. 코드 예시와 지침 외에도 형식별 권장 사항 및 추가 리소스에 대한 링크가 포함되어 있습니다.
사전 준비
- 빠른 시작에 설명된 SDK 통합 단계를 수행하세요.
- 광고 SDK를 미리 초기화하세요.
- 최신 Yandex Mobile Ads SDK 버전을 사용하고 있는지 확인하세요. 중재를 사용하는 경우, 최신 통합 빌드 버전을 실행하고 있는지도 확인하세요.
실행
적응형 인라인 배너 통합을 위한 주요 단계:
- AdView 클래스 인스턴스를 생성합니다.
- 대리자 메서드를 구현합니다.
- 광고를 로드합니다.
- Adfox를 사용하는 경우 추가 설정을 전달합니다.
- 대리자 메서드에서 광고를 수신하고 렌더링합니다.
적응형 인라인 배너 통합 특징
-
Yandex Mobile Ads SDK 메서드에 대한 모든 호출은 메인 스레드에서 이루어져야 합니다.
-
func adViewDidFailLoading(_ adView: AdView, error: Error)
대리자 메서드에서 오류를 수신할 때 새로운 광고를 로드하려고 시도하지 않는 것을 적극 권장합니다.func adViewDidFailLoading(_ adView: AdView, error: Error)
에서 광고를 로드해야 하는 경우, 네트워크 연결 제약으로 인해 반복적으로 광고 요청이 실패하지 않도록 광고 로드 재시도를 제한하세요. -
적응형 인라인 배너가 올바르게 작동하도록 하려면 Auto Layout을 사용하세요. 보기에 고정 크기 프레임을 사용하면 광고 렌더링이 잘못될 수 있습니다.
-
적응형 인라인 배너는 사용 가능한 모든 너비를 사용할 때 가장 잘 작동합니다. 대부분의 경우에는 장치 화면의 전체 너비에 해당합니다. 앱에 적용 가능한 모든 패딩과 안전한 디스플레이 영역을 포함해야 합니다.
-
적응형 인라인 배너는 스크롤 가능한 콘텐츠에 배치하도록 설계되었습니다. 장치 화면과 높이를 동일하게 하거나 API에 따라 최대 높이로 제한할 수 있습니다.
-
광고의 크기를 가져오려면 광고 컨테이너의 사용 가능한 너비와 허용되는 최대 광고 높이를 인수로 전달하는
BannerAdSize.inlineSize(withWidth: CGFloat, maxHeight: CGFloat)
메서드를 사용하세요. -
BannerAdSize.inlineSize(withWidth: CGFloat, maxHeight: CGFloat)
메서드를 사용하여 계산된BannerAdSize
객체는 동일한 장치에 대한 일정한 광고 너비와 높이 값을 포함합니다. 특정 장치에서 앱의 레이아웃을 테스트하면 광고 크기가 일관됨을 확신할 수 있습니다.
AdView 클래스 인스턴스 생성
배너 광고를 표시하려면 광고 크기와 광고 ID를 전달하는 AdView
클래스 인스턴스를 생성하세요. 또한 클래스에 대한 AdViewDelegate
프로토콜을 구현하여 AdView
의 대리자를 정의해야 합니다.
광고는 BannerAdSize.inlineSize(withWidth: CGFloat, maxHeight: CGFloat)
SDK 메서드를 사용하여 장치에 대해 계산됩니다. 인수로 광고 컨테이너의 최대 허용 너비를 전달하세요. 장치 화면의 전체 너비 또는 상위 컨테이너의 너비를 사용하는 것이 좋습니다. 앱에 적용 가능한 모든 패딩과 안전한 디스플레이 영역을 포함해야 합니다.
Partner Interface의 광고 단위 ID(adUnitId)도 필요합니다.
View Controller에서 AdView
인스턴스 생성 예시:
final class InlineBannerViewController: UIViewController {
private lazy var adView: AdView = {
let adSize = BannerAdSize.inlineSize(withWidth: 320, maxHeight: 320)
let adView = AdView(adUnitID: "R-M-XXXXX-YY", adSize: adSize)
adView.delegate = self
adView.translatesAutoresizingMaskIntoConstraints = false
return adView
}()
}
extension InlineBannerViewController: AdViewDelegate {
func adViewDidLoad(_ adView: AdView) {
// 이 메서드는 성공적으로 로드한 후 호출됩니다
}
func adViewDidFailLoading(_ adView: AdView, error: Error) {
// 이 메서드는 광고 로드 중 오류가 발생한 후 호출됩니다
}
}
광고 로드
AdView
가 생성되면 광고를 로드해야 합니다.
광고가 로드되거나 로드에 실패할 때 알림을 전송하고, 적응형 인라인 배너의 수명 주기를 추적하려면 AdView
클래스 객체에 대한 대리자 속성을 설정하고 AdViewDelegate
프로토콜을 구현하세요.
AdRequest
를 통해 광고 요청 매개변수를 확장하여 사용자 관심사, 컨텍스트 페이지 데이터, 위치 세부 정보 또는 기타 정보를 전달할 수 있습니다. 요청에 추가적인 컨텍스트 데이터를 제공하면 광고 품질을 크게 향상할 수 있습니다. 광고 타겟팅 섹션에서 자세한 내용을 확인하세요.
다음 예시는 적응형 인라인 배너를 로드하는 방법을 보여줍니다. 로드에 성공한 후에는 AdViewDelegate
대리자의 func adViewDidLoad(_ adView: AdView)
메서드가 호출됩니다.
final class InlineBannerViewController: UIViewController {
private lazy var adView: AdView = {
let adSize = BannerAdSize.inlineSize(withWidth: 320, maxHeight: 320)
let adView = AdView(adUnitID: "R-M-XXXXX-YY", adSize: adSize)
adView.delegate = self
adView.translatesAutoresizingMaskIntoConstraints = false
return adView
}()
func loadAd() {
adView.loadAd()
}
}
광고 표시
광고가 성공적으로 로드된 후에는 렌더링해야 합니다. 이를 위해 자동 레이아웃 제약 조건을 사용할 수 있습니다. 대리자 메서드에서 받은 adView를 가져와 컨테이너에 추가합니다. 그런 다음 배너가 원하는 위치에 표시되도록 자동 레이아웃 제약 조건을 추가합니다.
final class InlineBannerViewController: UIViewController {
private lazy var adView: AdView = {
let adSize = BannerAdSize.inlineSize(withWidth: 320, maxHeight: 320)
let adView = AdView(adUnitID: "R-M-XXXXX-YY", adSize: adSize)
adView.delegate = self
adView.translatesAutoresizingMaskIntoConstraints = false
return adView
}()
func showAd() {
view.addSubview(adView)
NSLayoutConstraint.activate([
adView.topAnchor.constraint(equalTo: loadButton.bottomAnchor, constant: 100),
adView.centerXAnchor.constraint(equalTo: view.centerXAnchor)
])
}
}
적응형 인라인 배너 통합 테스트
광고 테스트를 위한 데모 광고 단위 사용
광고 통합 및 앱 자체를 테스트하기 위해 테스트 광고를 사용하는 것이 좋습니다.
모든 광고 요청에 대해 테스트 광고가 반환되도록 보장하기 위해 특별한 데모 광고 배치 ID를 생성했습니다. 광고 통합을 확인하는 데 사용하세요.
데모 adUnitId: demo-banner-yandex
.
Важно
앱을 스토어에 게시하기 전에 데모 광고 단위 ID를 Partner Interface에서 가져온 실제 ID로 교체해야 합니다.
사용 가능한 데모 광고 배치 ID 목록은 테스트용 데모 광고 단위 섹션에서 찾을 수 있습니다.
광고 통합 테스트
네이티브 콘솔 도구를 사용하여 광고 통합을 테스트할 수 있습니다.
자세한 로그를 보려면 YMAMobileAds
클래스의 enableLogging
메서드를 호출하세요.
YMAMobileAds.enableLogging()
SDK 로그를 보려면 콘솔 도구로 이동하여 Subsystem = com.mobile.ads.ads.sdk
를 설정하세요. 카테고리와 오류 수준별로 로그를 필터링할 수도 있습니다.
광고 통합에 문제가 있는 경우, 문제에 대한 상세한 보고서와 해결 방법에 대한 권장 사항을 받게 됩니다.

추가 리소스
-
GitHub 링크.