SDK 이전

최종 업데이트: 2023년 2월

이 페이지에서는 현재 및 이전 버전의 이전에 대해 설명합니다.

버전 7에서 버전 8로 이전

이제 전체 화면 형식에서 정적 로드 메서드를 사용합니다.

플러그인 버전 7에서 전면 광고와 보상형 광고에는 광고를 로드하기 위한 인스턴스 수준 LoadAd() 메서드가 있었지만, 보상형 전면 광고와 앱 오프닝 광고에는 광고를 로드하기 위한 정적 Load() 메서드가 있었습니다. 버전 8에서는 모든 전체 화면 광고 형식 (전면 광고, 보상형 광고, 보상형 전면 광고, 앱 오프닝 광고)에 광고를 로드하기 위한 정적 Load() 메서드가 있습니다. 다음은 전면 광고를 로드하는 방법의 예입니다.

버전 8 (현재)

#if UNITY_ANDROID
const string adUnitId = "ca-app-pub-3940256099942544/1033173712";
#elif UNITY_IPHONE
const string adUnitId = "ca-app-pub-3940256099942544/4411468910";
#else
const string adUnitId = "unexpected_platform";
#endif

private InterstitialAd _interstitialAd;

private void LoadAd()
{
    // Load an interstitial ad
    InterstitialAd.Load(adUnitId, new AdRequest(),
        (InterstitialAd ad, LoadAdError loadAdError) =>
        {
            if (loadAdError != null)
            {
                Debug.Log("Interstitial ad failed to load with error: " +
                           loadAdError.GetMessage());
                return;
            }
            else if (ad == null)
            {
                Debug.Log("Interstitial ad failed to load.");
                return;
            }

            Debug.Log("Interstitial ad loaded.");
            _interstitialAd = ad;
        });
}

버전 7 (기존)

#if UNITY_ANDROID
const string adUnitId = "ca-app-pub-3940256099942544/1033173712";
#elif UNITY_IPHONE
const string adUnitId = "ca-app-pub-3940256099942544/4411468910";
#else
const string adUnitId = "unexpected_platform";
#endif

private InterstitialAd _interstitialAd;

private void LoadInterstitialAd()
{
    // Initialize an InterstitialAd.
    _interstitialAd = new InterstitialAd(adUnitId);
    // Called when an ad request has successfully loaded.
    _interstitialAd.OnAdLoaded += HandleOnAdLoaded;
    // Called when an ad request has failed to load.
    _interstitialAd.OnAdFailedToLoad += HandleOnAdFailedToLoad;
    // Create an empty ad request.
    AdRequest request = new AdRequest.Builder().Build();
    // Load the interstitial with the request.
    _interstitialAd.LoadAd(request);
}

private void HandleOnAdLoaded(object sender, EventArgs args)
{
    Debug.Log("Interstitial ad loaded.");
}

private void HandleOnAdFailedToLoad(object sender, AdFailedToLoadEventArgs args)
{
    if (args != null)
    {
        Debug.Log("Interstitial ad failed to load with error: " +
                   args.LoadAdError.GetMessage());
    }
}

다음은 보상형 광고를 로드하는 방법의 예입니다.

버전 8 (현재)

// These ad units are configured to always serve test ads.
#if UNITY_ANDROID
const string adUnitId = "ca-app-pub-3940256099942544/5224354917";
#elif UNITY_IPHONE
const string adUnitId = "ca-app-pub-3940256099942544/1712485313";
#else
const string adUnitId = "unused";
#endif

private RewardedAd _rewardedAd;

private void LoadRewardedAd()
{
    // Load a rewarded ad
    RewardedAd.Load(adUnitId, new AdRequest(),
        (Rewarded ad, LoadAdError loadError) =>
        {
            if (loadError != null)
            {
                Debug.Log("Rewarded ad failed to load with error: " +
                           loadError.GetMessage());
                return;
            }
            else if (ad == null)
            {
                Debug.Log("Rewarded ad failed to load.");
                    return;
            }

            Debug.Log("Rewarded ad loaded.");
            _rewardedAd = ad;
        });
}

버전 7 (기존)

