이 페이지에서는 현재 및 이전 버전의 이전에 대해 설명합니다.
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부터 각 맞춤 이벤트 인터페이스에 다음과 같이 적용됩니다.
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
NativeContentAd
및InstreamAd
클래스와 뷰를 삭제했습니다.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 |
nativead.NativeCustomFormatAd |
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 | getPortraitBanner |
getPortraitAnchored |
|
getLandscapeBanner |
getLandscapeAnchored |
||
getCurrentOrientation |
getCurrentOrientationAnchored |
||
MobileAds | init(컨텍스트, 문자열) | MobileAds.initial(Context, OnInitializationComplete |
이제 AndroidManifest.xml에 앱 ID가 설정됩니다. |
initial(Context, String, MobileAds.Settings) | 초기화(Context, OnInitializationComplete |
Settings 클래스가 지원 중단되었습니다. | |
getRewardedVideo |
삭제됨 | 대신 RewardedAd API를 사용하세요. | |
AdListener | onAdFailedToLoad(int) | onAd |
|
onAdLeftApplication() | 삭제됨 | 전체 화면 광고 형식은 FullscreenContentCallback에는 동등한 메서드가 없습니다. 이 메서드가 AdListener에서 삭제되었습니다. | |
VideoController | getAspectRatio() | MediaContent.getAspectRatio() | |
PublisherAdRequest | getGender() | 삭제됨 | |
getBirthday() | 삭제됨 | ||
getNetworkExtras() | 삭제됨 | ||
setManualImpressions |
삭제됨 | ||
updateCorrelator() | 삭제됨 | 자세한 내용은 광고 콘텐츠 필터링. | |
PublisherAdRequest.Builder | setBirthday() | 삭제됨 | |
setGender() | 삭제됨 | ||
setIsDesignedForFamilies() | 삭제됨 | 가이드를 참고하세요. | |
addTestDevice() | RequestConfiguration |
테스트 광고 사용 설정을 참고하세요. | |
tagForChildDirectedTreatment() | RequestConfiguration |
자세한 내용은 광고 콘텐츠 필터링. | |
setTagFor |
RequestConfiguration |
||
setMaxAdContentRating() | RequestConfiguration |
||
AdView | getMediationAdapter |
ResponseInfo |
이제 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 | onRewardedAd |
onAd |
|
onRewardedAd |
onAd |
||
onRewardedAdLoaded() | onAdLoaded(RewardedAd) | ||
AppOpenAdLoadCallback | onAppOpenAd |
onAd |
|
onAppOpenAd |
onAd |
||
onAppOpenAd |
onAdLoaded(AppOpenAd) | ||
RewardedInterstitialAdLoad |
onRewardedInterstitialAd |
onAd |
|
onRewardedInterstitialAd |
onAd |
||
onRewardedInterstitialAd |
onAd |
||
PublisherInterstitialAd | new PublisherInterstitialAd() | 전면 광고.로드(컨텍스트, 문자열, AdRequest, 전면 광고 로드콜) | 이제 InterstitialAd는 기타 전체 화면 형식을 지원합니다. |
setAdListener() | |||
DynamicHeightSearchAd |
getNetworkExtras() | 삭제됨 | NetworkExtras 클래스가 지원 중단되었습니다. |
AdLoader | forContentAd() | 삭제됨 | |
forAppInstallAd() | 삭제됨 | ||
withCorrelator() | 삭제됨 | ||
getMediationAdapter |
삭제됨 |