SDK 이전

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

v22에서 v23으로 이전

최소 Android API 수준은 21입니다.

버전 23.0.0부터 Google 모바일 광고 SDK를 사용하려면 모든 앱이 최소 Android API 수준 21 이상이어야 합니다. API 레벨을 조정하려면 앱 수준 build.gradle 파일의 minSdkVersion 값을 21 이상으로 설정해야 합니다.

슈퍼클래스에서 상속된 AdManagerAdRequest.Builder 메서드는 체이닝될 수 있음

버전 23.0.0의 경우 AdManagerAdRequest.Builder 상위 요소에서 상속된 메서드를 함께 연결하여 AdManagerAdRequest 다음과 같습니다.

자바

AdManagerAdRequest request = new AdManagerAdRequest.Builder()
    .addCustomTargeting("age", "25") // AdManagerAdRequest.Builder method.
    .setContentUrl("https://www.example.com") // Method inherited from parent.
    .build(); // Builds an AdManagerAdRequest.

Kotlin

var request = AdManagerAdRequest.Builder()
  .addCustomTargeting("age", "25") // AdManagerAdRequest.Builder method.
  .setContentUrl("https://www.example.com") // Method inherited from parent.
  .build() // Builds an AdManagerAdRequest.

지원 중단된 메서드 삭제/대체됨

v22.0.0 API v23.0.0 API
AdRequest.Builder.addTestDevice() RequestConfiguration.Builder.setTestDeviceIds()
AdRequest.Builder.tagForChildDirectedTreatment() RequestConfiguration.Builder.setTagForChildDirectedTreatment()
AdRequest.Builder.setIsDesignedForFamilies() RequestConfiguration.Builder.setMaxAdContentRating()
AdFormat.UNKNOWN 교체 기기 없음
AdLoader.Builder.forUnifiedNativeAd() AdLoader.Builder.forNativeAd()
AdLoader.Builder.forCustomTemplateAd() AdLoader.Builder.forCustomFormatAd()
AdLoader.Builder.withNativeAdOptions(com.google.android.gms.ads.formats.NativeAdOptions) AdLoader.Builder.withNativeAdOptions(com.google.android.gms.ads.nativead.NativeAdOptions)
void MobileAds.setSameAppKeyEnabled() boolean MobileAds.putPublisherFirstPartyIdEnabled()

v21에서 v22로 이전

MobileAds.getVersion()을 사용하여 Google 모바일 광고 SDK 버전 가져오기

버전 22.0.0에서 MobileAds.getVersionString() 메서드가 삭제되고 / MobileAds.getVersion()

새 메서드는 예상되는 외부 버전 번호를 반환합니다(예: 22.0.0 이 변경사항에 대한 자세한 내용은 새 Google 모바일 광고 SDK getVersion() 메서드).

지원 중단된 NativeCustomFormatAd.getVideoMediaView() 삭제

버전 21에서는 Google 모바일 광고 SDK가 NativeCustomFormatAd.getVideoMediaView() 메서드를 사용하여 네이티브 맞춤 광고 형식을 사용합니다.

버전 22부터 자체 MediaView를 만들고 미디어를 설정합니다. 새로운 콘텐츠를 MediaContent.getVideoController() 동영상 컨트롤을 가져옵니다.

v22

// Called when a custom native ad loads.
@Override
public void onCustomFormatAdLoaded(NativeCustomFormatAd ad) {
    // Assumes you have a FrameLayout in your view hierarchy with the id media_placeholder.
    FrameLayout mediaPlaceholder = (FrameLayout) findViewById(R.id.media_placeholder);

    MediaContent mediaContent = ad.getMediaContent();
    if (mediaContent != null && mediaContent.hasVideoContent()) {
        // Create a MediaView and set its media content.
        MediaView mediaView = new MediaView(mediaPlaceholder.getContext());
        mediaView.setMediaContent(mediaContent);
        mediaPlaceholder.addView(mediaView);
    }
}

v21