// These ad units are configured to always serve test ads.
#if UNITY_ANDROID
const string adUnitId = "ca-app-pub-3940256099942544/5224354917";
#elif UNITY_IPHONE
const string adUnitId = "ca-app-pub-3940256099942544/1712485313";
#else
const string adUnitId = "unused";
#endif

private RewardedAd _rewardedAd;

private void LoadRewardedAd()
{
    // Initialize an InterstitialAd.
    _rewardedAd = new RewardedAd(adUnitId);
    // Called when an ad request has successfully loaded.
    _rewardedAd.OnAdLoaded += HandleOnAdLoaded;
    // Called when an ad request has failed to load.
    _rewardedAd.OnAdFailedToLoad += HandleOnAdFailedToLoad;
    // Create an empty ad request.
    AdRequest request = new AdRequest.Builder().Build();
    // Load the interstitial with the request.
    _rewardedAd.LoadAd(request);
}

private void HandleOnAdLoaded(object sender, EventArgs args)
{
    Debug.Log("Rewarded ad loaded.");
}

private void HandleOnAdFailedToLoad(object sender, AdFailedToLoadEventArgs args)
{
    if (args != null)
    {
        Debug.Log("Rewarded ad failed to load with error: " +
                   args.LoadAdError.GetMessage());
    }
}

CanShowAd()를 사용하여 전체 화면 광고를 표시할 준비가 되었는지 확인

버전 7에서는 전체 화면 광고 (전면 광고, 보상형 광고, 보상형 전면 광고, 앱 오프닝 광고)에 광고가 로드되면 true를 반환하는 IsLoaded() 메서드가 있었습니다. 광고 로드 방식이 변경됨에 따라 버전 8에서는 광고가 로드될 때까지 전체 화면 광고 객체에 액세스할 수 없으므로 IsLoaded() 메서드가 더 이상 사용되지 않습니다.

버전 8에는 광고를 계속 표시할 수 있는 경우 true를 반환하는 CanShowAd()라는 새 메서드가 있습니다. 다음은 전면 광고에서 CanShowAd()를 사용하는 방법의 예입니다.

버전 8 (현재)

private InterstitialAd _interstitalAd;

public void ShowInterstitialAd()
{
    if (_interstitalAd != null && _interstitalAd.CanShowAd())
    {
        _interstitalAd.Show();
    }
    else
    {
        Debug.Log("Interstitial ad cannot be shown.");
    }
}

버전 7 (기존)

private InterstitialAd _interstitalAd;

public void ShowInterstitialAd()
{
    if (_interstitalAd != null && _interstitalAd.IsLoaded())
    {
        _interstitalAd.Show();
    }
    else
    {
        Debug.Log("Interstitial ad is not ready yet.");
    }
}

Show(액션)을 사용하여 보상형 광고 게재

플러그인 버전 7에서는 보상형 광고에 사용자 리워드 신호를 처리하기 위한 별도의 OnUserEarnedReward 이벤트가 포함된 Show() 메서드가 있었으며 보상형 전면 광고에는 사용자 리워드 신호를 처리하기 위한 콜백이 포함된 Show(Action<Reward>) 메서드가 있었습니다. 버전 8에서는 보상형 및 보상형 전면 광고 형식에 사용자 리워드 알림을 처리하기 위한 콜백이 포함된 Show(Action<Reward>) 메서드가 있습니다.

다음은 보상형 광고를 게재하는 방법의 예입니다.

버전 8 (현재)

private RewardedAd _rewardedAd;

public void ShowRewardedAd()
{
    if (_rewardedAd != null && _rewardedAd.CanShowAd())
    {
        _rewardedAd.Show((Reward reward) =>
        {
            Debug.Log("Rewarded ad granted a reward: " +
                    reward.Amount);
        });
    }
    else
    {
        Debug.Log("Rewarded ad cannot be shown.");
    }
}

버전 7 (기존)

private RewardedAd _rewardedAd;

