광고 슬라이더
네이티브 광고는 앱 측에서 레이아웃을 정의할 수 있는 광고 유형입니다. 이 기능을 통해 앱 디자인의 특성을 고려하여 광고의 시각적 스타일과 배치를 변경할 수 있습니다.
광고 렌더링은 광고 성능과 폼질을 높이는 네이티브 플랫폼 도구로 수행됩니다.
네이티브 광고는 광고 경험을 향상합니다. 그 결과 사용자 관심을 잃지 않으면서 광고를 더 많이 표시할 수 있습니다. 그러면 장기적으로 광고를 통한 최대 수익이 보장됩니다.
사전 준비
- 빠른 시작에 설명된 SDK 통합 단계를 수행하세요.
- 광고 SDK를 미리 초기화하세요.
- 최신 Yandex Mobile Ads SDK 버전을 사용하고 있는지 확인하세요. 중재를 사용하는 경우, 최신 통합 빌드 버전을 실행하고 있는지도 확인하세요.
슬라이더 로딩
-
슬라이더 내에서 광고를 가져올 수 있도록
NativeAdLoader
클래스의 인스턴스를 생성합니다. -
NativeAdRequestConfiguration
클래스를 사용하여nativeAdRequestConfiguration
을 생성합니다. 요청 매개변수로 광고 단위 ID, 이미지 로드 방법, 나이, 성별 및 광고 선택 품질을 향상할 수 있는 기타 데이터를 사용할 수 있습니다. -
NativeAdLoaderDelegate
프로토콜을 구현하는 광고 검색을 위한 대리자를 설정합니다. -
광고 로딩 과정을 추적하려면
NativeAdLoaderDelegate
프로토콜 메서드(-nativeAdLoader:didFailLoadingWithError:
및-nativeAdLoader:didLoadAd:
)를 구현합니다. -
광고를 로드하려면
loadAdWithRequestConfiguration:
로더에 메시지를 전송합니다. -
광고가 로드되면 다음 메서드가 호출됩니다.
func nativeAdLoader(_ loader: NativeAdLoader, didLoad ad: NativeAd)
-
광고가 로드되지 않으면 다음 메서드가 호출됩니다.
func nativeAdLoader(_ loader: NativeAdLoader, didFailLoadingWithError error: Error)
일반 광고 요청의 예시
// 로더 생성
adLoader = NativeAdLoader()
adLoader.delegate = self
// 요청 구성 생성
let requestConfiguration = NativeAdRequestConfiguration(adUnitID: "<AdUnitID>")
// 로더에 요청 구성 전달
adLoader.loadAd(with: requestConfiguration)
// 대리인 메서드 구현
// ...
func nativeAdLoader(_ loader: NativeAdLoader, didLoad ad: NativeAd) {
// 광고 렌더링
}
네이티브 광고 슬라이더 렌더링
슬라이더가 로드되면 모든 자산을 렌더링해야 합니다.
성공적으로 로드된 슬라이더는 동일한 컨텍스트를 가진 하나 이상의 네이티브 광고를 포함합니다. 슬라이더의 광고는 동일한 공유 컨테이너 내에 표시되어야 합니다. 그렇지 않으면 광고 노출이 계수되지 않습니다.
네이티브 광고 슬라이더의 레이아웃 수동 설정
템플릿 설정만으로 원하는 결과를 얻을 수 없는 경우, 네이티브 광고 슬라이더의 레이아웃을 수동으로 구성할 수 있습니다.
이 방법을 사용하면 광고 구성 요소를 서로 상대적으로 배치하여 네이티브 광고를 위한 슬라이더를 구성할 수 있습니다. 광고에는 필수 및 선택적 표시 자산이 모두 포함될 수 있습니다. 전체 목록은 네이티브 광고 자산에서 찾을 수 있습니다.
Совет
슬라이더의 각 광고에 대해 가능한 자산의 전체 세트를 포함하는 레이아웃을 사용하는 것이 좋습니다. Yandex의 경험에 따르면 자산의 전체 세트를 포함한 레이아웃의 클릭 가능성이 더 높습니다.
bindAdToSliderView
메서드를 호출하고 광고 슬라이더에 대한 컨테이너를 전달하세요.
슬라이더의 각 광고는 표준 네이티브 광고 레이아웃 메서드를 사용하여 배치됩니다.
func nativeAdLoader(_ loader: NativeAdLoader, didLoad ad: NativeAd) {
self.ad = ad
ad.delegate = self
// 중첩된 광고 확인
if ad.ads.count != 0 {
// 슬라이더를 위한 컨테이너 생성, YMANativeAdView를 이 클래스의 이후 클래스로 교체
let sliderAdView = YMANativeAdView()
// 메서드 bindAd(toSliderView: _)를 호출하고 컨테이너를 전달
do {
try ad.bindAd(toSliderView: sliderAdView)
} catch {
// 오류 메시지를 확인하고 문제 해결
return
}
for subAd in ad.ads {
// 대리자 구독
subAd.delegate = self
// 광고에 대한 광고 보기 생성
// YMANativeAdView를 이 클래스의 이후 클래스로 교체
let subAdView = YMANativeAdView()
// 광고에 대해 메서드 bind(with: subAdView) 호출
do {
try subAd.bind(with: subAdView)
} catch {
// 오류 메시지를 확인하고 문제 해결
return
}
// 광고를 컨테이너에 추가
sliderAdView.addSubview(subAdView)
// 컨테이너 내 광고의 배치 구성
}
} else {
// 일반 네이티브 광고로 처리
}
}