// Called when a custom native ad loads.
@Override
public void onCustomFormatAdLoaded(NativeCustomFormatAd ad) {
    // Assumes you have a FrameLayout in your view hierarchy with the id media_placeholder.
    FrameLayout mediaPlaceholder = (FrameLayout) findViewById(R.id.media_placeholder);

    VideoController videoController = ad.getVideoController();
    if (videoController.hasVideoContent()) {
        // Add the media view provided by the native ad.
        mediaPlaceholder.addView(ad.getVideoMediaView());
    }
}

자세한 내용은 맞춤 네이티브 광고 가이드를 참조하세요.

삭제 또는 대체된 메서드

아래 표에는 버전 22.0.0의 구체적인 변경사항이 나와 있습니다.

v21.0.0 v22.0.0
MobileAds.getVersionString() MobileAds.getVersion()
NativeCustomFormatAd.getVideoMediaView() NativeCustomFormatAd.getMediaContent()
NativeCustomFormatAd.getVideoController() NativeCustomFormatAd.getMediaContent().getVideoController()
AdRequest.Builder.setAdInfo() AdRequest.Builder.setAdString()
MediationRewardedVideoAdAdapter 어댑터
MediationRewardedVideoAdListener
com.google.android.gms.ads.mediation.VersionInfo com.google.android.gms.ads.VersionInfo
com.google.android.gms.ads.doubleclick.AppEventListener com.google.android.gms.ads.admanager.AppEventListener

v20에서 v21로 이전

minSdkVersion을 19 이상으로 업데이트

Google 모바일 광고 SDK 버전 21.0.0부터는 모든 앱이 최소 Android API 수준 19 이상이어야 합니다. API 레벨을 조정하려면 minSdkVersion 값을 19 이상으로 설정하세요.

엄격한 null 허용 여부 적용

엄격한 null 허용 여부를 적용하기 위해 @NonNull 주석은 가 추가되었습니다.

이 변경으로 인해 Kotlin 앱과 Java null 검사를 사용하는 앱이 중단될 수 있습니다. null 안전 위반이 있고 이전에 이를 처리하지 않은 경우 null 값을 안전하게 사용하는 방법 (자세한 내용은 Kotlin 문서 null 안전 ).

addNetworkExtras() 메서드 삭제

추가 매개변수를addNetworkExtras() 특정 광고 네트워크 어댑터에 대한 NetworkExtras 인스턴스가 SDK에서 지원 중단됨 버전 20.3.0에서 제거되며 버전 21.0.0에서 삭제될 예정입니다. 사용 addNetworkExtrasBundle() 드림 메서드를 사용하세요.AdRequest.Builder

위치 메서드 삭제

다음 위치 메서드는 버전 21.0.0에서 삭제됩니다.

  • AdRequest.Builder 클래스의 setLocation(Location location) 메서드 는 조정 타겟팅을 위해 사용자의 위치를 설정합니다.
  • 사용자의getLocation()AdRequest 이전에 setLocation(Location location) 메서드에 전달된 위치 타겟팅 정보입니다.
  • MediationAdConfiguration 클래스의 getLocation() 메서드 AdRequest로 정의된 경우 사용자의 위치를 반환합니다.

Google은 광고를 타겟팅할 때 위치 데이터를 사용하지 않습니다. 이때 제3자 API를 통해 제3자 광고 네트워크에 정보를 제공할 수도 있습니다. 필요합니다.

맞춤 이벤트 인터페이스 지원 중단

맞춤 이벤트를 사용하면 미디에이션을 사용하여 폭포식 구조 광고 소스를 Ad Manager님의 항목 중 하나 지원되는 광고 소스를 참고하세요.

모든 맞춤형 이벤트 인터페이스의 지원이 중단되며 Adapter 클래스 및 MediationAdLoadCallback 인터페이스에 추가되었습니다.

아래 표에는 사용해야 할 해당 클래스 또는 인터페이스가 나열되어 있습니다. 버전 21.0.0부터 각 맞춤 이벤트 인터페이스에 다음과 같이 적용됩니다.