public void ShowRewardedAd()
{
    if (_rewardedAd != null && _rewardedAd.CanShowAd())
    {
        _rewardedAd.OnUserEarnedReward += HandleUserEarnedReward;
        _rewardedAd.Show());
    }
    else
    {
        Debug.Log("Rewarded ad is not ready yet.");
    }
}
public void HandleUserEarnedReward(object sender, Reward reward)
{
    Debug.Log("Rewarded ad granted a reward: " +
               reward.Amount);
}

이제 광고 이벤트 대리자가 특정 유형의 인수를 채택합니다.

API 버전 7에서는 이벤트 대리자를 정의할 때 EventHandlers를 사용했습니다. 버전 8에서는 광고 이벤트에 일반 대리자를 채택했습니다. 따라서 이제 이벤트는 EventArg 클래스에 래핑되지 않고 직접 이벤트 값을 내보냅니다.

다음은 OnPaidEvent 대신 OnAdPaid를 사용하는 예입니다.

버전 8 (현재)

private BannerView _bannerView;

public void ConfigureBanner()
{
    _bannerView.OnAdPaid += (AdValue value) =>
    {
        AdValue value = value;
    };
}

버전 7 (기존)

private BannerView _bannerView;

public void ConfigureBanner()
{
    _bannerView.OnPaidEvent += (object sender, AdValueEventArg arg) =>
    {
        AdValue value = arg.Value;
    };
}

광고 형식이 이제 균일한 인터페이스를 준수함

플러그인 버전 7에서는 전체 화면 광고 형식 간에 이벤트 이름이 일치하지 않았습니다. 버전 8에서는 광고 형식 전반에서 일관되도록 많은 API 메서드의 이름을 변경했습니다.

다음 표에는 v8에 도입된 클래스 변경사항이 나열되어 있습니다.

BannerView
v7v8
OnAdLoaded OnBannerAdLoaded
OnAdFailedToLoad OnBannerAdLoadFailed
OnAdOpening OnAdFullScreenContentOpened
OnAdClosed OnAdFullScreenContentClosed
OnPaidEvent OnAdPaid
InterstitialAd
LoadAd() InterstitialAd.Load()
InterstitialAd() InterstitialAd.Load()
OnAdLoaded InterstitialAd.Load()
OnAdFailedToLoad InterstitialAd.Load()
OnAdOpening OnAdFullScreenContentOpened
OnAdClosed OnAdFullScreenContentClosed
OnAdFailedToShow OnAdFullScreenContentFailed
OnAdDidRecordImpression OnAdImpressionRecorded
OnPaidEvent OnAdPaid
RewardedAd
LoadAd() RewardedAd.Load()
보상형 광고() RewardedAd.Load()
OnAdLoaded RewardedAd.Load()
OnAdFailedToLoad RewardedAd.Load()
OnAdOpening OnAdFullScreenContentOpened
OnAdClosed OnAdFullScreenContentClosed
OnAdFailedToShow OnAdFullScreenContentFailed
OnAdDidRecordImpression OnAdImpressionRecorded
OnPaidEvent OnAdPaid
Show() Show()
OnUserEarnedReward Show()
RewardedInterstitialAd
LoadAd() RewardedInterstitialAd.Load()
OnPaidEvent OnAdPaid
OnAdDidPresentFullScreenContent OnAdFullScreenContentOpened
OnAdDidDismissFullScreenContent OnAdFullScreenContentClosed
OnAdFailedToPresentFullScreenContent OnAdFullScreenContentFailed
OnAdDidRecordImpression OnAdImpressionRecorded
AppOpenAd
LoadAd() AppOpenAd.Load()
OnPaidEvent OnAdPaid
OnAdDidPresentFullScreenContent OnAdFullScreenContentOpened
OnAdDidDismissFullScreenContent OnAdFullScreenContentClosed
OnAdFailedToPresentFullScreenContent OnAdFullScreenContentFailed
OnAdDidRecordImpression OnAdImpressionRecorded
AdErrorEventArgs
AdErrorEventArgs.AdError AdError를 직접 사용합니다.
AdFailedToLoadEventArgs
AdFailedToLoadEventArgs.LoadAdError LoadAdError를 직접 사용합니다.
AdValueEventArgs
AdValueEventArgs.AdValue AdValue를 직접 사용합니다.