Unity Ads 레벨플레이 마이그레이션
Advertisement 레거시 패키지를 사용하는 Unity Ads SDK의 직접 통합에서 Ads Mediation 패키지와 레벨플레이 통합으로 마이그레이션합니다.
읽는 시간 8분최근 업데이트: 9시간 전
이 가이드에서는 일반적인 사용 사례에 대한 API 매핑을 비롯하여 프로젝트를 직접 Unity Ads SDK 통합에서 레벨플레이 SDK 통합으로 전환 방법을 설명합니다. 자세한 내용은 레벨플레이 통합 가이드를 참조하십시오. 레벨플레이 마이그레이션하는 주요 단계는 다음 표를 참고하십시오.
항목 | 설명 |
|---|---|
| 광고 Mediation으로 마이그레이션 | 레거시 Unity Ads에서 레벨플레이로 프로젝트 전환 |
| 맵 API 및 업데이트 코드 | 레거시 초기화, 배너, 인터스티셜 광고 및 보상형 광고를 레벨플레이에 해당하는 광고로 교체합니다. |
| 테스트 및 검증 | 선택 사항으로 레벨플레이 테스트 제품군과 빌트인 통합 확인 툴을 사용하여 새 통합을 검증합니다. |
| API 및 기능 매핑 레퍼런스 | 레거시 Unity Ads 기능과 파라미터가 해당 레벨플레이 대안에 매핑되는 방법을 검토합니다. |
| 레거시 패키지 제거 | Advertisement 레거시 패키지를 제거하고 프로젝트의 남은 종속성을 결정합니다. |
필수 조건
레벨플레이 대시보드에 액세스, 접근할 수 있는지 확인합니다.
Ads Mediation 마이그레이션
레거시 Unity Ads 연동을 레벨플레이 대체하려면 다음 단계를 따르십시오.
레벨플레이 패키지 설치
Unity 패키지 관리자 사용하여 레벨플레이 패키지를 설치하려면 다음 단계를 따르십시오.
- Unity 에디터에서 Window > Package Manager로 이동합니다.
- 선택 패키지: Unity Registry를 선택합니다.
- 검색 광고 Mediation.
- 최신 버전의 경우 설치를 선택합니다.
종속성 구성
레벨플레이 Android 및 iOS 라이브러리를 관리하려면 Mobile Dependency Resolver 또는 Unity 외부 종속성 관리자(EDM4U)와 같은 종속성 리솔러가 필요합니다.
프로젝트에 종속성 리셀러가 설치되어 있는지 확인합니다. 프로젝트에 이미 종속성 리셀러가 포함되어 있으면 유지하세요. 레벨플레이 설치 후에 Mobile Dependency Resolver를 설치하라는 프롬프트가 나타나면 Yes를 선택합니다.
레벨플레이 대시보드 설정
레벨플레이 대시보드를 설정 앱을 등록하고 Mediation 필요한 광고 유닛을 생성합니다.
- 레벨플레이 대시보드에 로그인합니다.
- Add App을 선택하고 프롬프트에 따라 애플리케이션을 등록합니다.
- 광고 유닛으로 이동하여 관리할 앱을 선택합니다.
- 광고 유닛을 생성합니다(배너, 인터스티셜 광고 또는 보상형 광고). 광고 유닛에 대한 자세한 내용은 광고 유닛 관리 기술 자료를 참고하십시오.
- 레벨플레이 대시보드 앱 페이지에서 앱 키 및 광고 유닛 ID를 찾아 저장합니다. 이 ID는 맵 API에 필요합니다.
맵 API 및 코드 업데이트
기존의 클래스 호출을 해당하는 메서드로 교체합니다. 레거시 Unity Ads SDK와 달리, 레벨플레이 광고 유닛의 인스턴스를 생성해야 합니다. 광고 유닛은 선택적 설정 파라미터 있는 재사용 가능한 인스턴스입니다. SDK를 초기화하고 배너 광고, 인터스티셜 광고 광고, 보상형 광고 광고를 구현하려면 다음 샘플을 참고하십시오.
AdvertisementLevelPlay레벨플레이 SDK 초기화
레벨플레이 SDK는 게임 ID 대신 앱 키를 사용합니다. 이벤트 리스너를 등록하고 SDK를 초기화하려면 다음 샘플을 참조하십시오.
LevelPlay.OnInitSuccess += SdkInitializationCompletedEvent;LevelPlay.OnInitFailed += SdkInitializationFailedEvent;LevelPlay.Init("YOUR_APPKEY");void SdkInitializationCompletedEvent(LevelPlayConfiguration config){ Debug.Log($"[LevelPlaySample] Received SdkInitializationCompletedEvent with Config: {config}");}void SdkInitializationFailedEvent(LevelPlayInitError error){ Debug.Log($"[LevelPlaySample] Received SdkInitializationFailedEvent with Error: {error}"); }
배너 광고 구현
배너 광고를 구현하려면 다음 샘플을 참조하십시오.
public class BannerAdSample { private LevelPlayBannerAd bannerAd; void CreateBannerAd() { // Create ad configuration - optional var adConfig = new LevelPlayBannerAd.Config.Builder() .SetSize(LevelPlayAdSize.BANNER) .SetPlacementName("placementName") .SetPosition(LevelPlayBannerPosition.BottomCenter) .SetDisplayOnLoad(true) .SetRespectSafeArea(true) .Build(); // Create banner instance bannerAd = new LevelPlayBannerAd("YOUR_BANNER_AD_UNIT_ID", adConfig); // Subscribe BannerAd events bannerAd.OnAdLoaded += BannerOnAdLoadedEvent; bannerAd.OnAdLoadFailed += BannerOnAdLoadFailedEvent; bannerAd.OnAdDisplayed += BannerOnAdDisplayedEvent; bannerAd.OnAdDisplayFailed += BannerOnAdDisplayFailedEvent; bannerAd.OnAdClicked += BannerOnAdClickedEvent; bannerAd.OnAdCollapsed += BannerOnAdCollapsedEvent; bannerAd.OnAdLeftApplication += BannerOnAdLeftApplicationEvent; bannerAd.OnAdExpanded += BannerOnAdExpandedEvent; } public void LoadBannerAd() { //Load the banner ad bannerAd.LoadAd(); } public void ShowBannerAd() { //Show the banner ad, call this method only if you turned off the auto show when you created this banner instance. bannerAd.ShowAd(); } public void HideBannerAd() { //Hide banner bannerAd.HideAd(); } public void DestroyBannerAd() { //Destroy banner bannerAd.DestroyAd(); } //Implement BannerAd Events public void BannerOnAdLoadedEvent(LevelPlayAdInfo adInfo) {} public void BannerOnAdLoadFailedEvent(LevelPlayAdError ironSourceError) {} public void BannerOnAdClickedEvent(LevelPlayAdInfo adInfo) {} public void BannerOnAdDisplayedEvent(LevelPlayAdInfo adInfo) {} public void BannerOnAdDisplayFailedEvent(LevelPlayAdInfo adInfo, LevelPlayAdError error){} public void BannerOnAdCollapsedEvent(LevelPlayAdInfo adInfo) {} public void BannerOnAdLeftApplicationEvent(LevelPlayAdInfo adInfo) {} public void BannerOnAdExpandedEvent(LevelPlayAdInfo adInfo) {}}
인터스티셜 광고 구현
인터스티셜 광고 구현하려면 다음 샘플을 참고하십시오.
public class InterstitialAdSample { private LevelPlayInterstitialAd interstitialAd; void CreateInterstitialAd() { // Create InterstitialAd instance interstitialAd = new LevelPlayInterstitialAd("YOUR_INTERSTITIAL_AD_UNIT_ID"); // Subscribe InterstitialAd events interstitialAd.OnAdLoaded += InterstitialOnAdLoadedEvent; interstitialAd.OnAdLoadFailed += InterstitialOnAdLoadFailedEvent; interstitialAd.OnAdDisplayed += InterstitialOnAdDisplayedEvent; interstitialAd.OnAdDisplayFailed += InterstitialOnAdDisplayFailedEvent; interstitialAd.OnAdClicked += InterstitialOnAdClickedEvent; interstitialAd.OnAdClosed += InterstitialOnAdClosedEvent; interstitialAd.OnAdInfoChanged += InterstitialOnAdInfoChangedEvent; } void LoadInterstitialAd() { // Load or reload InterstitialAd interstitialAd.LoadAd(); } void ShowInterstitialAd() { // Show InterstitialAd, check if the ad is ready before showing if (interstitialAd.IsAdReady()) { interstitialAd.ShowAd(); } } void DestroyInterstitialAd() { // Destroy InterstitialAd interstitialAd.DestroyAd(); } // Implement InterstitialAd events void InterstitialOnAdLoadedEvent(LevelPlayAdInfo adInfo) { } void InterstitialOnAdLoadFailedEvent(LevelPlayAdError error) { } void InterstitialOnAdClickedEvent(LevelPlayAdInfo adInfo) { } void InterstitialOnAdDisplayedEvent(LevelPlayAdInfo adInfo) { } void InterstitialOnAdDisplayFailedEvent(LevelPlayAdInfo adInfo, LevelPlayAdError error) { } void InterstitialOnAdClosedEvent(LevelPlayAdInfo adInfo) { } void InterstitialOnAdInfoChangedEvent(LevelPlayAdInfo adInfo) { }}
보상형 광고
보상형 광고 광고를 구현하려면 다음 샘플을 참고하십시오.
public class LevelPlaySample : MonoBehaviour{ private LevelPlayRewardedAd rewardedAd; void CreateRewardedAd() { rewardedAd = new LevelPlayRewardedAd("YOUR_REWARDED_AD_UNIT_ID"); 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(LevelPlayAdDisplayInfoError adInfoError) { Debug.Log($"Rewarded ad failed to display with ad info and error {adInfoError}"); } 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}"); } }
테스트 및 검증
연동을 확인하려면 앱을 빌드 확인 테스트를 실행합니다.
빌드 및 테스트
Android 또는 iOS용 앱을 빌드 통합을 테스트합니다. 앱은 레벨플레이 대시보드에서 비활성화하다, 무효화하다, 사용 안 함 때까지 테스트 모드 상태로 유지됩니다.
Test Suite 실행(선택 사항)
레벨플레이 통합 테스트 제품군을 사용하여 각 광고 네트워크가 올바르게 구성되었는지 확인합니다.
앱에서 Test Suite를 활성화하려면 초기화를 설정하기 전에 API를 호출합니다.
setMetaDataLevelPlay.SetMetaData("is_test_suite", "enable");
성공 콜백 시 Test Suite 실행:
LevelPlayEvents.onSdkInitializationCompletedEvent += SdkInitializationCompletedEvent;private void SdkInitializationCompletedEvent(){ ... //Launch test suite LevelPlay.LaunchTestSuite();}
연동 확인
다음 API 호출 패키지 및 종속성에 대한 내부 검사를 수행합니다.
LevelPlay.ValidateIntegration();
레거시 패키지 제거
모든 광고가 올바르게 함수 프로젝트에 레거시 Advertisement API가 없는지 확인한 후 다음 단계에 따라 Advertisement 레거시 패키지를 제거합니다.
- Unity 에디터에서 Window > Package Manager로 이동합니다.
- 선택 패키지: In Project.
- 찾아서 광고 레거시를 선택합니다.
- 제거를 선택합니다.
API 및 기능 매핑 레퍼런스
다음 표를 사용하여 레거시 Unity Ads SDK API 파라미터를 레벨플레이 API 파라미터에 맵.
사용 사례 | Unity Ads API 파라미터 | 레벨플레이 파라미터 | 참고 사항 |
|---|---|---|---|
| 초기화 ID | | | Android와 iOS 모두에 적용 |
| Initialize SDK | | | 테스트 모드는 레벨플레이에서 지원되지 않습니다. |
| 초기화 성공 이벤트 | | | |
| Init 이벤트 실패 | | | |
| 초기화됨 | | 지원 안 함 | 레벨플레이 지원되지 않음 |
| MetaData 설정 | | | |
| 배너 로드 | | | 인스턴스 생성 |
| 배너 표시 | | | 인스턴스 생성 |
| 배너 위치 설정 | | | 생성자 또는 빌더에서 전달한 활용 사례 |
| 배너 로드 옵션 | | 및 | |
| 배너 옵션 | | 및 및 및 및 및 | |
| 옵션 표시 | | 및 및 및 및 및 | |
| 배너 숨기기 | | | 인스턴스 생성 |
| 배너 클릭됨 | | | 인스턴스의 이벤트 콜백 |
| 배너 표시 | | | 인스턴스의 이벤트 콜백 |
| 배너 숨김 | | 지원 안 함 | |
| 보상형 광고 로드 | | | 인스턴스 생성 |
| 보상형 광고 표시 | | | 인스턴스 생성 |
| 로드 인터스티셜 광고 | | | 인스턴스 생성 |
| 인터스티셜 광고 표시 | | | 인스턴스 생성 |
| 로드된 광고 | | 또는 | 인스턴스의 이벤트 콜백 |
| 광고 로드 실패 | | 또는 | 인스턴스의 이벤트 콜백 |
| 광고 표시 실패 | | 또는 | 인스턴스의 이벤트 콜백 |
| 광고 표시 시작 | | 또는 | 인스턴스의 이벤트 콜백 |
| 광고 표시 클릭 | | 또는 | 인스턴스의 이벤트 콜백 |
| 광고 표시 완료 | | 또는 | 인스턴스의 이벤트 콜백 |
| 지원됨 | | 지원 안 함 | 레벨플레이 지원되지 않음 |
| 디버그 모드 | | 지원 안 함 | 레벨플레이 지원되지 않음 |
| 패키지 버전 | | | |
| 표시 중 | | 지원 안 함 | 레벨플레이 지원되지 않음 |