Rewarded Video Integration for iOS (Korean)

시작하기 전에 확인하세요 ironSource SDK 및 추가 광고 네트워크 어댑터를 앱에 올바르게 통합했는지 확인하세요. 통합은 여기에 대략적으로 설명되어 있습니다.

1단계. 보상 비디오 대리자 구현

ironSource SDK는 광고 가용성 및 완료를 알려주기 위해 몇 가지 이벤트를 발생시키므로 사용자에게 보상할 시기를 알 수 있습니다. SDK는 아래에 나열된 모든 가능한 이벤트를 대리자에게 알립니다:

OBJECTIVE-C

#pragma mark - ISRewardedVideoDelegate
//Called after a rewarded video has changed its availability.
//@param available The new rewarded video availability. YES if available //and ready to be shown, NO otherwise.
- (void)rewardedVideoHasChangedAvailability:(BOOL)available {
}
//Called after a rewarded video has been viewed completely and the user is //eligible for reward.@param placementInfo An object that contains the //placement's reward name and amount.
- (void)didReceiveRewardForPlacement:(ISPlacementInfo *)placementInfo {
}
//Called after a rewarded video has attempted to show but failed.
//@param error The reason for the error
- (void)rewardedVideoDidFailToShowWithError:(NSError *)error {
}
//Called after a rewarded video has been opened.
- (void)rewardedVideoDidOpen {
}
//Called after a rewarded video has been dismissed.
- (void)rewardedVideoDidClose {
}
//Note: the events below are not available for all supported rewarded video ad networks. Check which events are available per ad network you choose //to include in your build.
//We recommend only using events which register to ALL ad networks you //include in your build.
 //Called after a rewarded video has started playing.
- (void)rewardedVideoDidStart {
}
//Called after a rewarded video has finished playing.
- (void)rewardedVideoDidEnd {
}

SWIFT

//MARK: ISRewardedVideoDelegate Functions
    /**
     Called after a rewarded video has changed its availability.
     
     @param available The new rewarded video availability. YES if available and ready to be shown, NO otherwise.
     */
    public func rewardedVideoHasChangedAvailability(_ available: Bool) {
   }
    
    /**
     Called after a rewarded video has finished playing.
     */
    public func rewardedVideoDidEnd() {
    }
    
    /**
     Called after a rewarded video has started playing.
     */
    public func rewardedVideoDidStart() {
   }
    
    /**
     Called after a rewarded video has been dismissed.
     */
    public func rewardedVideoDidClose() {
   }
    
    /**
     Called after a rewarded video has been opened.
     */
    public func rewardedVideoDidOpen() {
   }
    
    /**
     Called after a rewarded video has attempted to show but failed.
     
     @param error The reason for the error
     */
    public func rewardedVideoDidFailToShowWithError(_ error: Error!) {
   }
    
    /**
     Called after a rewarded video has been viewed completely and the user is eligible for reward.
     
     @param placementInfo An object that contains the placement's reward name and amount.
     */
    public func didReceiveReward(forPlacement placementInfo: ISPlacementInfo!) {
   }

 참고:

  • ironSource는 통합 또는 라이브 프로덕션 중에 발생할 수 있는 오류를 이해하는 데 도움이 되는 오류 코드 메커니즘을 제공합니다. 전체 안내서는 여기에서 확인할 수 있습니다.
  •  콜백이 항상 주요 스레드에서 실행되고 있다고 가정하지 마세요. ironSource의 콜백에서 기인하는 모든 UI 상호작용이나 업데이트는 실행하기 전에 주 스레드로 전달되어야 합니다.

2단계. 사용자에게 비디오 보여주기

보상 비디오 대리자 및 해당 기능을 올바르게 구현하면  rewardedVideoHasChangedAvailability를 통해 가용성 상태를 수신할 수 있습니다. 그리고서 광고 가용성 변경 시 아래의 대리자 기능으로 알림을 받게 됩니다:

OBJECTIVE-C

/**
*Called after a rewarded video has changed its availability.
*@param available The new rewarded video availability. YES if available *and *ready to be shown, NO otherwise.
*/
(void)rewardedVideoHasChangedAvailability:(BOOL)available {
}

SWIFT

 /**
     Called after a rewarded video has changed its availability.
     @param available The new rewarded video availability. YES if available and ready to be shown, NO otherwise.
     */
    public func rewardedVideoHasChangedAvailability(_ available: Bool) {
   }

또는 다음을 호출하여 광고 가용성을 직접 요청할 수도 있습니다:

OBJECTIVE-C

[IronSource hasRewardedVideo];

SWIFT

IronSource.hasRewardedVideo()

광고 네트워크에 사용 가능한 비디오가 있으면 이 비디오 광고를 사용자에게 보여줄 준비가 됩니다. 트리거를 삽입하여 사용자가 비디오 광고를 보도록 유도하기에 이상적인 순간입니다.  다음 메소드를 호출하여 사용자에게 비디오 광고를 보여줄 수 있습니다:

OBJECTIVE-C

[IronSource showRewardedVideoWithViewController:(UIViewController *)viewController placement:(nullable NSString *)placementName];

SWIFT

IronSource.showRewardedVideo(with: <UIViewController>, placement: <String?>)

