보상형 광고
보상형 광고는 사용자가 광고를 시청하면 보상을 받는 인기 있는 전체 화면 광고 형식입니다.
이 광고 유형의 표시는 예를 들어 게임에서 보너스나 추가 생명을 받으려는 사용자에 의해 활성화됩니다.
사용자 동기 부여가 높기 때문에 무료 앱에서 가장 인기 있고 수익성이 높은 광고 형식입니다.
예
이 가이드는 iOS 앱에 보상형 광고를 통합하는 방법을 보여줍니다. 코드 예시와 지침 외에도 형식별 권장 사항 및 추가 리소스에 대한 링크가 포함되어 있습니다.
사전 준비
- 빠른 시작에 설명된 SDK 통합 단계를 수행하세요.
- 광고 SDK를 미리 초기화하세요.
- 최신 Yandex Mobile Ads SDK 버전을 사용하고 있는지 확인하세요. 중재를 사용하는 경우, 최신 통합 빌드 버전을 실행하고 있는지도 확인하세요.
실행
보상형 광고 통합을 위한 주요 단계:
RewardedAdLoader
광고 로더를 생성 및 구성합니다.- 대리자를 설정하고 필요한
AdRewardedAdLoaderDelegate
메서드를 구현합니다. - 광고를 로드합니다.
- 필요한 경우 광고 객체에 대한 대리자를 설정하고 필요한
AdRewardedAdDelegate
메서드를 구현합니다. - 광고를 렌더링합니다.
- 광고를 시청한 사용자에게 보상을 제공합니다.
보상형 광고 통합의 특징
-
Yandex Mobile Ads SDK 메서드에 대한 모든 호출은 메인 스레드에서 이루어져야 합니다.
-
func rewardedAdLoader(_ adLoader: RewardedAdLoader, didFailToLoadWithError error: AdRequestError)
메서드에서 오류를 수신할 때 새로운 광고를 로드하려고 시도하지 않는 것을 적극 권장합니다.func rewardedAdLoader(_ adLoader: RewardedAdLoader, didFailToLoadWithError error: AdRequestError)
에서 광고를 로드해야 하는 경우, 네트워크 연결 제약으로 인해 반복적으로 광고 요청이 실패하지 않도록 광고 로드 재시도를 제한하세요. -
광고와 그 로더에 대한 강한 참조를 광고와 상호작용하는 화면의 수명 주기 동안 유지하는 것이 좋습니다.
광고 로드
보상형 광고를 로드하려면 RewardedAdLoader
클래스의 인스턴스를 생성합니다.
광고가 로드되거나 로드되지 않을 때 알리기 위해 RewardedAdLoader
클래스의 대리자 속성을 설정하고 RewardedAdLoaderDelegate
대리자를 구현합니다.
final class RewardedViewController: UIViewController {
private lazy var rewardedAdLoader: RewardedAdLoader = {
let loader = RewardedAdLoader()
loader.delegate = self
return loader
}()
}
extension RewardedViewController: RewardedAdLoaderDelegate {
func rewardedAdLoader(_ adLoader: RewardedAdLoader, didLoad rewardedAd: RewardedAd) {
// 이 메서드는 성공적으로 로드한 후 호출됩니다
}
func rewardedAdLoader(_ adLoader: RewardedAdLoader, didFailToLoadWithError error: AdRequestError) {
// 이 메서드는 광고 로드 중 오류가 발생한 후 호출됩니다
}
}
광고를 로드하려면 Yandex Advertising Network 인터페이스의 광고 단위 식별자(adUnitId)가 필요합니다.
AdRequest
를 통해 광고 요청 매개변수를 확장하여 사용자 관심사, 컨텍스트 페이지 데이터, 위치 세부 정보 또는 기타 정보를 전달할 수 있습니다. 요청에 추가적인 컨텍스트 데이터를 제공하면 광고 품질을 크게 향상할 수 있습니다. 광고 타겟팅 섹션에서 자세한 내용을 확인하세요.
다음 예시는 View Controller에서 보상형 광고를 로드하는 방법을 보여줍니다.
final class RewardedViewController: UIViewController {
private lazy var rewardedAdLoader: RewardedAdLoader = {
let loader = RewardedAdLoader()
loader.delegate = self
return loader
}()
func loadAd() {
let configuration = AdRequestConfiguration(adUnitID: "R-M-XXXXX-YY")
rewardedAdLoader.loadAd(with: configuration)
}
}
광고 렌더링
보상형 광고는 사용자가 광고를 시청하면 보상을 받을 수 있는 인센티브 기반 광고 형식입니다. 보상은 게임에서 추가 생명이나 다음 레벨로의 진행일 수 있습니다. 보상 형식은 앱 수준에서 결정됩니다.
보상형 광고가 성공적으로 로드된 후 RewardedAdDelegate
대리자의 func rewardedAdLoader(_ adLoader: RewardedAdLoader, didLoad rewardedAd: RewardedAd)
메서드가 호출됩니다. 이를 사용하여 보상형 광고를 표시합니다.
final class RewardedViewController: UIViewController {
private var rewardedAd: RewardedAd?
func showAd() {
rewardedAd?.show(from: self)
}
}
extension RewardedViewController: RewardedAdLoaderDelegate {
func rewardedAdLoader(_ adLoader: RewardedAdLoader, didLoad rewardedAd: RewardedAd) {
self.rewardedAd = rewardedAd
self.rewardedAd.delegate = self
showAd()
}
}
보상 지급
계수된 노출이 RewardedAdDelegate
대리자의 rewardedAd(_ rewardedAd: RewardedAd, didReward reward: Reward)
메서드를 트리거합니다. 이 메서드를 사용하여 앱 사용자에게 보상을 지급합니다.
final class RewardedViewController: UIViewController {
private var rewardedAd: RewardedAd?
}
extension RewardedViewController: RewardedAdDelegate {
func rewardedAd(_ rewardedAd: RewardedAd, didReward reward: Reward) {
sendReward(reward)
}
}
보상형 광고 통합 테스트
광고 테스트를 위한 데모 광고 단위 사용
광고 통합 및 앱 자체를 테스트하기 위해 테스트 광고를 사용하는 것이 좋습니다.
모든 광고 요청에 대해 테스트 광고가 반환되도록 보장하기 위해 특별한 데모 광고 배치 ID를 생성했습니다. 광고 통합을 확인하는 데 사용하세요.
데모 adUnitId: demo-rewarded-yandex
.
Важно
앱을 스토어에 게시하기 전에 데모 배치 ID를 Yandex Advertising Network 인터페이스에서 획득한 실제 ID로 교체해야 합니다.
사용 가능한 데모 광고 배치 ID 목록은 테스트용 데모 광고 단위 섹션에서 찾을 수 있습니다.
광고 통합 테스트
네이티브 콘솔 도구를 사용하여 광고 통합을 테스트할 수 있습니다.
자세한 로그를 보려면 YMAMobileAds
클래스의 enableLogging
메서드를 호출하세요.
YMAMobileAds.enableLogging()
SDK 로그를 보려면 콘솔 도구로 이동하여 Subsystem = com.mobile.ads.ads.sdk
를 설정하세요. 카테고리와 오류 수준별로 로그를 필터링할 수도 있습니다.
광고 통합에 문제가 있는 경우, 문제에 대한 상세한 보고서와 해결 방법에 대한 권장 사항을 받게 됩니다.

추가 리소스
-
GitHub 링크.