v20.0.0 인터페이스 v21.0.0 클래스/ 인터페이스
CustomEvent 어댑터
CustomEventBanner
CustomEventInterstitial
CustomEventNative
CustomEventBannerListener 어댑터 MediationAdLoadCallback
CustomEventInterstitialListener
CustomEventListener
CustomEventNativeListener

v19에서 v20으로 이전

버전 20.0.0에는 많은 브레이킹 체인지가 있습니다. 버전 19.7.0이 도입됨 새 API를 많이 추가하고, 버전에 대비하여 많은 클래스의 지원을 중단하거나 이름을 바꿨습니다. 20.0.0. 이 가이드에서는 버전 20.0.0의 주요 변경사항을 중점적으로 설명합니다.

전체 화면 형식 API 업데이트

버전 20.0.0부터 전면 광고, 보상형 광고, 보상형 전면 광고 및 앱 오프닝 광고 형식은 일관된 API 디자인을 따르도록 표준화되어 있습니다.

모든 전체 화면 형식 API는 다음 원칙을 활용합니다.

  • 정적 로드 메서드
  • 유사한 로드 콜백 또는 핸들러 메커니즘
  • FullScreenContentCallback에 의존 프레젠테이션 콜백의 클래스

기존 RewardedVideoAd API 삭제

최신 RewardedAd 드림 API는 2019년 3월에 처음 도입되었으며 API를 사용할 수 있습니다. 기존에 비해 더 개선되었습니다. 2개 이상의 보상형 광고를 로드하는 기능을 포함한 RewardedVideoAd API 할 수 있습니다.

SDK 버전 20.0.0에서 기존 RewardedVideoAd API가 삭제되었습니다.

스마트 배너가 지원 중단되고 적응형 배너로 대체됨

스마트 배너 광고가 지원 중단됨 적응형 배너를 선호함 있습니다. 적응형 배너는 광고 너비를 설정합니다. 전체 너비 배너를 계속 사용하려면 다음 코드 스니펫에서와 같이 적응형 배너를 계속 사용해야 합니다.

자바

public class MyActivity extends AppCompatActivity {
  ...
  private AdSize getFullWidthAdaptiveSize() {
    Display display = getWindowManager().getDefaultDisplay();
    DisplayMetrics outMetrics = new DisplayMetrics();
    display.getMetrics(outMetrics);

    float widthPixels = outMetrics.widthPixels;
    float density = outMetrics.density;

    int adWidth = (int) (widthPixels / density);
    return AdSize.getCurrentOrientationAnchoredAdaptiveBannerAdSize(this, adWidth);
  }
}

Kotlin

class MyActivity : AppCompatActivity() {
  ...
  private val adaptiveAdSize: AdSize
    get() {
      val display = windowManager.defaultDisplay
      val outMetrics = DisplayMetrics()
      display.getMetrics(outMetrics)

      val density = outMetrics.density

      var adWidthPixels = ad_view_container.width.toFloat()
      if (adWidthPixels == 0f) {
        adWidthPixels = outMetrics.widthPixels.toFloat()
      }

      val adWidth = (adWidthPixels / density).toInt()
      return AdSize.getCurrentOrientationAnchoredAdaptiveBannerAdSize(this, adWidth)
    }
}

애플리케이션 나가기 콜백 삭제

모든 광고 형식의 onAdLeftApplication 콜백이 삭제되었습니다. / ProcessLifecycleOwner OS 수준 API를 사용하면 사용자가 앱을 떠날 때마다 광고 상호작용 때문인지 아닌지를 확인할 수 있습니다.

onAdLeftApplication 콜백은 광고를 목적으로 한 것이 아닙니다. 이 콜백을 사용하여 클릭을 보고해도 정확하게 측정할 수 있습니다 예를 들어 AdChoices 아이콘을 클릭하면 외부 브라우저가 콜백을 호출했지만 클릭으로 계산되지 않았습니다.

수업 이름 변경

