버전 6으로 마이그레이션 가이드

Важно

사용한 Yandex Mediation 어댑터를 최신 버전으로 업데이트하세요. 이전 버전은 어댑터 통합 오류를 유발하여 광고가 제공되지 않을 수 있습니다.

배너

AdSize 클래스 이름을 BannerAdSize로 변경했습니다. FlexibleSize(int width, int height) 메서드가 제거되었습니다.

광고 유형에 따라 메서드를 사용하세요.

적응형 스티키 배너를 생성하려면 BannerAdSize.stickySize(int width) 메서드를 사용하세요.

앱 화면의 상단 또는 하단에 배치되어 자동으로 업데이트되는 작은 광고입니다.

주요 앱 콘텐츠와 겹치지 않으며 게임 앱에서 자주 사용됩니다.

스티키 배너의 높이는 자동으로 결정되며, 장치의 화면 크기에 맞춰 조정되고 화면 높이의 15%를 초과하지 않습니다.

Важно

버전 6.0.0에서는 적응형 스티키 배너에 대한 자동 새로 고침 지원이 추가되었습니다.

이전에 스티키 배너에 대한 자동 새로 고침을 구현한 경우, 비활성화하세요.

적응형 인라인 배너를 생성하려면 BannerAdSize.inlineSize(int width, int maxHeight) method를 사용하세요.

적응형 인라인 배너는 장치에서 광고 크기를 최적화하여 최대 효율을 제공하는 유연한 배너 광고 형식입니다.

배너 높이는 자동으로 조정되며, 장치 화면의 높이까지 도달할 수 있습니다.

일반적으로 해당 형식은 피드 기반 앱이나 광고에 주로 집중해도 되는 상황에서 사용됩니다.

보상형 광고

광고 생성 및 로드 접근 방식이 변경되었습니다. 이제 광고를 로드하는 RewardedAdLoader 로더 객체와 OnAdLoaded 광고 로드 이벤트에서 가져온 RewardedAd광고 객체를 제공합니다.

광고 로드

SDK 5

광고 로드 및 렌더링을 위한 단일 객체:

final ad = await RewardedAd.create(
  adUnitId: 'your-ad-unit-id',
  onAdLoaded: () {
    /* 조치를 취하세요 */
  },
  onAdFailedToLoad: (error) {
      /* 조치를 취하세요 */
  },
);
await ad.load(adRequest: AdRequest());

SDK 6

여러 광고를 로드하기 위한 RewardedAdLoader:

late final Future<RewardedAdLoader> _adLoader =
      _createRewardedAdLoader();
RewardedAd? _ad;

Future<RewardedAdLoader> _createRewardedAdLoader() {
  return RewardedAdLoader.create(
    onAdLoaded: (RewardedAd rewardedAd) {
      // 광고가 성공적으로 로드되었습니다. 이제 로드된 광고를 표시할 수 있습니다
      _ad = rewardedAd;
    },
    onAdFailedToLoad: (error) {
      // AdRequestError로 광고를 로드하는 데 실패했습니다.
      // onAdFailedToLoad() 메서드에서 새 광고를 로드하려는 시도는 권장되지 않습니다.
    },
  );
}

Future<void> _loadRewardedAd() async {
  final adLoader = await _adLoader;
  await adLoader.loadAd(adRequestConfiguration: AdRequestConfiguration(adUnitId: 'your-ad-unit-id'));
}

광고 렌더링

SDK 5

광고를 표시하기 전에 로드되었는지 확인합니다.

RewardedAd? _ad;

Future<void> _showRewardedAd() async {
  final ad = _ad;
  if (ad != null && ad.isLoaded) {
    await ad.show();
    var reward = await ad.waitForDismiss();
  }
}

SDK 6

광고가 로드되었는지 확인할 필요가 없습니다. onAdLoaded() 콜백 메서드에서 광고를 반환하면 광고를 렌더링할 준비가 된 것입니다.

RewardedAd? _ad;

Future<void> _showRewardedAd() async {
  final ad = _ad;
  if (ad != null) {
    _setAdEventListener(ad);
    await ad.show();
    var reward = await ad.waitForDismiss();
  }
}

광고 수명주기 이벤트 구독

SDK 5

모든 이벤트는 단일 RewardedAd 객체로 도착합니다.

RewardedAd.create(
  onAdLoaded: () {},
  onAdFailedToLoad: (AdLoadError error) {},
  onAdShown: () {},
  onAdDismissed: () {},
  onRewarded: (Reward reward) {},
  onAdClicked: () {},
  onLeftApplication: () {},
  onReturnedToApplication: () {},
  onImpression: (String? impressionData) {},
);

SDK 6

광고 로딩 이벤트는 RewardedAdLoader 객체로 도착하고, 광고 렌더링 이벤트는 RewardedAdEventListener 객체로 도착합니다.

RewardedAdEventListener 객체는 rewardedAd.setAdEventListener 메서드를 사용하여 설정됩니다.

이벤트 이름을 통일했습니다. OnLeftApplicationOnReturnedToApplication 이벤트를 제거했습니다.

onAdFailedToShow 이벤트를 추가했습니다.

onImpression 이벤트 이름을 onAdImpression로 변경했습니다.

RewardedAdLoader.create(
  onAdLoaded: (RewardedAd rewardedAd) {},
  onAdFailedToLoad: (error) {},
);

void _setAdEventListener(RewardedAd ad) {
  ad.setAdEventListener(
      eventListener: RewardedAdEventListener(
          onAdShown: () {},
          onAdFailedToShow: (AdError error) {},
          onAdDismissed: () {},
          onAdClicked: () {},
          onAdImpression: (ImpressionData? data) {},
          onRewarded: (Reward reward) {}
      )
  );
}

