ALOHA BRAND SITE
home
FLAMINGO
home
📗

AlohaSdk.Ads (광고)

1) Banner 광고

AlohaSdkConfigs에서 ShowBannerAdsOnInitialized가 체크되어 있다면, 광고 SDK 초기화가 완료되는 즉시 Banner 광고가 등장합니다.

void AlohaSdk.Ads.ShowBannerAd()

Banner광고가 나타나지 않은 상태에서 Banner 광고가 노출되길 원한다면 호출합니다.

void AlohaSdk.Ads.DestoryBanner()

(No Ads 상품 결제 등으로 인해) 노출되고 있던 Banner 광고를 없애야 하는 경우 호출합니다.

2) Interstitial 광고

전면 팝업 광고 입니다.

void AlohaSdk.Ads.ShowInterstitialAd

(int placementId, string placementName)
Interstitial 광고를 노출하고자 할 때 호출합니다.
Parameters
int placementId, string placementName
어떤 상황에서 Interstitial 광고를 노출하는지 식별하기 위한 Id 넘버와 이름입니다.
int placementId = 2001; // 광고id int placementName = "is_stage_clear"; // 광고이름 AlohaSdk.Ads.ShowInterstitialAd(placementId, placementName);
C#
복사
Interstitial 광고가 노출되는 간격, 첫 노출 시점 등은 원격으로 설정되므로, 게임 코드에선 별도의 조건 체크 없이 ShowInterstitialAd만 호출하면 됩니다.
예를 들어 원격 구성으로 첫 노출 시점이 3분 플레이 이후, 60초 간격으로 노출 설정이 되어있다면 3분 플레이 이전이나 직전 노출 후 60초 이내에는 ShowInterstitialAd를 호출해도 Interstitial 광고가 노출되지 않습니다.
일반적으로는 스테이지 시작, 스테이지 클리어, 다음 스테이지 시작 등의 상황에 많이 활용됩니다.

3) Reward 광고

추가 혜택을 위해 유저가 의도적으로 광고를 시청하고자 하는 경우에 노출하는 광고입니다.
AlohaSDK에서는 Reward 광고를 사용하기 위한 세가지 방법을 제공합니다.

void AlohaSdk.Ads.ShowRewardedAd

(int placementId, string placementName)
AlohaSdk.Ads.OnReceivedReward C# 이벤트에 직접 콜백 함수를 등록하는 방법입니다.
private void OnRewarded(int placementId) { ... } ... int placementId = 3001; // 광고id int placementName = "rv_power_1"; // 광고이름 AlohaSdk.Ads.OnReceivedReward += OnRewarded; AlohaSdk.Ads.ShowRewardedAd(placementId, placementName);
C#
복사
콜백 함수는 placementId를 parameter로 받아 실행되어야 합니다.
한 번 등록되면 명시적으로 remove하기 전까지 Reward 광고 시청이 완료될 때마다 호출됩니다.

void AlohaSdk.Ads.ShowRewardedAd

(int placementId, string placementName, Action onRewarded)
Parameter를 통해 콜백 함수를 전달하는 방법입니다.
private void OnRewarded() { ... } ... int placementId = 3001; // 광고id int placementName = "rv_power_1"; // 광고이름 AlohaSdk.Ads.ShowRewardedAd(placementId, placementName, OnRewarded);
C#
복사
콜백 함수는 아무런 parameter도 받지 않습니다.
해당 ShowRewardedAd 콜을 통해 노출되는 Reward 광고가 완료될 때만 호출됩니다.

void AlohaSdk.Ads.ShowRewardedAdAsync

(int placementId, string placementName)
C# async/await 패턴을 사용하여 광고가 끝나기를 기다린 후 결과를 처리하는 방법입니다.
public async void ShowRV() { int placementId = 3001; // 광고id int placementName = "rv_power_1"; // 광고이름 bool result = await AlohaSdk.Ads.ShowRewardedAdAsync(placementId, placementName); if(result) { // 광고시청 성공 처리 } else { // 광고시청 실패 처리 } }
C#
복사
광고를 끝까지 보고 보상을 받을 수 있는 경우 true, 어떤 이유에서든지(로딩 실패, 광고 중단 등) 실패할 경우 false를 반환합니다.

4) Ad not ready 처리

유저가 Reward 광고를 시청하려할 때, 우선 광고의 로드 여부를 체크하고 로드되지 않았다면 적절한 처리를 해야 합니다.

bool AlohaSdk.Ads.IsRewardedAdReady

Reward 광고의 로드 여부를 bool로 return합니다.
... if(AlohaSdk.Ads.IsRewardedAdReady()) { // 광고시청 } else { // 광고 로드되지 않음 알림 } ...
C#
복사
광고가 로드되지 않았음이 확인되면 시스템 메시지를 보여주거나 팝업을 띄우는 방식으로 유저에게 알려야 합니다. AlohaSDK에서는 기본 Ad not ready 팝업을 제공하며, 이를 띄우기 위한 세가지 방법을 제공합니다.

AlohaSdk.Ads.ShowAdNotReadyPopup

Ad not ready 팝업을 띄운 후 바로 return하는 가장 기본적인 방법입니다.
// 광고 로드되지 않음 알림 AlohaSdk.Ads.ShowAdNotReadyPopup(); return;
C#
복사

IEnumerator AlohaSdk.Ads.ShowAdNotReadyPopupCoroutine

Ad not ready 팝업을 띄운 후 닫힐 때까지 코루틴으로 기다리는 방법입니다.
// 광고 로드되지 않음 알림 - 코루틴 yield return StartCoroutine(AlohaSdk.Ads.ShowAdNotReadyPopupCoroutine()); ... // 팝업 닫힌 후 후속 처리
C#
복사

async Task AlohaSdk.Ads.ShowAdNotReadyPopupTask()

Ad not ready 팝업을 띄운 후 닫힐 때까지 async/await 패턴으로 기다리는 방법입니다.
// 광고 로드되지 않음 알림 - async Task await AlohaSdk.Ads.ShowAdNotReadyPopupTask(); ... // 팝업 닫힌 후 후속 처리
C#
복사
기본 AdNotReadyPopup prefab의 경로는 다음과 같습니다:
Assets/AlohaSdk/Resources/AlohaAdNotReadyPopup.prefab
해당 경로의 prefab을 수정하거나 게임 자체의 알림 시스템을 사용하여 유저에게 광고가 준비되지 않았음을 적절하게 알려주시기 바랍니다.

5) 기타 콜백

기타 콜백은 MaxSdkCallbacks를 통해 설정할 수 있습니다.
콜백 종류
OnAdLoadedEvent { add, remove }
OnAdLoadFailedEvent { add, remove }
OnAdDisplayedEvent { add, remove }
OnAdDisplayFailedEvent { add, remove }
OnAdClickedEvent { add, remove }
OnAdRevenuePaidEvent { add, remove }
OnAdReviewCreativeIdGeneratedEvent { add, remove }
OnAdHiddenEvent { add, remove }
예)
MaxSdkCallbacks.Interstitial.OnAdLoadedEvent += OnInterstitialLoaded;
C#
복사
(참고) 위에서 설명된 placementId, placementName 등은 Alohafactory와 협의하여 결정됩니다.