sdk20是Android,为 SDK v20 做准备

本文概述了广告库20.0.0版本的重大更新,包括移除旧API、标准化全屏广告格式、弃用智能横幅转自适应横幅,以及RewardedAd API的优化。关键改动如AdListener的移除和类名重构,有助于开发者更好地适应新版本并提升广告体验。
摘要由CSDN通过智能技术生成

我们即将在版本 20.0.0 中进行多项重要更改。为做好准备迎接版本 20.0.0,版本 19.7.0 中引入了许多新的 API,并弃用或重命名了许多类。本指南重点介绍了对版本 19.7.0 做出的重大更改,以及即将在版本 20.0.0(2021 年初)中推出的新功能。

关于全屏广告格式 API 的更新

从版本 20.0.0 开始,对插页式广告、激励广告、插页式激励广告和开屏广告格式进行了标准化处理,以采用一致的 API 设计。

所有全屏广告格式 API 均遵循以下设计原则:

静态加载方法

类似的加载回调函数或处理程序机制

移除旧版 RewardedVideoAd API

较新版本的 RewardedAd API 于 2019 年 3 月首次推出,在之后超过 18 个月的时间里一直是首选激励广告 API。与旧版 RewardedVideoAd API 相比,新版 API 添加了多项改进,其中包括一次加载多个激励广告的功能。

SDK 版本 20.0.0 中移除了旧版 RewardedVideoAd API。

弃用智能横幅广告,改用自适应横幅广告

弃用了智能横幅广告,现在使用的是自适应横幅广告。自适应横幅广告的效果更好,可以让您更灵活地设置广告宽度。如果您希望继续使用全宽横幅广告,仍然可以通过自适应横幅广告实现,如以下代码段所示:

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)

}

}

移除退出应用回调函数

移除了所有广告格式的 onAdLeftApplication 回调函数,改为使用 ProcessLifecycleOwner。如果使用操作系统级 API,无论用户是否因广告互动而打开您的应用,只要他们退出应用,您都会收到通知。

请注意,千万不要将 onAdLeftApplication 回调函数用作广告点击处理程序,如果依赖此类回调函数来报告点击,将无法生成准确的指标。例如,用户点击“广告选择”图标时会启动外部浏览器,这时系统会调用该回调函数,但不会将其计为一次点击。

重命名类

下表列出了已更改或移除的具体类名称。总结如下:

与 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

rewarded.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

已移除

Interface AdRequest.TagForUnderAgeOfConsent

已移除

Interface 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 和 InterstitialAd API,以与所有全屏广告格式保持一致。

移除了 Correlator 功能。

v19.5.0 中的 API

v20.0.0 中的 API

备注

AdSize

getPortraitBannerAdSizeWithWidth()

getPortraitAnchoredAdaptiveBannerAdSize()

getLandscapeBannerAdSizeWithWidth()

getLandscapeAnchoredAdaptiveBannerAdSize()

getCurrentOrientationBannerAdSizeWithWidth()

getCurrentOrientationAnchoredAdaptiveBannerAdSize()

MobileAds

initialize(Context, String)

MobileAds.initialize(Context, OnInitializationCompleteListener)

现在,在 AndroidManifest.xml 中设置应用 ID。

initialize(Context, String, MobileAds.Settings)

initialize(Context, OnInitializationCompleteListener)

Settings 类已弃用。

getRewardedVideoAdInstance()

已移除

改用 RewardedAd API。

AdListener

onAdFailedToLoad(int)

onAdFailedToLoad(LoadAdError)

onAdLeftApplication()

已移除

全屏广告格式使用 FullscreenContentCallback 代替 AdListener,而且 FullscreenContentCallback 中没有对应的方法。该方法已从 AdListener 移除。

VideoController

getAspectRatio()

MediaContent.getAspectRatio()

AdRequest

getGender()

已移除

getBirthday()

已移除

getNetworkExtras()

已移除

setManualImpressionsEnabled()

已移除

updateCorrelator()

已移除

AdRequest.Builder

setBirthday()

已移除

setGender()

已移除

setIsDesignedForFamilies()

已移除

请参阅指南。

addTestDevice()

RequestConfiguration.Builder.setTestDeviceIds()

tagForChildDirectedTreatment()

RequestConfiguration.Builder.setTagForChildDirectedTreatment()

setTagForUnderAgeOfConsent()

RequestConfiguration.Builder.setTagForUnderAgeOfConsent()

setMaxAdContentRating()

RequestConfiguration.Builder.setMaxAdContentRating()

AdView

getMediationAdapterClassName()

ResponseInfo.getMediationAdapterClassName()

现在,ResponseInfo 对象通过 AdView 方法 getResponseInfo() 提供。

NativeAdOptions

setImageOrientation()

setMediaAspectRatio()

getImageOrientation

getMediaAspectRatio()

RewardedAd

loadAd(AdRequest, RewardedAdLoadCallback)

RewardedAd.load(Context, String, AdRequest, RewardedAdLoadCallback)

现在,RewardedAd 与其他全屏广告格式使用相同的静态加载方法。

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)

InterstitialAd

新 InterstitialAd()

InterstitialAd.load(Context, String, AdRequest, InterstitialAdLoadCallback)

现在,InterstitialAd 与其他全屏广告格式使用相同的静态加载方法。

setAdListener()

DynamicHeightSearchAdRequest

getNetworkExtras()

已移除

NetworkExtras 类已弃用。

AdLoader

forContentAd()

已移除

forAppInstallAd()

已移除

withCorrelator()

已移除

getMediationAdapterClassName()

已移除

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值