아래 표에는 변경되었거나 삭제된 특정 클래스 이름이 나와 있습니다. 학습 내용을 요약하면 다음과 같습니다.

  • UnifiedNativeAd와 관련된 대부분의 클래스의 이름이 NativeAd로 변경되었습니다.
  • MobileAds.Settings, NativeExpressAdView, NativeAppInstallAd NativeContentAdInstreamAd 클래스와 뷰를 삭제했습니다.
  • Publisher 접두사가 있는 모든 클래스가 AdManager 프리픽스입니다.
  • InterstitialAd 패키지 이름이 변경되었습니다.
19.5.0 클래스 20.0.0 클래스
com.google.android.gms.ads. com.google.android.gms.ads.
reward.RewardedVideoAd rewarded.RewardedAd
reward.RewardedVideoAdListener remember.RewardedAdLoadCallback 및 FullScreenContentCallback
reward.RewardItem rewarded.RewardItem
rewarded.RewardedAdCallback OnUserEarnedRewardListener
formats.UnifiedNativeAdView nativead.NativeAdView
formats.UnifiedNativeAd nativead.NativeAd
formats.UnifiedNativeAdAssetNames nativead.NativeAdAssetNames
formats.UnifiedNativeAd.OnUnifiedNativeAdLoadedListener nativead.NativeAd.OnNativeAdLoadedListener
formats.AdChoicesView nativead.AdChoicesView
formats.NativeAd.AdChoicesInfo nativead.NativeAd.AdChoicesInfo
formats.MediaView nativead.MediaView
formats.NativeAdViewHolder nativead.NativeAdViewHolder
formats.NativeAdOptions nativead.NativeAdOptions
formats.NativeCustomTemplateAd nativead.NativeCustomFormatAd
formats.NativeCustomTemplateAd.OnCustomTemplateAdLoadedListener nativead.NativeCustomFormatAd.OnCustomFormatAdLoadedListener
MobileAds.Settings 삭제됨
doubleclick.PublisherAdRequest admanager.AdManagerAdRequest
doubleclick.PublisherAdView admanager.AdManagerAdView
formats.PublisherAdViewOptions formats.AdManagerAdViewOptions
doubleclick.PublisherInterstitialAd admanager.AdManagerInterstitialAd
InterstitialAd interstitial.InterstitialAd
NativeExpressAdView 삭제됨
instream.InstreamAd 삭제됨
mediation.admob.AdMobExtras 삭제됨
Correlator 삭제됨
search.SearchAdRequest 삭제됨
인터페이스 AdRequest.TagForunderAgeOfConsent 삭제됨
인터페이스 AdRequest.MaxAdContentRating 삭제됨
formats.NativeAppInstallAd native.NativeAd
formats.NativeAppInstallAdView native.NativeAdView
mediation.NativeAppInstallAdMapper mediation.UnifiedNativeAdMapper
formats.NativeContentAd native.NativeAd
formats.NativeContentAdView native.NativeAdView
mediation.NativeContentAdMapper mediation.UnifiedNativeAdMapper

삭제/대체된 메서드

아래 표에는 버전 20.0.0의 구체적인 변경사항이 나와 있습니다. 요약:

  • MobileAds 클래스에서 오래된 초기화 메서드가 삭제되었습니다.
  • AdRequest.Builder() 클래스의 일부 메서드가 삭제되었거나 또는 RequestConfiguration 클래스로 이동했습니다.
  • RewardedAd 및 전면Ad API가 전체 화면 형식을 지원합니다.
  • Correlator 기능이 삭제되었습니다.
