iOS의 수동 로딩 보상형 동영상 광고 연동

아이언소스의 보상형 동영상 광고들은 기본적으로 자동으로 로딩되지만, 수동으로 로딩할 수 있게게 설정할 수도 있습니다. 이렇게 설정하기 위해서는, SDK 초기화 전에 전체 세션의 로딩 모드를 수동 로딩 모드로 설정해야 합니다. 이 기능은 아이언소스 SDK 7.2.0 이상 버전부터 지원됩니다. 

1단계: 보상형 동영상 수동 로딩 설정

아이언소스 SDK 초기화 이전에 보상형 동영상 작동 모드를 변경합니다. 수동 모드로 변경할 시, 수동모드 전용 콜백 대리자(Delegate)인 LevelPlayRewardedVideoManualDelegate 도 구현해야 합니다.

[IronSource setLevelPlayRewardedVideoManualDelegate:self];
IronSource.setLevelPlayRewardedVideoManualDelegate(self)

이 대리자(Delegate)는 광고 준비 및 완료 상황에 대한 콜백을 발동시켜 언제 광고를 표시하고 사용자 보상을 전달해야 하는지를 알 수 있게 합니다.

아이언소스 SDK는 구현된 해당 리스너에 아래에 명시된 모든 가능한 이벤트들의 발생을 알립니다:

+ (void)setLevelPlayRewardedVideoManualDelegate:(nullable id<LevelPlayRewardedVideoManualDelegate>)delegate;
#pragma mark - LevelPlayRewardedVideoManualDelegate
/**
 Called after an rewarded video has been loaded in manual mode
 @param adInfo The info of the ad.
 */
- (void)didLoadWithAdInfo:(ISAdInfo *)adInfo{
}
/**
 Called after a rewarded video has attempted to load but failed in manual mode
 @param error The reason for the error
 */
- (void)didFailToLoadWithError:(NSError *)error{
}
/**
 Called after a rewarded video has been viewed completely and the user is eligible for a reward.
 @param placementInfo An object that contains the placement's reward name and amount.
 @param adInfo The info of the ad.
 */
- (void)didReceiveRewardForPlacement:(ISPlacementInfo *)placementInfo withAdInfo:(ISAdInfo *)adInfo{
}
/**
 Called after a rewarded video has attempted to show but failed.
 @param error The reason for the error
 @param adInfo The info of the ad.
 */
- (void)didFailToShowWithError:(NSError *)error andAdInfo:(ISAdInfo *)adInfo{
}
/**
 Called after a rewarded video has been opened.
 @param adInfo The info of the ad.
 */
- (void)didOpenWithAdInfo:(ISAdInfo *)adInfo{
}
/**
 Called after a rewarded video has been dismissed.
 @param adInfo The info of the ad.
 */
- (void)didCloseWithAdInfo:(ISAdInfo *)adInfo{
}
/**
 Called after a rewarded video has been clicked. 
 This callback is not supported by all networks, and we recommend using it 
 only if it's supported by all networks you included in your build
 @param adInfo The info of the ad.
 */
- (void)didClick:(ISPlacementInfo *)placementInfo withAdInfo:(ISAdInfo *)adInfo{
}
IronSource.setLevelPlayRewardedVideoManualDelegate(delegate: LevelPlayRewardedVideoManualDelegate?)
// MARK: LevelPlayRewardedVideoManualDelegate

/**
 Called after an rewarded video has been loaded in manual mode
 @param adInfo The info of the ad.
 */
func didLoad(with adInfo: ISAdInfo!) {
}

/**
 Called after a rewarded video has attempted to load but failed in manual mode
 @param error The reason for the error
 */
func didFailToLoadWithError(_ error: Error!) {
}

/**
 Called after a rewarded video has been viewed completely and the user is eligible for a reward.
 @param placementInfo An object that contains the placement's reward name and amount.
 @param adInfo The info of the ad.
 */
func didReceiveReward(forPlacement placementInfo: ISPlacementInfo!, with adInfo: ISAdInfo!) {
}

/**
 Called after a rewarded video has attempted to show but failed.
 @param error The reason for the error
 @param adInfo The info of the ad.
 */
func didFailToShowWithError(_ error: Error!, andAdInfo adInfo: ISAdInfo!) {
}

/**
 Called after a rewarded video has been opened.
 @param adInfo The info of the ad.
 */
func didOpen(with adInfo: ISAdInfo!) {
}

/**
 Called after a rewarded video has been dismissed.
 @param adInfo The info of the ad.
 */
func didClose(with adInfo: ISAdInfo!) {
}

/**
 Called after a rewarded video has been clicked. 
 This callback is not supported by all networks, and we recommend using it 
 only if it's supported by all networks you included in your build
 @param adInfo The info of the ad.
 */
func didClick(_ placementInfo: ISPlacementInfo!, with adInfo: ISAdInfo!) {
}

전체 대리자(Delegate)에 대한 구현사항은 여기를 참고 부탁 드립니다 .

2단계: 보상형 동영상 광고 수동 로드

보상형 동영상 광고 로딩은 시간이 걸릴 수 있기 때문에, 광고를 사용자에게 보여주기 전에 동영상 로드를 요청합니다. 아래의 API를 사용하여 광고를 로드합니다:

[IronSource loadRewardedVideo]
IronSource.loadRewardedVideo()

복수의 보상형 동영상 광고를 게재하기 위해서는 이전 광고가 표시되고 닫힌 다음 이 과정을 반복해 동영상을 로드해야 합니다. didClose Delegate가 호출되고 나면, 새로운 보상형 동영상 광고를 로드할 수 있습니다.

완료했습니다!

로드 작동 모드를 수동으로 설정되었으면 여기에서 설명된 대로 보상형 동영상 연동을 완료할 수 있습니다.