Unity 보상형 광고 광고 유닛 API 마이그레이션
SDK를 초기화하고 광고 형식을 정의하고 광고 유닛 ID를 사용하여 보상형 광고를 로드하고 표시하여 레벨플레이 보상형 광고 광고 광고 유닛 API 전환.
읽는 시간 4분최근 업데이트: 10시간 전
이 가이드에서는 광고 유닛 ID를 워터폴 식별자 사용하여 SDK 버전 9.0.0부터 레벨플레이 API를 연동하여 보상형 광고 광고를 로드하고 표시하는 방법을 설명합니다.
레벨플레이 플랫폼에서 광고 유닛 ID 찾기
보상형 광고 광고를 로드하고 표시하려면 레벨플레이 Mediation 플랫폼에서 사용할 수 있는 광고 유닛 ID를 사용해야 합니다.
- 레벨플레이 계정에서 설정 > 광고 단위로 이동합니다.
- 보상형 광고 유닛 ID를 복사하여 코드에 통합합니다.
레벨플레이 SDK 초기화
레벨플레이 SDK를 초기화하려면 다음 단계를 따르십시오.
- 초기화 성공 및 실패를 위한 이벤트를 구현합니다.
- 세션에서 초기화할 광고 형식 리스트를 정의합니다. 여기에는 다중 광고 유닛이 아닌 API를 사용하려는 모든 광고 형식이 포함되어야 합니다.
- 해당하는 경우 appKey, 광고 형식, 사용자 ID를 사용하여 레벨플레이 init API 호출.
using Unity.Services.LevelPlay;// Init the SDK when implementing the Multiple Ad Units API for Interstitial, Banner, and RewardedLevelPlay.OnInitSuccess += SdkInitializationCompletedEvent;LevelPlay.OnInitFailed += SdkInitializationFailedEvent;LevelPlay.Init(appKey);
레벨플레이 Init 리스너
OnInitSuccess: 초기화가 성공적으로 완료되면 트리거됩니다. 이 표시를 수신하면 광고를 생성하고 로드할 수 있습니다.
OnInitFailed: 설정이 성공적으로 검색되지 않았으며 광고를 로드할 수 없습니다. 나중에 레벨플레이 SDK를 초기화하는 것이 좋습니다(인터넷 연결이 가능하거나 오류 원인이 해결된 경우).
컴포넌트 | 레거시 | 광고 단위(신규) |
|---|---|---|
| API | IronSource.init | LevelPlay.Init |
| 이벤트 | onInitializationComplete | OnInitSuccess |
| 해당 없음 | 해당 없음 | OnInitFailed |
보상형 광고 오브젝트 생성
보상형 광고 오브젝트의 생성은 OnInitSuccess 콜백을 수신한 후에 수행해야 합니다.
오브젝트 세션 전체에 걸쳐 여러 로드와 표시를 처리할 수 있는 재사용 가능한 인스턴스. 생성되면 동일한 광고 유닛의 광고를 로드하고 표시하는 데 사용해야 합니다.
더 고급 구현을 위해 필요한 경우 여러 보상형 광고 객체를 생성할 수 있습니다.
private LevelPlayRewardedAd rewardedAd;// Create rewarded AdrewardedAd = new LevelPlayRewardedAd(adUnitId);
보상형 광고 이벤트 등록하기
생성된 보상형 광고 광고 유닛의 보상형 광고 리스너를 설정하여 광고 게재를 알립니다.
- 보상형 광고 광고를 로드하기 전에 리스너를 설정하는 것이 좋습니다.
- 각 보상형 광고 광고에는 고유한 리스너 구현이 있어야 합니다.
- 콜백은 메인 스레드 실행됩니다.
private LevelPlayRewardedAd rewardedAd;// Create rewarded AdrewardedAd = new LevelPlayRewardedAd(adUnitId);// Register to eventsrewardedAd.OnAdLoaded += OnAdLoaded;rewardedAd.OnAdLoadFailed += OnAdLoadFailed;rewardedAd.OnAdDisplayed += OnAdDisplayed;rewardedAd.OnAdDisplayFailed += OnAdDisplayFailed;rewardedAd.OnAdRewarded += OnAdRewarded;rewardedAd.OnAdClosed += OnAdClosed;// OptionalrewardedAd.OnAdClicked += OnAdClicked;rewardedAd.OnAdInfoChanged += OnAdInfoChanged;
레벨플레이 보상형 광고 광고 이벤트
OnAdLoaded: 광고가 성공적으로 로드되면 제공됩니다.
OnAdLoadFailed: 광고 로드 실패 시 제공됩니다. 광고 유닛 정보가 포함됩니다.
OnAdDisplayed: 광고가 표시될 때 제공됩니다. 이는 노출과 동일합니다.
OnAdDisplayFailed: 광고가 표시되지 않을 때 제공됩니다.
OnAdRewarded: 광고 보상형 광고 제공될 때 제공됩니다. 광고 유닛 정보와 보상 정보가 포함됩니다.
OnAdClicked(선택 사항): 사용자 광고를 클릭할 때 제공됩니다.
OnAdClosed: 광고가 닫힐 때 제공됩니다.
OnAdInfoChanged(선택 사항): 광고 정보가 업데이트될 때 제공됩니다. 다른 광고가 로드되었을 때 사용 가능하며 CPM/Rate가 더 높습니다.
컴포넌트 | 레거시 | 광고 단위(신규) |
|---|---|---|
| 청자 | IronSourceRewardedVideoEvents | LevelPlayRewardedAd |
| 이벤트 | onAdReady | OnAdLoaded |
| onAdLoadFailed | OnAdLoadFailed | |
| onAdOpened | OnAdDisplayed | |
| onAdClosed | OnAdClosed | |
| onAdShowFailed | OnAdDisplayFailed | |
| onAdRewarded | OnAdRewarded | |
| onAdClicked | OnAdClicked | |
| onAdShowSucceeded | n/a (사용 중단 예정) | |
| n/a | OnAdInfoChanged |
보상형 광고 로드
OnInitSuccess 이벤트를 수신하면 보상형 광고를 로드할 수 있습니다. 이는 메서드를 사용하여 수행해야 합니다.
// Load or reload the adrewardedAd.LoadAd();
보상형 광고 표시
ShowAd API를 사용하여 OnAdLoaded 이벤트를 수신한 후 보상형 광고를 표시할 수 있습니다.
플레이스먼트를 사용하는 경우 아래와 같이 API의 일부로 이름을 공유합니다.
// Show ad without placement rewardedAd.ShowAd();// Show ad with placement rewardedAd.ShowAd(placementName);
광고가 준비되었는지 확인
표시 실패를 방지하고 광고가 올바르게 표시되었는지 확인하기 위해 ShowAd API를 호출하기 전에 다음 API를 사용하는 것이 좋습니다.
IsAdReady: 광고가 성공적으로 로드되고 광고 유닛이 제한되지 않거나 거짓이 아닌 경우 true를 반환합니다.
IsPlacementCapped: 유효한 플레이스먼트가 제한되면 true를 반환합니다. 플레이스먼트가 유효하지 않거나 제한이 없는 경우 이 API false를 반환합니다.
// Check that ad is ready and that the placement is not cappedif (rewardedAd.IsAdReady() && !LevelPlayRewardedAd.IsPlacementCapped(placementName)){ rewardedAd.ShowAd(placementName);}
언제
광고가 플레이어 성공적으로 표시되면 Load 보상형 광고 Ad 단계를 반복하여 다른 광고를 로드할 수 있습니다. 한 번에 하나의 광고를 로드할 때 새 광고 엔티티 생성할 필요가 없습니다.
사용자 보상
레벨플레이 SDK는 사용자가 동영상을 성공적으로 완료할 때마다 OnAdRewarded를 작동시킵니다.
OnAdRewarded 및 OnAdClosed는 비동기입니다. OnAdRewarded가 OnAdClosed 이후에 해지되는 경우에도 보상을 제공하도록 리스너를 설정해야 합니다.
// Subscribe to the OnAdRewarded eventad.OnAdRewarded += (adInfo, reward) => { // Grant the reward to the user Debug.Log($"Ad Completed: {adInfo.PlacementName}, Reward: {reward.Name} - {reward.Amount}"); GrantReward(reward.Name, reward.Amount);};// Example method to process the rewardprivate void GrantReward(문자열 rewardName, int rewardAmount){ // TODO: 로직을 구현하여 사용자 보상을 부여합니다. Debug.Log($"Granting reward: {rewardName} with amount: {rewardAmount}");}
여러 광고 유닛 보상형 광고 API
컴포넌트 | 레거시 | 광고 단위(신규) |
|---|---|---|
| 클래스 | 아이언소스(IronSource) | LevelPlayRewardedAd |
| API | loadRewardedVideo | LoadAd |
| showRewardedVideo | ShowAd | |
| isRewardedVideoPlacementCapped | IsPlacementCapped | |
| isRewardedVideoAvailable | IsAdReady | |
| placement.getRewardName | reward.Name | |
| placement.getRewardAmount | reward.Amount |
보상형 광고 광고의 전체 구현 예시
public class LevelPlaySample : MonoBehaviour{ private LevelPlayRewardedAd rewardedAd; void CreateRewardedAd(string adUnitId) { rewardedAd = new LevelPlayRewardedAd(adUnitId); rewardedAd.OnAdLoaded += OnAdLoaded; rewardedAd.OnAdLoadFailed += OnAdLoadFailed; rewardedAd.OnAdDisplayed += OnAdDisplayed; rewardedAd.OnAdDisplayFailed += OnAdDisplayFailed; rewardedAd.OnAdRewarded += OnAdRewarded; rewardedAd.OnAdClicked += OnAdClicked; rewardedAd.OnAdClosed += OnAdClosed; rewardedAd.OnAdInfoChanged += OnAdInfoChanged; } void LoadRewardedAd() { rewardedAd.LoadAd(); } void ShowRewardedAd(string placementName = null) { if (rewardedAd.IsAdReady() &&!LevelPlayRewardedAd.IsPlacementCapped(placementName)) { rewardedAd.ShowAd(placementName); } } bool CheckIfRewardedAdIsReady() { return rewardedAd.IsAdReady(); } bool CheckIfPlacementIsCapped(문자열 placementName) { return LevelPlayRewardedAd.IsPlacementCapped(placementName); } void OnAdLoaded(LevelPlayAdInfo adInfo) { Debug.Log($"Rewarded ad loaded with ad info {adInfo}"); } void OnAdLoadFailed(LevelPlayAdError adError) { Debug.Log($"Rewarded ad failed to load with ad error {adError}"); } void OnAdDisplayed(LevelPlayAdInfo adInfo) { Debug.Log($"Rewarded ad displayed with ad info {adInfo}"); } void OnAdDisplayFailed(LevelPlayAdInfo adInfo, LevelPlayAdError error) { Debug.Log($"Rewarded ad failed to display with ad info: {adInfo} and error: {error}"); } void OnAdRewarded(LevelPlayAdInfo adInfo, LevelPlayReward adReward) { Debug.Log($"Rewarded ad gained reward with adInfo {adInfo} and reward {adReward}"); } void OnAdClicked(LevelPlayAdInfo adInfo) { Debug.Log($"Rewarded ad clicked with ad info {adInfo}"); } void OnAdClosed(LevelPlayAdInfo adInfo) { Debug.Log($"Rewarded ad closed with ad info {adInfo}"); } void OnAdInfoChanged(LevelPlayAdInfo adInfo) { Debug.Log($"Rewarded ad info changed with ad info {adInfo}"); } }