전면 광고

광고 생성 및 로드 접근 방식이 변경되었습니다. 이제 광고를 로드하는 InterstitialAdLoader 로더 객체와 OnAdLoaded 광고 로드 이벤트에서 가져온 Interstitial광고 객체를 제공합니다.

광고 로드

SDK 5

광고 로드 및 렌더링을 위한 단일 객체:

final ad = await InterstitialAd.create(
  adUnitId: 'your-ad-unit-id',
  onAdLoaded: () {
    /* 조치를 취하세요 */
  },
  onAdFailedToLoad: (error) {
      /* 조치를 취하세요 */
  },
);
await ad.load(adRequest: AdRequest());

SDK 6

여러 광고를 로드하기 위한 InterstitialAdLoader.

late final Future<InterstitialAdLoader> _adLoader =
      _createInterstitialAdLoader();
InterstitialAd? _ad;

Future<InterstitialAdLoader> _createInterstitialAdLoader() {
  return InterstitialAdLoader.create(
    onAdLoaded: (InterstitialAd interstitialAd) {
      // 광고가 성공적으로 로드되었습니다. 이제 로드된 광고를 표시할 수 있습니다
      _ad = interstitialAd;
    },
    onAdFailedToLoad: (error) {
      // AdRequestError로 광고를 로드하는 데 실패했습니다.
      // onAdFailedToLoad() 메서드에서 새 광고를 로드하려는 시도는 권장되지 않습니다.
    },
  );
}

Future<void> _loadInterstitialAd() async {
  final adLoader = await _adLoader;
  await adLoader.loadAd(adRequestConfiguration: AdRequestConfiguration(adUnitId: 'your-ad-unit-id'));
}

광고 렌더링

SDK 5

광고를 표시하기 전에 로드되었는지 확인합니다.

InterstitialAd? _ad;

Future<void> _showInterstitialAd() async {
  final ad = _ad;
  if (ad != null && ad.isLoaded) {
    await ad.show();
    await ad.waitForDismiss();
  }
}

SDK 6

광고가 로드되었는지 확인할 필요가 없습니다. onAdLoaded() 콜백 메서드에서 광고를 반환하면 광고를 렌더링할 준비가 된 것입니다.

InterstitialAd? _ad;

Future<void> _showInterstitialAd() async {
  final ad = _ad;
  if (ad != null) {
    _setAdEventListener(ad);
    await ad.show();
    await ad.waitForDismiss();
  }
}

광고 수명주기 이벤트 구독

SDK 5

모든 이벤트는 단일 InterstitialAd 객체로 도착합니다.

InterstitialAd.create(
  onAdLoaded: () {},
  onAdFailedToLoad: (AdLoadError error) {},
  onAdShown: () {},
  onAdDismissed: () {},
  onAdClicked: () {},
  onLeftApplication: () {},
  onReturnedToApplication: () {},
  onImpression: (String? impressionData) {},
);

SDK 6

광고 로딩 이벤트는 InterstitialAdLoader 객체로 도착하고, 광고 렌더링 이벤트는 InterstitialAdEventListener 객체로 도착합니다.

InterstitialAdEventListener 객체는 interstitialAd.setAdEventListener 메서드를 사용하여 설정됩니다.

이벤트 이름을 통일했습니다. OnLeftApplicationOnReturnedToApplication 이벤트를 제거했습니다.

onAdFailedToShow 이벤트를 추가했습니다.

onImpression 이벤트 이름을 onAdImpression로 변경했습니다.

InterstitialAdLoader.create(
  onAdLoaded: (InterstitialAd interstitialAd) {},
  onAdFailedToLoad: (error) {},
);

void _setAdEventListener(InterstitialAd ad) {
  ad.setAdEventListener(
      eventListener: InterstitialAdEventListener(
          onAdShown: () {},
          onAdFailedToShow: (AdError error) {},
          onAdDismissed: () {},
          onAdClicked: () {},
          onAdImpression: (ImpressionData? data) {}
      )
  );
}

앱 실행 광고

새 광고 형식 추가됨: 앱 실행 광고. 자세한 내용은 앱 실행 광고를 참조하세요

통합에 대한 전체 예시를 여기서 확인하세요.

Yandex Mediation

Важно

사용한 Yandex Mediation 어댑터를 최신 버전으로 업데이트하세요. 이전 버전은 어댑터 통합 오류를 유발하여 광고가 제공되지 않을 수 있습니다.

com.yandex.ads.mediation:mobileads-admob 아티팩트의 이름을 com.yandex.ads.mediation:mobileads-google로 변경했습니다.

표준형 중재 빌드를 사용하는 경우 조치를 취할 필요가 없습니다. 어댑터를 개별적으로 추가하는 경우 프로젝트의 Gradle 종속성을 교체합니다.

SDK 5

implementation 'com.yandex.ads.mediation:mobileads-admob:<version>'

SDK 6

implementation 'com.yandex.ads.mediation:mobileads-google:<version>'

AdMobYandexMobileAdsAdapters어댑터의 이름을 GoogleYandexMobileAdsAdapters로 변경했습니다. 표준형 중재 빌드를 사용하는 경우 조치를 취할 필요가 없습니다. 어댑터를 개별적으로 추가하는 경우 프로젝트의 Podfile을 편집해야 합니다.

SDK 5

pod 'AdMobYandexMobileAdsAdapters'

SDK 6

pod 'GoogleYandexMobileAdsAdapters'