리워드 광고(SwiftUI)
보상형 광고는 사용자가 광고를 시청하면 보상을 받는 인기 있는 전체 화면 광고 형식입니다.
이 광고 유형의 표시는 예를 들어 게임에서 보너스나 추가 생명을 받으려는 사용자에 의해 활성화됩니다.
사용자 동기 부여가 높기 때문에 무료 앱에서 가장 인기 있고 수익성이 높은 광고 형식입니다.
모양
이 가이드는 iOS 앱에서 SwiftUI로 리워드 광고를 연동하는 방법을 설명합니다.
사전 요구 사항
- 빠른 시작에 설명된 SDK 통합 단계를 수행하세요.
- 광고 SDK를 미리 초기화하세요.
- 최신 Yandex Mobile Ads SDK 버전을 사용하고 있는지 확인하세요. 미디에이션을 사용하는 경우, 최신 통합 빌드 버전을 실행하고 있는지도 확인하세요.
구현
SwiftUI에서 리워드 광고 연동 주요 단계:
.rewardedAd(isPresented:request:onEvent:)수정자 사용.Binding<AdRequest?>로 로드,Binding<Bool>로 표시 제어.onEvent에서RewardedAdEvent처리..didReward에서 사용자에게 보상 지급.
리워드 광고 연동 시 유의사항
-
.didFailToLoad직후 재로드는 권장하지 않습니다. 재시도 시 횟수를 제한하세요. -
표시 시나리오 동안 유지되는 뷰에 수정자를 두세요.
광고 로드
.rewardedAd에 넘긴 바인딩에 nil이 아닌 AdRequest를 설정해 로드합니다.
onEvent와 RewardedAdEvent로 단계별 알림을 받습니다.
import SwiftUI
import YandexMobileAds
struct RewardedView: View {
@State private var adRequest: AdRequest?
@State private var isPresented = false
var body: some View {
VStack {
Button("로드 및 표시") {
adRequest = AdRequest(adUnitID: "R-M-XXXXX-YY")
}
}
.rewardedAd(isPresented: $isPresented, request: $adRequest) { event in
switch event {
case .didLoad:
isPresented = true
case .didDismiss, .didFailToShow, .didFailToLoad:
adRequest = nil
default:
break
}
}
}
}
광고 단위 ID는 Yandex Advertising Network에서 받습니다.
AdRequest로 컨텍스트를 확장할 수 있습니다. 광고 타겟팅 참고.
광고 표시
보상형 광고는 사용자가 광고를 시청하면 보상을 받을 수 있는 인센티브 기반 광고 형식입니다. 보상은 게임에서 추가 생명이나 다음 레벨로의 진행일 수 있습니다. 보상 형식은 앱 수준에서 결정됩니다.
.didLoad 후 isPresented = true로 표시하거나 미리 플래그를 켤 수 있습니다. 로드가 끝나지 않았으면 표시는 연기됩니다.
struct RewardedView: View {
@State private var adRequest: AdRequest?
@State private var isPresented = false
var body: some View {
ContentView()
.rewardedAd(isPresented: $isPresented, request: $adRequest) { event in
switch event {
case .didLoad:
isPresented = true
case .didDismiss, .didFailToShow, .didFailToLoad:
adRequest = nil
default:
break
}
}
}
}
보상 지급
노출이 정상 집계되면 onEvent에 .didReward(Reward)가 옵니다. 여기서 보상을 지급하세요. .didDismiss만으로는 부족합니다.
struct RewardedView: View {
@State private var adRequest: AdRequest?
@State private var isPresented = false
var body: some View {
ContentView()
.rewardedAd(isPresented: $isPresented, request: $adRequest) { event in
switch event {
case .didReward(let reward):
sendReward(reward)
case .didDismiss, .didFailToShow, .didFailToLoad:
adRequest = nil
default:
break
}
}
}
private func sendReward(_ reward: Reward) {
// 보상 지급
}
}
리워드 광고 연동 테스트
데모 블록으로 테스트
광고 통합 및 앱 자체를 테스트하기 위해 테스트 광고를 사용하는 것이 좋습니다.
모든 광고 요청에 대해 테스트 광고가 반환되도록 보장하기 위해 특별한 데모 광고 배치 ID를 생성했습니다. 광고 통합을 확인하는 데 사용하세요.
데모 adUnitId: demo-rewarded-yandex.
Важно
앱을 스토어에 게시하기 전에 데모 배치 ID를 Yandex Advertising Network 인터페이스에서 획득한 실제 ID로 교체해야 합니다.
사용 가능한 데모 광고 배치 ID 목록은 테스트용 데모 광고 단위 섹션에서 찾을 수 있습니다.
연동이 올바른지 확인
네이티브 콘솔 도구를 사용하여 광고 통합을 테스트할 수 있습니다.
자세한 로그를 보려면 YMAMobileAds 클래스의 enableLogging 메서드를 호출하세요.
YMAMobileAds.enableLogging()
SDK 로그를 보려면 콘솔 도구로 이동하여 Subsystem = com.mobile.ads.ads.sdk를 설정하세요. 카테고리와 오류 수준별로 로그를 필터링할 수도 있습니다.
광고 통합에 문제가 있는 경우, 문제에 대한 상세한 보고서와 해결 방법에 대한 권장 사항을 받게 됩니다.
추가 자료
-
GitHub 링크.