참고: placementName 매개 변수가 null인 경우 SDK는 ironSource 플랫폼에 구성된 기본 게재 설정을 검색합니다.
 

 ironSource 광고 게재 도구를 사용하면 보상 비디오 경험을 사용자 정의하고 최적화할 수 있습니다. 이 도구를 사용하면 보상에 따라 다양한 게재 위치에서 비디오를 사용자에게 제공할 수 있습니다. 아래 기능을 사용하여 광고를 보여주고 싶은 정확한 광고 게재 위치를 정의할 수 있습니다. 자세한 내용은 광고 게재 위치 문서를 참조하세요. 각 광고 게재와 관련된 특정 보상에 대한 세부 정보를 얻으려면 다음을 호출할 수 있습니다:

OBJECTIVE-C

[IronSource rewardedVideoPlacementInfo:(NSString *)placementName];
if(pInfo != NULL)
{
	 NSString * rewardName = [pInfo rewardName];
	 NSNumber * rewardAmount = [pInfo rewardAmount];
}

SWIFT

 let placementInfo = IronSource.rewardedVideoPlacementInfo(<placementName: String>)
        if  placementInfo != nil {
            let rewardName = placementInfo.placementName
            let rewardAmount = placementInfo.rewardAmount
        }

이제 ironSource의 광고 게재 위치 외에도 선택한 게재 위치에 대한 상한 및 간격 설정을 구성할 수 있습니다. 상한 및 간격 기능은 정의된 기간 내에 게재되는 광고의 양을 제한하여 앱의 사용자 경험을 개선합니다. 상한 및 간격 기능에 대한 자세한 내용은 여기를 참조하세요.

참고: 상한 및 간격 조정 도구를 보상 비디오에 사용하려면 아래 메소드를 호출하여 특정 게재 위치가 광고 한도에 도달했는지 확인하는 것이 좋습니다. 이는 게재 위치가 상한 또는 간격 설정되어 비디오 광고를 게재하지 않을 때 보상 비디오를 표시하지 않도록 하기 위한 것입니다.

OBJECTIVE-C

[IronSource isRewardedVideoCappedForPlacement:@"Placement"];

SWIFT

IronSource.isRewardedVideoCapped(forPlacement: <String>)

트랜잭션을 확인하기 위한 동적 사용자ID 동적 사용자ID는 세션에서 변경될 수 있는 매개 변수이며 서버 간 광고 보상 콜백에서 수신됩니다. 이 매개 변수는 AdRewarded 트랜잭션을 확인하는 데 도움이 되며 ShowRV를 호출하기 전에 설정해야 합니다.

OBJECTIVE-C

[IronSource setDynamicUserId:@"DynamicUserId"];

SWIFT

IronSource.setDynamicUserId(<dynamicUserId: String>)

3단계. 사용자 보상

사용자가 성공적으로 비디오를 완료할 때마다 ironSource SDK는 didReceiveReward 이벤트를 발생시킵니다. 보상 시 아래의 대리자 기능으로 알림을 받게 됩니다.

참고didReceiveRewardrewardedVideoDidClose 이벤트는 비동기적입니다. rewardedVideoDidClose 이벤트 이후 didReceiveReward가 발생되는 경우에도 보상을 부여하도록 리스너를 설정해야 합니다.

게재 위치 객체는 ironSource Admin에 정의된 대로 게재 위치의 보상 이름 및 보상 금액을 포함해야 합니다:

OBJECTIVE-C

//Called after a rewarded video has been viewed completely and the user is //eligible for reward.
//@param placementInfo is an object that contains the placement's reward //name and amount.
- (void)didReceiveRewardForPlacement:(ISPlacementInfo *)placementInfo {
    	 NSNumber *rewardAmount = [placementInfo rewardAmount];
	 NSString *rewardName = [placementInfo rewardName];
}

SWIFT

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

참고:

  1. ironSource 계정의 기본 설정은 앱의 클라이언트 내에서 didReceiveReward 콜백을 통해 사용자 완료/보상을 알려주는 것입니다. 또한, 백엔드 서버에서 알림을 받고 싶으면 서버 간 콜백을 활성화할 수 있습니다.
  2. 서버 간 콜백을 활성화하는 경우 동일한 완료에 대해 사용자에게 두 번 이상 보상하지 않는 것을 기억하세요. 클라이언트 측 콜백과 서버 간 콜백이 모두 수행되므로 각 완료에 대해 두 가지 알림을 받게 됩니다. 서버 간 콜백을 활용하려면 여기를 참조하세요.

 

  완료!  이제 앱에서 보상 비디오를 제공하도록 모두 설정되었습니다.

최초 통합 팁

 앱에 대한 새로운 통합인 경우 앱은 기본적으로 ironSource 대시보드의 ‘테스트 모드‘에 있습니다. 앱이 테스트 모드에 있는 동안 ironSource SDK는 SDK 프로세스에 대한 더 많은 가시성을 제공하기 위해 콘솔에 더 많은 로그를 출력합니다. 광고 인벤토리를 테스트하려면 테스트 기기를 설정하세요. 실시간 광고 인벤토리를 활성화할 때까지 수익을 창출하지 못하는 테스트 캠페인을 받게 됩니다. 앱에 실시간 광고 인벤토리가 준비되면 광고 단위 페이지에서 고 라이브!를 선택하세요.
ironsource-go-live-with-rewarded-video