Ta strona zawiera informacje na temat migracji obecnej i poprzednich wersji.
Migracja z wersji 22 do wersji 23
Minimalny poziom interfejsu API Androida to 21.
Począwszy od wersji 23.0.0 pakiet SDK do reklam mobilnych Google wymaga, aby wszystkie aplikacje
musi działać z interfejsem Android API na poziomie 21. Aby dostosować poziom interfejsu API, zmień wartość
wartość minSdkVersion
w pliku build.gradle
na poziomie aplikacji na 21 lub wyższą.
Wycofane metody zostały usunięte/zastąpione
Interfejs API w wersji 22.0.0 | Interfejs API w wersji 23.0.0 |
---|---|
AdRequest.Builder.addTestDevice() | RequestConfiguration.Builder.setTestDeviceIds() |
AdRequest.Builder.tagForChildDirectedTreatment() | RequestConfiguration.Builder.setTagForChildDirectedTreatment() |
AdRequest.Builder.setIsDesignedForFamilies() | RequestConfiguration.Builder.setMaxAdContentRating() |
AdFormat.UNKNOWN | Brak zamiennika |
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() |
Migracja z wersji 21 do wersji 22
Użyj funkcji MobileAds.getVersion(), aby uzyskać wersję pakietu SDK do reklam mobilnych Google
Metoda MobileAds.getVersionString()
została usunięta w wersji 22.0.0 na rzecz
z
MobileAds.getVersion()
Nowa metoda zwraca oczekiwany numer wersji zewnętrznej – na przykład
22.0.0
Więcej informacji na temat tej zmiany znajdziesz w artykule Korzystanie z nowej wersji Google Mobile
Pakiet SDK do wyświetlania reklam getVersion()
.
Usunięte lub zastąpione metody
W tabeli poniżej znajdziesz listę konkretnych zmian wprowadzonych w wersji 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 | Ładowarka |
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 |
Migracja z wersji 20 do wersji 21
Zaktualizuj parametr minSdkVersion do wersji 19 lub nowszej
Od wersji 21.0.0 pakiet SDK do reklam mobilnych Google wymaga, aby wszystkie aplikacje
interfejsu API Androida na poziomie 19 lub wyższym. Aby dostosować poziom interfejsu API, zmień wartość
wartość minSdkVersion
w pliku kompilacji aplikacji na co najmniej 19.
Egzekwuj ścisłą dopuszczalność wartości null
W ramach przygotowań do egzekwowania ścisłej dopuszczalności wartości null adnotacje @NonNull
są
we wszystkich interfejsach API, które nie miały jawnie zdefiniowanej dopuszczalności wartości null.
Ta zmiana może zakłócić działanie aplikacji i aplikacji Kotlin, które używają sprawdzania null w języku Java
platformy w przypadku wystąpienia zerowych naruszeń bezpieczeństwa, które nie były wcześniej obsługiwane
null
w bezpieczny sposób (zapoznaj się z dokumentacją Kotlin w sekcji
Niski poziom bezpieczeństwa
).
Usunięto metodę addNetworkExtras()
Metoda addNetworkExtras()
, która przekazuje dodatkowe parametry jako
Wystąpienie NetworkExtras
z konkretnym adapterem sieci reklamowej zostało wycofane z pakietu SDK
20.3.0, a zostaną usunięte w wersji 21.0.0. Użyj
addNetworkExtrasBundle()
z tej samej klasy AdRequest.Builder
.
Usuwanie metod lokalizacji
Te metody lokalizacji zostaną usunięte w wersji 21.0.0:
- Metoda
setLocation(Location location)
w klasieAdRequest.Builder
, która ustawia lokalizację użytkownika na potrzeby kierowania zapośredniczenia. - Metoda
getLocation()
w klasieAdRequest
, która zwraca zapytanie użytkownika informacje o kierowaniu na lokalizację przekazywane wcześniej do metodysetLocation(Location location)
. - Metoda
getLocation()
w klasieMediationAdConfiguration
, która zwraca lokalizację użytkownika, jeśli została zdefiniowana wAdRequest
.
Google nie używa danych o lokalizacji do kierowania reklam. Należy użyć interfejsów API innych firm do przekazywania danych zewnętrznym sieciom reklamowym, jeśli
Wycofanie interfejsów zdarzeń niestandardowych
Zdarzenia niestandardowe umożliwiają wydawcom korzystanie z Zapośredniczenie AdMob aby skonfigurować kaskadowe źródło reklam, które nie jest jeden z AdMob obsługiwanych źródeł reklam.
Wszystkie niestandardowe
Zdarzenie
interfejs został wycofany i zastąpiony
Adapter
.
klasa i
MediationAdLoadCallback
za pomocą prostego interfejsu online.
Tabela poniżej zawiera odpowiednią klasę lub interfejs, których należy użyć dla każdego interfejsu zdarzeń niestandardowych od wersji 21.0.0:
Interfejsy v20.0.0 | Klasa/ interfejs w wersji 21.0.0 |
---|---|
CustomEvent | Ładowarka |
CustomEventBanner | |
CustomEventInterstitial | |
CustomEventNative | |
CustomEventBannerListener |
Adapter,
|
CustomEventInterstitialListener | |
CustomEventListener | |
CustomEventNativeListener |
Migracja z wersji 19 do wersji 20
W wersji 20.0.0 wprowadziliśmy wiele zmian powodujących niezgodność. Wprowadzono wersję 19.7.0 wiele nowych interfejsów API, a w ramach przygotowań do wersji wycofaliśmy wiele klas lub zmieniono ich nazwy 20.0.0. W tym przewodniku opisujemy główne zmiany wprowadzone w wersji 20.0.0.
Aktualizacje interfejsu API formatu pełnoekranowego
Od wersji 20.0.0: reklamy pełnoekranowe, reklamy z nagrodą, reklamy pełnoekranowe z nagrodą Formaty reklam wyświetlanych przy otwarciu aplikacji zostały ustandaryzowane tak, aby były zgodne ze spójną konstrukcją interfejsu API.
Wszystkie interfejsy API w formacie pełnoekranowym opierają się na tych zasadach:
- Metoda wczytywania statycznego
- podobny mechanizm wywołania ładowania lub mechanizm obsługi;
- Poleganie na
FullScreenContentCallback
klasa wywołań zwrotnych prezentacji
Usunięcie starszej wersji interfejsu Nagrody VideoAd API
Nowsza
RewardedAd
Interfejs API został po raz pierwszy wprowadzony w marcu 2019 r. i jest preferowanym interfejsem reklam z nagrodami.
API od ponad 18 miesięcy. Zawierał więcej ulepszeń w porównaniu do starszej wersji.
Interfejs API RewardedVideoAd
, w tym możliwość wczytania więcej niż 1 reklamy z nagrodą
za jednym razem.
Starsza wersja interfejsu API RewardedVideoAd
została usunięta z pakietu SDK w wersji 20.0.0.
Wycofanie banerów inteligentnych i zastąpienie banerem adaptacyjnym
Banery inteligentne zostały wycofane za baner adaptacyjny. reklam. Banery adaptacyjne zapewniają wysoką skuteczność i elastyczność ustawianie szerokości reklamy. Jeśli nadal chcesz używać banerów o pełnej szerokości, jak widać w tym fragmencie kodu:
Java
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) } }
Opuść usuwanie wywołania zwrotnego aplikacji
Wywołanie zwrotne onAdLeftApplication
dla wszystkich formatów reklam zostało usunięte na rzecz
z
ProcessLifecycleOwner
Używanie interfejsu API na poziomie systemu operacyjnego powiadomi Cię za każdym razem, gdy użytkownik opuści aplikację, niezależnie od tego
niezależnie od tego, czy wynika ono z interakcji z reklamą.
Pamiętaj, że wywołanie zwrotne onAdLeftApplication
nigdy nie było reklamą
modułu obsługi kliknięć, a użycie tego wywołania zwrotnego do raportowania kliknięć nie przyniosło
dokładne dane. Na przykład kliknięcie ikony Informacja, które spowodowało uruchomienie reklamy
zewnętrzna przeglądarka wywołała wywołanie zwrotne, ale nie liczy się jako kliknięcie.
Zmiana nazw zajęć
W tabeli poniżej znajdziesz nazwy konkretnych klas, które zostały zmienione lub usunięte. W podsumowanie:
- Większość zajęć związanych z
UnifiedNativeAd
została zmieniona naNativeAd
. MobileAds.Settings
,NativeExpressAdView
,NativeAppInstallAd
, Zajęcia i widoki zostały usunięte:NativeContentAd
orazInstreamAd
.- Wszystkie zajęcia z prefiksem
Publisher
zostały zastąpioneAdManager
. - Nazwa pakietu
InterstitialAd
uległa zmianie.
19.5.0 Klasa | Klasa 20.0.0 |
---|---|
com.google.android.gms.ads. | com.google.android.gms.ads. |
reward.RewardedVideoAd | rewarded.RewardedAd |
reward.RewardedVideoAdListener | z nagrodą.NagrodaAdLoadCallback i 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 | Usunięta |
doubleclick.PublisherAdRequest | admanager.AdManagerAdRequest |
doubleclick.PublisherAdView | admanager.AdManagerAdView |
formats.PublisherAdViewOptions | formats.AdManagerAdViewOptions |
doubleclick.PublisherInterstitialAd | admanager.AdManagerInterstitialAd |
InterstitialAd | interstitial.InterstitialAd |
NativeExpressAdView | Usunięta |
instream.InstreamAd | Usunięta |
mediation.admob.AdMobExtras | Usunięta |
Correlator | Usunięta |
search.SearchAdRequest | Usunięta |
Interfejs AdRequest.TagForUnderAgeOfConsent | Usunięta |
Interfejs AdRequest.MaxAdContentRating | Usunięta |
formats.NativeAppInstallAd | native.NativeAd |
formats.NativeAppInstallAdView | native.NativeAdView |
mediation.NativeAppInstallAdMapper | mediation.UnifiedNativeAdMapper |
formats.NativeContentAd | native.NativeAd |
formats.NativeContentAdView | native.NativeAdView |
mediation.NativeContentAdMapper | mediation.UnifiedNativeAdMapper |
Metody usunięte/zastąpione
W tabeli poniżej znajdziesz listę konkretnych zmian wprowadzonych w wersji 20.0.0. W skrócie:
- Nieaktualne metody inicjowania zostały usunięte z klasy MobileAds.
- Niektóre metody z klasy
AdRequest.Builder()
zostały usunięte lub przeszedł do zajęćRequestConfiguration
. - Interfejsy API reklam z nagrodą i pełnoekranowych reklam zostały zaktualizowane, aby zapewnić zgodność ze wszystkimi w formatach pełnoekranowych.
- Funkcje korelatora zostały usunięte.
Klasa | Interfejs API w wersji 19.5.0 | Interfejs API w wersji 20.0.0 | Uwagi |
---|---|---|---|
AdSize | getPortraitBanner |
getPortraitAnchored |
|
getLandscapeBanner |
getLandscapeAnchored |
||
getCurrentOrientation |
getCurrentOrientationAnchored |
||
MobileAds | inicjuj(kontekst, ciąg) | MobileAds.initialize(Context, OnInitializationComplete |
Identyfikator aplikacji jest teraz ustawiony w pliku AndroidManifest.xml. |
inicjuj(Kontekst, Ciąg, Reklamy mobilne.Ustawienia) | inicjuj(Context, OnInitializationComplete |
Klasa ustawień została wycofana. | |
getRewardedVideo |
Usunięta | Zamiast tego użyj interfejsu API z nagrodą. | |
AdListener | onAdFailedToLoad(int) | onAd |
|
onAdLeftApplication() | Usunięta | Formaty reklam pełnoekranowych używają funkcji FullscreenContentCallback zamiast AdListener i nie ma odpowiedniej metody dla funkcji FullscreenContentCallback. Usunięto metodę AdListener. | |
VideoController | getAspectRatio() | MediaContent.getAspectRatio() | |
AdRequest | getGender() | Usunięta | |
getBirthday() | Usunięta | ||
getNetworkExtras() | Usunięta | ||
setManualImpressions |
Usunięta | ||
updateCorrelator() | Usunięta | Zobacz Filtrowanie treści reklamy. | |
AdRequest.Builder | setBirthday() | Usunięta | |
setGender() | Usunięta | ||
setIsDesignedForFamilies() | Usunięta | Zobacz przewodnik. | |
addTestDevice() | RequestConfiguration |
Przeczytaj artykuł Włączanie reklam testowych. | |
tagForChildDirectedTreatment() | RequestConfiguration |
Zobacz Filtrowanie treści reklamy. | |
setTagFor |
RequestConfiguration |
||
setMaxAdContentRating() | RequestConfiguration |
||
AdView | getMediationAdapter |
ResponseInfo |
Obiekt ResponseInfo jest teraz dostępny przez metodę AdView getResponseInfo(). |
NativeAdOptions | setImageOrientation() | setMediaAspectRatio() | |
getImageOrientation | getMediaAspectRatio() | ||
RewardedAd | loadAd(AdRequest, NagrodaAdLoadCallback) | YieldAd.load(Kontekst, Ciąg, AdRequest, NagrodaAdLoadCallback) | Reklamy z nagrodą wykorzystują teraz tę samą strategię wczytywania statycznego co inne reklamy w formatach pełnoekranowych. |
loadAd(PublisherAdRequest, NagrodaAdLoadCallback) | YieldAd.load(Kontekst, Ciąg, AdManagerAdRequest, NagrodaAdLoadCallback) | ||
isLoaded() | Usunięta | Wywołanie zwrotne z metody wczytywania statycznego dostarcza już załadowaną reklamę. | |
show(Activity, RewardedAdCallback) | show(Activity, OnUserRevenueed RewardsListener) | Ta metoda wyświetlania jest zgodna z szerszym podejściem do formatu pełnoekranowego. | |
RewardedAdLoadCallback | onRewardedAd |
onAd |
|
onRewardedAd |
onAd |
||
onRewardedAdLoaded() | onAdLoaded(RewardedAd) | ||
AppOpenAdLoadCallback | onAppOpenAd |
onAd |
|
onAppOpenAd |
onAd |
||
onAppOpenAd |
onAdLoaded(AppOpenAd) | ||
RewardedInterstitialAdLoad |
onRewardedInterstitialAd |
onAd |
|
onRewardedInterstitialAd |
onAd |
||
onRewardedInterstitialAd |
onAd |
||
InterstitialAd | new InterstitialAd() | fullAd.load(Context, String, AdRequest, pełnoekranowyAdLoadCallback) | W przypadku reklamy pełnoekranowej reklamy pełnoekranowe korzystają teraz z tej samej metody wczytywania statycznego, innych formatów pełnoekranowych. |
setAdListener() | |||
DynamicHeightSearchAd |
getNetworkExtras() | Usunięta | Klasa NetworkExtras została wycofana. |
AdLoader | forContentAd() | Usunięta | |
forAppInstallAd() | Usunięta | ||
withCorrelator() | Usunięta | ||
getMediationAdapter |
Usunięta |