클래스 v19.5.0 API v20.0.0 API 참고
AdSize getPortraitBannerAdSizeWithWidth() getPortraitAnchoredAdaptiveBannerAdSize()
getLandscapeBannerAdSizeWithWidth() getLandscapeAnchoredAdaptiveBannerAdSize()
getCurrentOrientationBannerAdSizeWithWidth() getCurrentOrientationAnchoredAdaptiveBannerAdSize()
MobileAds init(컨텍스트, 문자열) MobileAds.initial(Context, OnInitializationCompleteListener) 이제 AndroidManifest.xml에 앱 ID가 설정됩니다.
initial(Context, String, MobileAds.Settings) Initialize(Context, OnInitializationCompleteListener) Settings 클래스가 지원 중단되었습니다.
getRewardedVideoAdInstance() 삭제됨 대신 RewardedAd API를 사용하세요.
AdListener onAdFailedToLoad(int) onAdFailedToLoad(LoadAdError)
onAdLeftApplication() 삭제됨 전체 화면 광고 형식은 FullscreenContentCallback에는 동등한 메서드가 없습니다. 이 메서드가 AdListener에서 삭제되었습니다.
VideoController getAspectRatio() MediaContent.getAspectRatio()
PublisherAdRequest getGender() 삭제됨
getBirthday() 삭제됨
getNetworkExtras() 삭제됨
setManualImpressionsEnabled() 삭제됨
updateCorrelator() 삭제됨 자세한 내용은 광고 콘텐츠 필터링.
PublisherAdRequest.Builder setBirthday() 삭제됨
setGender() 삭제됨
setIsDesignedForFamilies() 삭제됨 가이드를 참고하세요.
addTestDevice() RequestConfiguration.Builder.setTestDeviceIds() 테스트 광고 사용 설정을 참고하세요.
tagForChildDirectedTreatment() RequestConfiguration.Builder.setTagForChildDirectedTreatment() 자세한 내용은 광고 콘텐츠 필터링.
setTagForUnderAgeOfConsent() RequestConfiguration.Builder.setTagForUnderAgeOfConsent()
setMaxAdContentRating() RequestConfiguration.Builder.setMaxAdContentRating()
AdView getMediationAdapterClassName() ResponseInfo.getMediationAdapterClassName() 이제 AdView 메서드 getResponseInfo()를 통해 ResponseInfo 객체를 사용할 수 있습니다.
NativeAdOptions setImageOrientation() setMediaAspectRatio()
getImageOrientation getMediaAspectRatio()
RewardedAd loadAd(AdRequest, RewardedAdLoadCallback) RewardedAd.load(Context, String, AdRequest, RewardedAdLoadCallback) 이제 RewardedAd는 다른 SDK와 동일한 정적 로드 방식을 사용합니다. 전체 화면 형식을 지원합니다.
loadAd(PublisherAdRequest, RewardedAdLoadCallback) RewardedAd.load(Context, String, AdManagerAdRequest, RewardedAdLoadCallback)
isLoaded() 삭제됨 정적 로드 메서드의 콜백은 이미 로드된 광고를 제공합니다.
show(Activity, RewardedAdCallback) show(Activity, OnUserEarnedRewardListener) 이 show 메서드는 더 넓은 전체 화면 형식 접근 방식을 준수합니다.
RewardedAdLoadCallback onRewardedAdFailedToLoad(int) onAdFailedToLoad(LoadAdError)
onRewardedAdFailedToLoad(LoadAdError) onAdFailedToLoad(LoadAdError)
onRewardedAdLoaded() onAdLoaded(RewardedAd)
AppOpenAdLoadCallback onAppOpenAdFailedToLoad(int) onAdFailedToLoad(LoadAdError)
onAppOpenAdFailedToLoad(LoadAdError) onAdFailedToLoad(LoadAdError)
onAppOpenAdLoaded(AppOpenAd) onAdLoaded(AppOpenAd)
RewardedInterstitialAdLoadCallback onRewardedInterstitialAdFailedToLoad(int) onAdFailedToLoad(LoadAdError)
onRewardedInterstitialAdFailedToLoad(LoadAdError) onAdFailedToLoad(LoadAdError)
onRewardedInterstitialAdLoaded(RewardedInterstitialAd) onAdLoaded(RewardedInterstitialAd)
PublisherInterstitialAd new PublisherInterstitialAd() 전면 광고.로드(컨텍스트, 문자열, AdRequest, 전면 광고 로드콜) 이제 InterstitialAd는 기타 전체 화면 형식을 지원합니다.
setAdListener()
DynamicHeightSearchAdRequest getNetworkExtras() 삭제됨 NetworkExtras 클래스가 지원 중단되었습니다.
AdLoader forContentAd() 삭제됨
forAppInstallAd() 삭제됨
withCorrelator() 삭제됨
getMediationAdapterClassName() 삭제됨