Migration guide to version 8.0.0 (beta)
The new version of Yandex Mobile Ads SDK introduces a number of API changes aimed at improving the developer experience.
Main changes
1. Changes to AdRequest
The AdRequestConfiguration and NativeAdRequestConfiguration classes have been removed. Use AdRequest for all ad types.
| Class |
Status |
AdRequestConfiguration |
Removed. Use AdRequest |
NativeAdRequestConfiguration |
Removed. Use AdRequest and NativeAdOptions |
Examples
Kotlin
| SDK 7 | SDK 8 |
val loader = InterstitialAdLoader(this)
val config = AdRequestConfiguration.Builder("R-M-XXXXX-YY").build()
loader.loadAd(config)
val bannerView = findViewById(R.id.view_banner)
bannerView.setAdUnitId("R-M-XXXXX-YY")
val request = AdRequest.Builder().build()
bannerView.loadAd(request)
|
val loader = InterstitialAdLoader(this)
val request = AdRequest.Builder("R-M-XXXXX-YY").build()
loader.loadAd(adRequest, listener)
val bannerView = findViewById(R.id.view_banner)
val request = AdRequest.Builder("R-M-XXXXX-YY").build()
bannerView.loadAd(request)
|
Java
| SDK 7 | SDK 8 |
void loadAd() {
InterstitialAdLoader loader = new InterstitialAdLoader(this);
AdRequestConfiguration config = new AdRequestConfiguration.Builder("R-M-XXXXX-YY")
.build();
loader.loadAd(config);
BannerAdView bannerView = findViewById(R.id.view_banner);
bannerView.setAdUnitId("R-M-XXXXX-YY");
AdRequest request = AdRequest.Builder().build();
bannerView.loadAd(request);
}
|
void loadAd() {
InterstitialAdLoader loader = new InterstitialAdLoader(this);
AdRequest request = new AdRequest.Builder("R-M-XXXXX-YY")
.build();
loader.loadAd(request, listener);
BannerAdView bannerView = findViewById(R.id.view_banner);
AdRequest request = AdRequest.Builder("R-M-XXXXX-YY").build();
bannerView.loadAd(request);
}
|
2. Changes to Targeting API
The age, gender, location, contextQuery, and contextTags fields have been removed from AdRequest.Builder. Use the new AdTargeting class to manage targeting parameters:
| Class |
Method |
Status |
AdRequest.Builder |
setAge(String) |
Removed, use
AdTargeting.Builder.setAge(String) and
AdRequest.Builder.setTargeting(AdTargeting) |
AdRequest.Builder |
setGender(String) |
Removed, use
AdTargeting.Builder.setGender(String) and
AdRequest.Builder.setTargeting(AdTargeting) |
AdRequest.Builder |
setLocation(Location) |
Removed, use
AdTargeting.Builder.setLocation(Location) and
AdRequest.Builder.setTargeting(AdTargeting) |
AdRequest.Builder |
setContextQuery(String) |
Removed, use
AdTargeting.Builder.setContextQuery(String) and
AdRequest.Builder.setTargeting(AdTargeting) |
AdRequest.Builder |
setContextTags(List<String>) |
Removed, use
AdTargeting.Builder.setContextTags(List<String>) and
AdRequest.Builder.setTargeting(AdTargeting) |
AdRequest.Builder |
setTargeting(AdTargeting) |
Added |
AdTargeting |
- |
Added |
AdTargeting.Builder |
- |
Added |
AdTargeting.Builder |
setAge(String) |
Added |
AdTargeting.Builder |
setGender(String) |
Added |
AdTargeting.Builder |
setLocation(Location) |
Added |
AdTargeting.Builder |
setContextQuery(String) |
Added |
AdTargeting.Builder |
setContextTags(List<String>) |
Added |
Examples
Kotlin
| SDK 7 | SDK 8 |
val adRequest = AdRequest.Builder()
.setAge("25")
.setGender(Gender.MALE)
.setContextTags(listOf("news"))
.build()
|
val targeting = AdTargeting.Builder()
.setAge("25")
.setGender(Gender.MALE)
.setContextTags(listOf("news"))
.build()
val adRequest = AdRequest.Builder(adUnitId)
.setTargeting(targeting)
.build()
|
Java
| SDK 7 | SDK 8 |
void loadAd() {
AdRequest adRequest = AdRequest.Builder()
.setAge("25")
.setGender(Gender.MALE)
.setContextTags(listOf("news"))
.build();
}
|
void loadAd() {
AdTargeting targeting = new AdTargeting.Builder()
.setAge("25")
.setGender(Gender.MALE)
.setContextTags(listOf("news"))
.build();
AdRequest adRequest = new AdRequest.Builder(adUnitId)
.setTargeting(targeting)
.build();
}
|
3. Changes to ad loading API
Methods for registering callback listeners and loading ads have been changed.
| Class |
Method |
Status |
| InterstitialAdLoader |
setAdLoadListener(InterstitialAdLoadListener) |
Removed. Pass InterstitialAdLoadListener as a parameter to loadAd. |
| InterstitialAdLoader |
loadAd(AdRequestConfiguration) |
Removed. Use loadAd(AdRequest, InterstitialAdLoadListener). |
| InterstitialAdLoader |
loadAd(AdRequest, InterstitialAdLoadListener) |
Added |
| RewardedAdLoader |
setAdLoadListener(RewardedAdLoadListener) |
Removed. Pass RewardedAdLoadListener as a parameter to loadAd. |
| RewardedAdLoader |
loadAd(AdRequestConfiguration) |
Removed. Use loadAd(AdRequest, RewardedAdLoadListener). |
| RewardedAdLoader |
loadAd(AdRequest, RewardedAdLoadListener) |
Added |
| AppOpenAdLoader |
setAdLoadListener(AppOpenAdLoadListener) |
Removed. Pass AppOpenAdLoadListener as a parameter to loadAd. |
| AppOpenAdLoader |
loadAd(AdRequestConfiguration) |
Removed. Use loadAd(AdRequest, AppOpenAdLoadListener). |
| AppOpenAdLoader |
loadAd(AdRequest, AppOpenAdLoadListener) |
Added |
| NativeAdLoader |
setNativeAdLoadListener(NativeAdLoadListener) |
Removed. Pass NativeAdLoadListener as a parameter to loadAd. |
| NativeAdLoader |
loadAd(NativeAdRequestConfiguration) |
Removed. Use loadAd(AdRequest, NativeAdLoadListener). |
| NativeAdLoader |
loadAd(AdRequest, NativeAdOptions, NativeAdLoadListener) |
Added |
| NativeAdLoader |
loadAd(AdRequest, NativeAdLoadListener) |
Added |
| SliderAdLoader |
setSliderAdLoadListener(SliderAdLoadListener) |
Removed. Pass SliderAdLoadListener as a parameter to loadAd. |
| SliderAdLoader |
loadSlider(NativeAdRequestConfiguration) |
Removed. Use loadAd(AdRequest, SliderAdLoadListener). |
| SliderAdLoader |
loadSlider(AdRequest, NativeAdOptions, SliderAdLoadListener) |
Added |
| SliderAdLoader |
loadAd(AdRequest, NativeAdLoadListener) |
Added |
| NativeBulkAdLoader |
setNativeBulkAdLoadListener(NativeBulkAdLoadListener) |
Removed. Pass NativeBulkAdLoadListener as a parameter to loadAd. |
| NativeBulkAdLoader |
loadAds(NativeAdRequestConfiguration, Int) |
Removed. Use loadAd(AdRequest, NativeAdLoadListener). |
| NativeBulkAdLoader |
loadAds(AdRequest, NativeAdOptions, NativeBulkAdLoadListener) |
Added |
| NativeBulkAdLoader |
loadAds(AdRequest, NativeBulkAdLoadListener) |
Added |
Examples
Kotlin
| SDK 7 | SDK 8 |
val interstitialAdLoader = InterstitialAdLoader(this)
interstitialAdLoader.setAdLoadListener(object : InterstitialAdLoadListener { })
interstitialAdLoader.loadAd(AdRequestConfiguration.Builder("R-M-XXXXX-YY").build())
val rewardedAdLoader = RewardedAdLoader(this)
rewardedAdLoader.setAdLoadListener(object : RewardedAdLoadListener { })
rewardedAdLoader.loadAd(AdRequestConfiguration.Builder("R-M-XXXXX-YY").build())
val appOpenAdLoader = AppOpenAdLoader(this)
appOpenAdLoader.setAdLoadListener(object : AppOpenAdLoadListener { })
appOpenAdLoader.loadAd(AdRequestConfiguration.Builder("R-M-XXXXX-YY").build())
val nativeAdLoader = NativeAdLoader(this)
nativeAdLoader.setNativeAdLoadListener(object : NativeAdLoadListener { })
nativeAdLoader.loadAd(NativeAdRequestConfiguration.Builder("R-M-XXXXX-YY").build())
val sliderAdLoader = SliderAdLoader(this)
sliderAdLoader.setSliderAdLoadListener(object : SliderAdLoadListener { })
sliderAdLoader.loadSlider(NativeAdRequestConfiguration.Builder("R-M-XXXXX-YY").build())
val nativeBulkAdLoader = NativeBulkAdLoader(this)
nativeBulkAdLoader.setNativeBulkAdLoadListener(object : NativeBulkAdLoadListener { })
nativeBulkAdLoader.loadAds(NativeAdRequestConfiguration.Builder("R-M-XXXXX-YY").build(), 1)
|
val interstitialAdLoader = InterstitialAdLoader(this)
interstitialAdLoader.loadAd(AdRequest.Builder("R-M-XXXXX-YY").build(), object : InterstitialAdLoadListener { })
val rewardedAdLoader = RewardedAdLoader(this)
rewardedAdLoader.loadAd(AdRequest.Builder("R-M-XXXXX-YY").build(), object : RewardedAdLoadListener { })
val appOpenAdLoader = AppOpenAdLoader(this)
appOpenAdLoader.loadAd(AdRequest.Builder("R-M-XXXXX-YY").build(), object : AppOpenAdLoadListener { })
val nativeAdLoader = NativeAdLoader(this)
nativeAdLoader.loadAd(AdRequest.Builder("R-M-XXXXX-YY").build(), object : NativeAdLoadListener { })
nativeAdLoader.loadAd(
AdRequest.Builder("R-M-XXXXX-YY").build(),
NativeAdOptions.Builder().build(),
object : NativeAdLoadListener { })
val sliderAdLoader = SliderAdLoader(this)
sliderAdLoader.loadSlider(AdRequest.Builder("R-M-XXXXX-YY").build(), object : SliderAdLoadListener { })
sliderAdLoader.loadSlider(
AdRequest.Builder("R-M-XXXXX-YY").build(),
NativeAdOptions.Builder().build(),
object : SliderAdLoadListener { })
val nativeBulkAdLoader = NativeBulkAdLoader(this)
nativeBulkAdLoader.loadAds(
AdRequest.Builder("R-M-XXXXX-YY").build(),
1,
object : NativeBulkAdLoadListener { }
)
nativeBulkAdLoader.loadAds(
AdRequest.Builder("R-M-XXXXX-YY").build(),
1,
NativeAdOptions.Builder().build(),
object : NativeBulkAdLoadListener { }
)
|
Java
| SDK 7 | SDK 8 |
void loadAd() {
InterstitialAdLoader interstitialAdLoader = new InterstitialAdLoader(this);
interstitialAdLoader.setAdLoadListener(new InterstitialAdLoadListener() { });
interstitialAdLoader.loadAd(new AdRequestConfiguration.Builder("R-M-XXXXX-YY").build());
RewardedAdLoader rewardedAdLoader = new RewardedAdLoader(this);
rewardedAdLoader.setAdLoadListener(new RewardedAdLoadListener() { });
rewardedAdLoader.loadAd(new AdRequestConfiguration.Builder("R-M-XXXXX-YY").build());
AppOpenAdLoader appOpenAdLoader = new AppOpenAdLoader(this);
appOpenAdLoader.setAdLoadListener(new AppOpenAdLoadListener() { });
appOpenAdLoader.loadAd(new AdRequestConfiguration.Builder("R-M-XXXXX-YY").build());
NativeAdLoader nativeAdLoader = new NativeAdLoader(this);
nativeAdLoader.setNativeAdLoadListener(new NativeAdLoadListener() { });
nativeAdLoader.loadAd(new NativeAdRequestConfiguration.Builder("R-M-XXXXX-YY").build());
SliderAdLoader sliderAdLoader = new SliderAdLoader(this);
sliderAdLoader.setSliderAdLoadListener(new SliderAdLoadListener() { });
sliderAdLoader.loadSlider(new NativeAdRequestConfiguration.Builder("R-M-XXXXX-YY").build());
NativeBulkAdLoader nativeBulkAdLoader = new NativeBulkAdLoader(this);
nativeBulkAdLoader.setNativeBulkAdLoadListener(new NativeBulkAdLoadListener() { });
nativeBulkAdLoader.loadAds(new NativeAdRequestConfiguration.Builder("R-M-XXXXX-YY").build(), 1);
}
|
void loadAd() {
InterstitialAdLoader interstitialAdLoader = new InterstitialAdLoader(this);
interstitialAdLoader.loadAd(new AdRequest.Builder("R-M-XXXXX-YY").build(),
new InterstitialAdLoadListener() { }
);
RewardedAdLoader rewardedAdLoader = new RewardedAdLoader(this);
rewardedAdLoader.loadAd(new AdRequest.Builder("R-M-XXXXX-YY").build(),
new RewardedAdLoadListener() { }
);
AppOpenAdLoader appOpenAdLoader = new AppOpenAdLoader(this);
appOpenAdLoader.loadAd(new AdRequest.Builder("R-M-XXXXX-YY").build(),
new AppOpenAdLoadListener() { }
);
NativeAdLoader nativeAdLoader = new NativeAdLoader(this);
nativeAdLoader.loadAd(new AdRequest.Builder("R-M-XXXXX-YY").build(),
new NativeAdLoadListener() { }
);
nativeAdLoader.loadAd(new AdRequest.Builder("R-M-XXXXX-YY").build(),
new NativeAdOptions.Builder().build(),
new NativeAdLoadListener() { }
);
SliderAdLoader sliderAdLoader = new SliderAdLoader(this);
sliderAdLoader.loadSlider(new AdRequest.Builder("R-M-XXXXX-YY").build(),
new SliderAdLoadListener() { }
);
sliderAdLoader.loadSlider(new AdRequest.Builder("R-M-XXXXX-YY").build(),
new NativeAdOptions.Builder().build(),
new SliderAdLoadListener() { }
);
NativeBulkAdLoader nativeBulkAdLoader = new NativeBulkAdLoader(this);
nativeBulkAdLoader.loadAds(new AdRequest.Builder("R-M-XXXXX-YY").build(),
1,
new NativeBulkAdLoadListener() { }
);
nativeBulkAdLoader.loadAds(new AdRequest.Builder("R-M-XXXXX-YY").build(),
1,
new NativeAdOptions.Builder().build(),
new NativeBulkAdLoadListener() { }
);
}
|
3.1 Kotlin Coroutines support
suspend overloads of ad loading methods have been added to the API:
| Class |
Method |
Status |
| InterstitialAdLoader |
suspend fun loadAd(AdRequest): InterstitialAdLoadResult |
Added |
| RewardedAdLoader |
suspend fun loadAd(AdRequest): RewardedAdLoadResult |
Added |
| AppOpenAdLoader |
suspend fun loadAd(AdRequest): AppOpenAdLoadResult |
Added |
| NativeAdLoader |
suspend fun loadAd(AdRequest, NativeAdOptions): NativeAdLoadResult |
Added |
| NativeAdLoader |
suspend fun loadAd(AdRequest): NativeAdLoadResult |
Added |
| SliderAdLoader |
suspend fun loadAd(AdRequest): SliderAdLoadResult |
Added |
| SliderAdLoader |
suspend fun loadAd(AdRequest, NativeAdOptions): SliderAdLoadResult |
Added |
| NativeBulkAdLoader |
suspend fun loadAds(AdRequest, Int): NativeBulkAdLoadResult |
Added |
| NativeBulkAdLoader |
suspend fun loadAds(AdRequest, Int, NativeAdOptions): NativeBulkAdLoadResult |
Added |
Examples
Kotlin
lifecycleScope.launch {
val interstitialAdLoader = InterstitialAdLoader(applicationContext)
when(val result = interstitialAdLoader.loadAd(AdRequest.Builder("R-M-XXXXX-YY").build())) {
is InterstitialAdLoadResult.Failure -> TODO("Handle error: ${result.error.description}")
is InterstitialAdLoadResult.Success -> TODO("Show interstitial ad: ${result.ad}")
}
val rewardedAdLoader = RewardedAdLoader(applicationContext)
when(val result = rewardedAdLoader.loadAd(AdRequest.Builder("R-M-XXXXX-YY").build())) {
is RewardedAdLoadResult.Failure -> TODO("Handle error: ${result.error.description}")
is RewardedAdLoadResult.Success -> TODO("Show rewarded ad: ${result.ad}")
}
val appOpenAdLoader = AppOpenAdLoader(applicationContext)
when(val result = appOpenAdLoader.loadAd(AdRequest.Builder("R-M-XXXXX-YY").build())) {
is AppOpenAdLoadResult.Failure -> TODO("Handle error: ${result.error.description}")
is AppOpenAdLoadResult.Success -> TODO("Show appOpen ad: ${result.ad}")
}
val nativeAdLoader = NativeAdLoader(applicationContext)
val nativeAdRequest = AdRequest.Builder("R-M-XXXXX-YY").build()
when(val result = nativeAdLoader.loadAd(nativeAdRequest)) {
is NativeAdLoadResult.Failure -> TODO("Handle error: ${result.error.description}")
is NativeAdLoadResult.Success -> TODO("Show native ad: ${result.ad}")
}
when(val result = nativeAdLoader.loadAd(nativeAdRequest, NativeAdOptions.Builder().build())) {
is NativeAdLoadResult.Failure -> TODO("Handle error: ${result.error.description}")
is NativeAdLoadResult.Success -> TODO("Show native ad: ${result.ad}")
}
val sliderAdLoader = SliderAdLoader(applicationContext)
val sliderAdRequest = AdRequest.Builder("R-M-XXXXX-YY").build()
when(val result = sliderAdLoader.loadAd(sliderAdRequest)) {
is SliderAdLoadResult.Failure -> TODO("Handle error: ${result.error.description}")
is SliderAdLoadResult.Success -> TODO("Show slider ad: ${result.ad}")
}
when(val result = sliderAdLoader.loadAd(sliderAdRequest, NativeAdOptions.Builder().build())) {
is SliderAdLoadResult.Failure -> TODO("Handle error: ${result.error.description}")
is SliderAdLoadResult.Success -> TODO("Show slider ad: ${result.ad}")
}
val nativeBulkAdLoader = NativeBulkAdLoader(applicationContext)
val builkAdRequest = AdRequest.Builder("R-M-XXXXX-YY").build()
when(val result = nativeBulkAdLoader.loadAds(builkAdRequest, 1)) {
is NativeBulkAdLoadResult.Failure -> TODO("Handle error: ${result.error.description}")
is NativeBulkAdLoadResult.Success -> TODO("Show bulk ad: ${result.ads}")
}
when(val result = nativeBulkAdLoader.loadAds(builkAdRequest, 1, NativeAdOptions.Builder().build())) {
is NativeBulkAdLoadResult.Failure -> TODO("Handle error: ${result.error.description}")
is NativeBulkAdLoadResult.Success -> TODO("Show bulk ad: ${result.ads}")
}
}
4. Changes to Banner API
The setAdUnitId method has been removed from BannerAdView. Now adUnitId is set for each ad load.
The factory methods for creating BannerAdSize have been renamed.
| Class |
Method |
Status |
BannerAdView |
setAdUnitId(String) |
Removed. Pass adUnitId to the AdRequest constructor before loading the ad. |
BannerAdSize |
stickySize |
Removed. Use BannerAdSize.sticky. |
BannerAdSize |
inlineSize |
Removed. Use BannerAdSize.inline. |
Examples
Kotlin
| SDK 7 | SDK 8 |
val banner = findViewById<BannerAdView>(R.id.banner)
val stickySize = BannerAdSize.stickySize(this, screenWidth)
val inlineSizeSize = BannerAdSize.inlineSize(this, screenWidth, 300)
banner.setAdUnitId("R-M-XXXXX-YY")
banner.setAdSize(stickySize)
banner.loadAd(AdRequest.Builder().build())
|
val banner = findViewById<BannerAdView>(R.id.banner)
val stickySize = BannerAdSize.sticky(this, screenWidth)
val inlineSizeSize = BannerAdSize.inline(this, screenWidth, 300)
banner.setAdSize(stickySize)
banner.loadAd(AdRequest.Builder("R-M-XXXXX-YY").build())
|
Java
| SDK 7 | SDK 8 |
void loadAd() {
BannerAdView banner = findViewById(R.id.banner);
BannerAdSize stickySize = BannerAdSize.stickySize(this, screenWidth);
BannerAdSize inlineSizeSize = BannerAdSize.inlineSize(this, screenWidth, 300);
banner.setAdUnitId("R-M-XXXXX-YY");
banner.setAdSize(stickySize);
banner.loadAd(new AdRequest.Builder().build());
}
|
void loadAd() {
BannerAdView banner = findViewById(R.id.banner);
BannerAdSize stickySize = BannerAdSize.sticky(this, screenWidth);
BannerAdSize inlineSizeSize = BannerAdSize.inline(this, screenWidth, 300);
banner.setAdSize(stickySize);
banner.loadAd(new AdRequest.Builder("R-M-XXXXX-YY").build());
}
|
5. Changes to AdInfo API
Methods for retrieving ad creative information have been changed from methods to properties; additional information has been removed:
| Class |
Method/Field |
Status |
BannerAdView,
InterstitialAd,
RewardedAd,
AppOpenAd,
NativeAd |
info |
Removed. Use adInfo |
BannerAdView,
InterstitialAd,
RewardedAd,
AppOpenAd,
NativeAd |
adAttributes |
Removed. Use adInfo |
NativeAd |
creativeId |
Removed. Use Creative.creativeId |
NativeAd |
campaignId |
Removed. Use Creative.campaignId |
AdInfo |
data |
Removed |
AdInfo |
adSize |
Removed |
AdInfo |
creatives |
Added |
AdInfo |
extraData |
Added |
AdInfo |
partnerText |
Added |
Creative |
placeId |
Added |
Creative |
offerId |
Added |
Examples
Kotlin
| SDK 7 | SDK 8 |
val extraData = banner.info
val adUnitId = banner.adInfo.adUnitId
val extraData2 = banner.adInfo.data
val width = banner.adInfo.adSize?.width
val height = banner.adInfo.adSize?.height
val creativeId = banner.adInfo.creatives.first().creativeId
val campaignId = banner.adInfo.creatives.first().campaignId
val creativeId2 = banner.adAttributes.first().bannerId
val campaignId2 = banner.adAttributes.first().campaignId
val placeId = banner.adAttributes.first().placeId
val extraData = fullscreenAd.info.data
val adUnitId = fullscreenAd.info.adUnitId
val width = fullscreenAd.info.adSize?.width
val height = fullscreenAd.info.adSize?.height
val creativeId = fullscreenAd.info.creatives.first().creativeId
val campaignId = fullscreenAd.info.creatives.first().campaignId
val creativeId2 = fullscreenAd.adAttributes.first().bannerId
val campaignId2 = fullscreenAd.adAttributes.first().campaignId
val placeId = fullscreenAd.adAttributes.first().placeId
val extraData = nativeAd.info
val creativeId = nativeAd.creativeId
val campaignId = nativeAd.campaignId
val creativeId2 = nativeAd.adAttributes?.bannerId
val campaignId2 = nativeAd.adAttributes?.campaignId
val placeId = nativeAd.adAttributes?.placeId
|
val extraData = banner.adInfo.extraData
val partnerText = banner.adInfo.partnerText
val creativeId = banner.adInfo.creatives.first().creativeId
val campaignId = banner.adInfo.creatives.first().campaignId
val placeId = banner.adInfo.creatives.first().placeId
val adUnitId = banner.adInfo.adUnitId
val width = banner.adSize?.width
val height = banner.adSize?.height
val extraData = fullscreenAd.adInfo.extraData
val partnerText = fullscreenAd.adInfo.partnerText
val adUnitId = fullscreenAd.adInfo.adUnitId
val creativeId = fullscreenAd.adInfo.creatives.first().creativeId
val campaignId = fullscreenAd.adInfo.creatives.first().campaignId
val placeId = fullscreenAd.adInfo.creatives.first().placeId
val extraData = nativeAd.adInfo.extraData
val partnerText = nativeAd.adInfo.partnerText
val adUnitId = nativeAd.adInfo.adUnitId
val creativeId = nativeAd.adInfo.creatives.first().creativeId
val campaignId = nativeAd.adInfo.creatives.first().campaignId
val placeId = nativeAd.adInfo.creatives.first().placeId
|
Java
| SDK 7 | SDK 8 |
String extraData = banner.getInfo();
String adUnitId = banner.getAdInfo().getAdUnitId();
String extraData2 = banner.getAdInfo().getData();
int width = banner.getAdInfo().getAdSize().getWidth();
int height = banner.getAdInfo().getAdSize().getHeight();
String creativeId = banner.getAdInfo().getCreatives().get(0).getCreativeId();
String campaignId = banner.getAdInfo().getCreatives().get(0).getCampaignId();
String creativeId2 = banner.getAdAttributes().get(0).getBannerId();
String campaignId2 = banner.getAdAttributes().get(0).getCampaignId();
String placeId = banner.getAdAttributes().get(0).getPlaceId();
String extraData = fullscreenAd.getInfo().getData();
String adUnitId = fullscreenAd.getInfo().getAdUnitId();
int width = fullscreenAd.getInfo().getAdSize().getWidth();
int height = fullscreenAd.getInfo().getAdSize().getHeight();
String creativeId = fullscreenAd.getInfo().getCreatives().get(0).getCreativeId();
String campaignId = fullscreenAd.getInfo().getCreatives().get(0).getCampaignId();
String creativeId2 = fullscreenAd.getAdAttributes().get(0).getBannerId();
String campaignId2 = fullscreenAd.getAdAttributes().get(0).getCampaignId();
String placeId = fullscreenAd.getAdAttributes().get(0).getPlaceId();
String extraData = nativeAd.getInfo();
String creativeId = nativeAd.getCreativeId();
String campaignId = nativeAd.getCampaignId();
String creativeId2 = nativeAd.getAdAttributes().getBannerId();
String campaignId2 = nativeAd.getAdAttributes().getCampaignId();
String placeId = nativeAd.getAdAttributes().getPlaceId();
|
String extraData = banner.getAdInfo().getExtraData();
String partnerText = banner.getAdInfo().getPartnerText();
String creativeId = banner.getAdInfo().getCreatives().get(0).getCreativeId();
String campaignId = banner.getAdInfo().getCreatives().get(0).getCampaignId();
String placeId = banner.getAdInfo().getCreatives().get(0).getPlaceId();
String adUnitId = banner.getAdInfo().getAdUnitId();
int width = banner.getAdSize().getWidth();
int height = banner.getAdSize().getHeight();
String extraData = fullscreenAd.getAdInfo().getExtraData();
String partnerText = fullscreenAd.getAdInfo().getPartnerText();
String adUnitId = fullscreenAd.getAdInfo().getAdUnitId();
String creativeId = fullscreenAd.getAdInfo().getCreatives().get(0).getCreativeId();
String campaignId = fullscreenAd.getAdInfo().getCreatives().get(0).getCampaignId();
String placeId = fullscreenAd.getAdInfo().getCreatives().get(0).getPlaceId();
String extraData = nativeAd.getAdInfo().getExtraData();
String partnerText = nativeAd.getAdInfo().getPartnerText();
String adUnitId = nativeAd.getAdInfo().getAdUnitId();
String creativeId = nativeAd.getAdInfo().getCreatives().get(0).getCreativeId();
String campaignId = nativeAd.getAdInfo().getCreatives().get(0).getCampaignId();
String placeId = nativeAd.getAdInfo().getCreatives().get(0).getPlaceId();
|
6. Changes to Native Ads API
The NativeAd.bindNativeAd and SliderAd.bindSliderAd() methods now return an AdBindingResult binding result and no longer throw exceptions.
The type of the warning field has changed from String? to NativeAdWarning?. To comply with the Advertising Law, the new class contains, in addition to the warning asset content, the minimum required size of the warning asset as a percentage of the total ad area.
A hasVideo field indicating the presence of a video creative in the selected ad has been added to the NativeAdMedia class.
| Class |
Method/Field |
Status |
NativeAd |
bindNativeAd |
Added return value AdBindingResult. Method no longer throws exceptions. |
SliderAd |
bindSliderAd |
Added return value AdBindingResult. Method no longer throws exceptions. |
AdBindingResult |
- |
Added |
NativeAdAssets |
warning |
Type changed: String -> NativeAdWarning |
NativeAdWarning |
- |
Added |
NativeAdWarning |
value |
Added |
NativeAdWarning |
minimumRequiredArea |
Added |
NativeAdMedia |
hasVideo |
Added |
Examples
Kotlin
| SDK 7 | SDK 8 |
val warning = nativeAd.adAssets.warning
try {
nativeAd.bindNativeAd(binder)
} catch (e: NativeAdException) {
val message = e.message
}
|
val warningAsset = nativeAd.adAssets.warning
val warning = warningAsset?.value
val warningMinArea = warningAsset?.minimumRequiredArea
val hasVideo = nativeAd.adAssets.media?.hasVideo
when (val result = nativeAd.bindNativeAd(binder)) {
is AdBindingResult.Failure -> {
val missingAssetName = result.missingAssetName
val message = result.exception.message
}
AdBindingResult.Success -> Unit
}
|
Java
| SDK 7 | SDK 8 |
void bindAd(NativeAd nativeAd) {
String warning = nativeAd.getAdAssets().getWarning();
try {
nativeAd.bindNativeAd(binder);
} catch (NativeAdException e) {
String message = e.getMessage();
}
}
|
void bindNativeAd(NativeAd nativeAd) {
NativeAdWarning warningAsset = nativeAd.getAdAssets().getWarning();
String warning = warningAsset.getValue();
float minWarningArea = warningAsset.getMinimumRequiredArea();
boolean hasVideo = nativeAd.getAdAssets().getMedia().getHasVideo();
AdBindingResult result = nativeAd.bindNativeAd(binder);
if (result instanceof AdBindingResult.Failure) {
String missingAssetName = ((AdBindingResult.Failure) result).getMissingAssetName();
String message = ((AdBindingResult.Failure) result).getException().getMessage();
}
}
|
6.1 Native ad template API
Native ad template integration tools have been removed. Use standard native ad components for integration.
| Class |
Status |
NativeBannerView |
Removed |
SizeConstraint |
Removed |
HorizontalOffset |
Removed |
NativeTemplateAppearance |
Removed |
TextAppearance |
Removed |
BannerAppearance |
Removed |
ButtonAppearance |
Removed |
RatingAppearance |
Removed |
7. Removal of certain ad object callbacks
The ClosableBannerAdEventListener and ClosableNativeAdEventListener interfaces have been removed. The onLeftApplication and onReturnToApplication methods have also been removed:
| Class |
Method |
Status |
ClosableBannerAdEventListener |
- |
Removed |
ClosableNativeAdEventListener |
- |
Removed |
BannerAdEventListener
NativeAdEventListener |
onLeftApplication |
Removed |
BannerAdEventListener
NativeAdEventListener |
onReturnToApplication |
Removed |
Examples
Kotlin
| SDK 7 | SDK 8 |
bannerAd?.setBannerAdEventListener(object : ClosableBannerAdEventListener {
override fun closeBannerAd() { }
override fun onAdClicked() { }
override fun onAdFailedToLoad(error: AdRequestError) { }
override fun onAdLoaded() { }
override fun onImpression(impressionData: ImpressionData?) { }
override fun onLeftApplication() { }
override fun onReturnedToApplication() { }
})
|
bannerAdView?.setBannerAdEventListener(object : BannerAdEventListener {
override fun onAdClicked() { }
override fun onAdFailedToLoad(error: AdRequestError) { }
override fun onAdLoaded() { }
override fun onImpression(impressionData: ImpressionData?) { }
})
|
Java
| SDK 7 | SDK 8 |
void setEventListener(BannerAdView bannerView) {
bannerView.setBannerAdEventListener(
new ClosableBannerAdEventListener() {
@Override
public void closeBannerAd() { }
@Override
public void onAdLoaded() { }
@Override
public void onAdFailedToLoad(@NotNull AdRequestError adRequestError) { }
@Override
public void onAdClicked() { }
@Override
public void onLeftApplication() { }
@Override
public void onReturnedToApplication() { }
@Override
public void onImpression(@Nullable ImpressionData impressionData) { }
}
);
}
|
void setEventListener(BannerAdView bannerView) {
bannerView.setBannerAdEventListener(
new BannerAdEventListener() {
@Override
public void onAdLoaded() { }
@Override
public void onAdFailedToLoad(@NotNull AdRequestError adRequestError) { }
@Override
public void onAdClicked() { }
@Override
public void onImpression(@Nullable ImpressionData impressionData) { }
}
);
}
|
8. Changes to the main SDK class
The main SDK class has been renamed to YandexAds, and some methods for setting privacy settings have also been renamed.
| Class |
Method |
Status |
MobileAds |
- |
Removed. Use YandexAds |
MobileAds |
setAgeRestrictedUser(Boolean) |
Removed. Use YandexAds.setAgeRestricted(Boolean). |
MobileAds |
setLocationConsent(Boolean) |
Removed. Use YandexAds.setLocationTracking(Boolean). |
YandexAds |
- |
Added |
YandexAds |
setAgeRestricted(Boolean) |
Added |
YandexAds |
setLocationTracking(Boolean) |
Added |
Examples
Kotlin
| SDK 7 | SDK 8 |
import com.yandex.mobile.ads.common.MobileAds
MobileAds.setUserConsent(true)
MobileAds.setAgeRestrictedUser(false)
MobileAds.setLocationConsent(true)
MobileAds.initialize(context) { }
MobileAds.enableDebugErrorIndicator(true)
MobileAds.enableLogging(true)
MobileAds.setAppAdAnalyticsReporting(true)
MobileAds.showDebugPanel(this)
MobileAds.libraryVersion
|
import com.yandex.mobile.ads.common.YandexAds
YandexAds.setUserConsent(true)
YandexAds.setAgeRestricted(false)
YandexAds.setLocationTracking(true)
YandexAds.initialize(context) { }
YandexAds.enableDebugErrorIndicator(true)
YandexAds.enableLogging(true)
YandexAds.setAppAdAnalyticsReporting(true)
YandexAds.showDebugPanel(this)
YandexAds.libraryVersion
|
Java
| SDK 7 | SDK 8 |
import com.yandex.mobile.ads.common.MobileAds;
void initSdk() {
MobileAds.setUserConsent(true);
MobileAds.setAgeRestrictedUser(false);
MobileAds.setLocationConsent(true);
MobileAds.initialize(this, () -> { });
MobileAds.getLibraryVersion();
MobileAds.enableDebugErrorIndicator(true);
MobileAds.enableLogging(true);
MobileAds.setAppAdAnalyticsReporting(true);
MobileAds.showDebugPanel(this);
}
|
import com.yandex.mobile.ads.common.YandexAds;
void initSdk() {
YandexAds.setUserConsent(true);
YandexAds.setAgeRestricted(false);
YandexAds.setLocationTracking(true);
YandexAds.initialize(this, () -> { });
YandexAds.getLibraryVersion();
YandexAds.enableDebugErrorIndicator(true);
YandexAds.enableLogging(true);
YandexAds.setAppAdAnalyticsReporting(true);
YandexAds.showDebugPanel(this);
}
|
Changes to Instream API
1. Changes to packages and dependency structure
Main classes have been renamed to match the new SDK structure.
| Class |
Status |
com.yandex.mobile.ads.instream.InstreamAdBinder |
Moved to com.yandex.mobile.ads.instream.binder.InstreamAdBinder |
com.yandex.mobile.ads.instream.InstreamAdRequestConfiguration |
Renamed to com.yandex.mobile.ads.instream.InstreamAdRequest |
com.yandex.mobile.ads.instream.InstreamAdBreak |
Renamed to com.yandex.mobile.ads.instream.adbreak.AdBreakData |
com.yandex.mobile.ads.instream.inroll.Inroll
com.yandex.mobile.ads.instream.pauseroll.Pauseroll |
Replaced by com.yandex.mobile.ads.instream.adbreak.InstreamAdBreak |
Examples
Kotlin
| SDK 7 | SDK 8 |
import com.yandex.mobile.ads.instream.InstreamAdBinder
import com.yandex.mobile.ads.instream.InstreamAdRequestConfiguration
import com.yandex.mobile.ads.instream.InstreamAdBreak
import com.yandex.mobile.ads.instream.inroll.Inroll
import com.yandex.mobile.ads.instream.pauseroll.Pauseroll
|
import com.yandex.mobile.ads.instream.binder.InstreamAdBinder
import com.yandex.mobile.ads.instream.InstreamAdRequest
import com.yandex.mobile.ads.instream.adbreak.AdBreakData
import com.yandex.mobile.ads.instream.adbreak.InstreamAdBreak
|
Java
| SDK 7 | SDK 8 |
import com.yandex.mobile.ads.instream.InstreamAdBinder;
import com.yandex.mobile.ads.instream.InstreamAdRequestConfiguration;
import com.yandex.mobile.ads.instream.InstreamAdBreak;
import com.yandex.mobile.ads.instream.inroll.Inroll;
import com.yandex.mobile.ads.instream.pauseroll.Pauseroll;
|
import com.yandex.mobile.ads.instream.binder.InstreamAdBinder;
import com.yandex.mobile.ads.instream.InstreamAdRequest;
import com.yandex.mobile.ads.instream.adbreak.AdBreakData;
import com.yandex.mobile.ads.instream.adbreak.InstreamAdBreak;
|
2. Changes to AdRequest
The InstreamAdRequestConfiguration class has been renamed to InstreamAdRequest.
| Class |
Status |
InstreamAdRequestConfiguration |
Removed. Use InstreamAdRequest |
InstreamAdRequest |
Added |
InstreamAdBreakRequest |
Added |
Examples
Kotlin
| SDK 7 | SDK 8 |
val loader = InstreamAdLoader(this)
val config = InstreamAdRequestConfiguration.Builder("XXXXXX").build()
loader.loadInstreamAd(this, config)
|
val loader = InstreamAdLoader(this)
val config = InstreamAdRequest.Builder("XXXXXX").build()
loader.loadInstreamAd(this, config)
|
Java
| SDK 7 | SDK 8 |
void loadAd() {
InstreamAdLoader loader = new InstreamAdLoader(this);
InstreamAdRequestConfiguration config = new InstreamAdRequestConfiguration.Builder("XXXXXX").build();
loader.loadInstreamAd(this, config);
}
|
void loadAd() {
InstreamAdLoader loader = new InstreamAdLoader(this);
InstreamAdRequest config = new InstreamAdRequest.Builder("XXXXXX").build();
loader.loadInstreamAd(this, config);
}
|
3. Changes to ad loading API
Methods for registering callback listeners and loading ads have been changed. The InstreamAdBreakLoader class for loading ad breaks has been added. The signature of the onInstreamAdFailedToLoad method has also been changed: instead of the reason string, an InstreamAdRequestError object is now passed.
| Class |
Method |
Status |
InstreamAdLoader |
setInstreamAdLoadListener(InstreamAdLoadListener) |
Removed. Pass InstreamAdLoadListener as a parameter to loadAd. |
InstreamAdLoader |
loadAd(InstreamAdRequestConfiguration) |
Removed. Pass InstreamAdLoadListener as a parameter to loadAd. |
InstreamAdLoader |
loadAd(InstreamAdRequest, InstreamAdLoadListener) |
Removed. Pass InstreamAdLoadListener as a parameter to loadAd. |
InstreamAdLoadListener |
onInstreamAdFailedToLoad(String) |
Removed. Use onInstreamAdFailedToLoad(InstreamAdRequestError). |
InstreamAdLoadListener |
onInstreamAdFailedToLoad(InstreamAdRequestError) |
Added |
InstreamAdBreakLoader |
- |
Added |
InstreamAdBreakLoader |
loadAd(InstreamAdBreakRequest, InstreamAdBreakLoadListener) |
Added |
InstreamAdBreakLoadListener |
- |
Added |
Examples
Kotlin
| SDK 7 | SDK 8 |
val instreamAdLoader = InstreamAdLoader(this)
instreamAdLoader.setInstreamAdLoadListener(object : InstreamAdLoadListener {
override fun onInstreamAdLoaded(instreamAd: InstreamAd) {
}
override fun onInstreamAdFailedToLoad(reason: String) {
println("Instream ad failed to load: $reason")
}
})
val config = InstreamAdRequestConfiguration.Builder("XXXXXX").build()
instreamAdLoader.loadInstreamAd(this, config)
|
val instreamAdLoader = InstreamAdLoader(this)
val config = InstreamAdRequest.Builder("XXXXXX").build()
instreamAdLoader.loadAd(config, object : InstreamAdLoadListener {
override fun onInstreamAdLoaded(instreamAd: InstreamAd) {
}
override fun onInstreamAdFailedToLoad(error: InstreamAdRequestError) {
println("Instream ad failed to load: ${error.reason}")
}
})
|
Java
| SDK 7 | SDK 8 |
void loadInstreamAd() {
InstreamAdLoader instreamAdLoader = new InstreamAdLoader(this);
instreamAdLoader.setInstreamAdLoadListener(new InstreamAdLoadListener() {
@Override
public void onInstreamAdLoaded(InstreamAd instreamAd) {
}
@Override
public void onInstreamAdFailedToLoad(String reason) {
System.out.println("Instream ad failed to load: " + reason);
}
});
InstreamAdRequestConfiguration config = new InstreamAdRequestConfiguration.Builder("XXXXXX").build();
instreamAdLoader.loadInstreamAd(this, config);
}
|
void loadInstreamAd() {
InstreamAdLoader instreamAdLoader = new InstreamAdLoader(this);
InstreamAdRequest config = new InstreamAdRequest.Builder("XXXXXX").build();
instreamAdLoader.loadAd(config, new InstreamAdLoadListener() {
@Override
public void onInstreamAdLoaded(InstreamAd instreamAd) {
}
@Override
public void onInstreamAdFailedToLoad(InstreamAdRequestError error) {
System.out.println("Instream ad failed to load: " + error.getReason());
}
});
}
|
3.1 Kotlin coroutines support
suspend overloads of ad loading methods have been added to InstreamAdLoader and InstreamAdBreakAdLoader:
| Class |
Method |
Status |
InstreamAdLoader |
suspend fun loadAd(InstreamAdRequest): InstreamAdLoadResult |
Added |
InstreamAdBreakLoader |
suspend fun loadAd(InstreamAdBreakRequest): InstreamAdBreakLoadResult |
Added |
Examples
Kotlin
lifecycleScope.launch {
val instreamAdLoader = InstreamAdLoader(applicationContext)
when(val result = instreamAdLoader.loadAd(InstreamAdRequest.Builder("XXXXXX").build())) {
is InstreamAdLoadResult.Failure -> TODO("Handle error: ${result.error.description}")
is InstreamAdLoadResult.Success -> TODO("Show instream ad: ${result.ad}")
}
val adBreakLoader = InstreamAdBreakLoader(applicationContext)
when (val result = adBreakLoader.loadAd(InstreamAdBreakRequest.Builder("XXXXXX", "YY").build())) {
is InstreamAdBreakLoadResult.Failure -> TODO("Handle error: ${result.error.description}")
is InstreamAdBreakLoadResult.Success -> TODO("Show adBreak : ${result.adBreak}")
}
}
4. Working with In-roll and Pause-roll
Ad break management logic has become more flexible. The specialized queue providers InrollQueueProvider and PauserollQueueProvider have been removed — all breaks are available directly from the InstreamAd object and are filtered by type.
If you use automatic rendering via InstreamAdBinder, select only breaks of types INROLL and PAUSEROLL from the instreamAdBreaks collection.
| Class |
Status |
InrollQueueProvider |
Removed. Use instreamAd.instreamAdBreaks filtered by InstreamAdBreakType.INROLL |
PauserollQueueProvider |
Removed. Use instreamAd.instreamAdBreaks filtered by InstreamAdBreakType.PAUSEROLL |
Examples
Kotlin
| SDK 7 | SDK 8 |
val inrollQueueProvider = InrollQueueProvider(context, instreamAd)
val instreamAdBreakQueue = inrollQueueProvider.queue
val currentInroll = instreamAdBreakQueue.poll()
currentInroll?.setListener(object : InstreamAdBreakEventListener {
override fun onInstreamAdBreakPrepared() {
currentInroll.play(instreamAdView)
}
})
currentInroll?.prepare(instreamAdPlayer)
|
val inrolls = instreamAd.instreamAdBreaks.filter {
it.adBreakData.type == InstreamAdBreakType.INROLL
}
val inrollIndex = 0
val currentInroll = inrolls.getOrNull(inrollIndex)
currentInroll?.setListener(object : InstreamAdBreakEventListener {
override fun onInstreamAdBreakPrepared() {
currentInroll.play(instreamAdView)
}
})
currentInroll?.prepare(instreamAdPlayer)
|
Java
| SDK 7 | SDK 8 |
void loadAdBreak() {
InrollQueueProvider inrollQueueProvider = new InrollQueueProvider(context, instreamAd);
Queue<Inroll> instreamAdBreakQueue = inrollQueueProvider.getQueue();
Inroll currentInroll = instreamAdBreakQueue.poll();
if (currentInroll != null) {
currentInroll.setListener(new InstreamAdBreakEventListener() {
@Override
public void onInstreamAdBreakPrepared() {
currentInroll.play(instreamAdView);
}
});
currentInroll.prepare(instreamAdPlayer);
}
}
|
void loadAdBreak() {
List<InstreamAdBreak> inrolls = new ArrayList<>();
for (InstreamAdBreak adBreak : instreamAd.getInstreamAdBreaks()) {
if (adBreak.getAdBreakData().getType() == InstreamAdBreakType.INROLL) {
inrolls.add(adBreak);
}
}
int inrollIndex = 0;
InstreamAdBreak currentInroll = inrollIndex < inrolls.size() ? inrolls.get(inrollIndex) : null;
if (currentInroll != null) {
currentInroll.setListener(new InstreamAdBreakEventListener() {
@Override
public void onInstreamAdBreakPrepared() {
currentInroll.play(instreamAdView);
}
});
currentInroll.prepare(instreamAdPlayer);
}
}
|
5. Default player
Passing a player for video rendering is now optional. When passing null, the SDK takes full control of video rendering.
| Class |
Method |
Status |
InstreamAdBinder |
constructor |
The instreamAdPlayer parameter is now optional. It is acceptable to pass null. |
InstreamAdBreak |
prepare(instreamAdPlayer) |
Removed. Use prepare() without a parameter. |
InstreamAdBreak |
prepare() |
Added |
Examples
Kotlin
| SDK 7 | SDK 8 |
val instreamAdBinder = InstreamAdBinder(
context,
instreamAd,
instreamAdPlayer,
contentPlayer
)
val adBreak: InstreamAdBreak
adBreak.prepare(instreamAdPlayer)
|
val instreamAdBinder = InstreamAdBinder(
context,
instreamAd,
null,
contentPlayer
)
val adBreak: InstreamAdBreak
adBreak.prepare()
|
Java
| SDK 7 | SDK 8 |
void showAd() {
InstreamAdBinder instreamAdBinder = new InstreamAdBinder(
context,
instreamAd,
instreamAdPlayer,
contentPlayer
);
InstreamAdBreak adBreak;
adBreak.prepare(instreamAdPlayer);
}
|
void showAd() {
InstreamAdBinder instreamAdBinder = new InstreamAdBinder(
context,
instreamAd,
null,
contentPlayer
);
InstreamAdBreak adBreak;
adBreak.prepare();
}
|
6. Changes to InstreamAdPlayer interface
The InstreamAdPlayer interface has been updated: the supportedMimeTypes property has been added for optimizing video format selection, and the bindPlayerView method has been added for correct positioning of ad elements above the video.
| Class |
Method |
Status |
InstreamAdPlayer |
supportedMimeTypes: List<String> |
Added. Allows the SDK to select the most suitable video format (e.g., DASH instead of MP4). |
InstreamAdPlayer |
bindPlayerView(container: FrameLayout) |
Added. You must place videoPlayerView inside the provided container filling the full space. |
Examples
Kotlin
| SDK 7 | SDK 8 |
class InstreamAdPlayerImpl : InstreamAdPlayer {
}
|
class InstreamAdPlayerImpl : InstreamAdPlayer {
override val supportedMimeTypes: List<String>
get() = listOf(InstreamAdMimeTypes.MP4, InstreamAdMimeTypes.WEBM)
override fun bindPlayerView(container: FrameLayout) {
container.addView(playerView)
}
}
|
Java
| SDK 7 | SDK 8 |
public class InstreamAdPlayerImpl implements InstreamAdPlayer {
}
|
public class InstreamAdPlayerImpl implements InstreamAdPlayer {
@Override
public List<String> getSupportedMimeTypes() {
return Arrays.asList(InstreamAdMimeTypes.MP4, InstreamAdMimeTypes.WEBM);
}
@Override
public void bindPlayerView(FrameLayout container) {
container.addView(playerView);
}
}
|
For mediation adapters, the adapter identity has been moved to a separate method:
| Class |
Method |
Status |
AdapterIdentity |
- |
Added |
YandexAds |
setAdapterIdentity(AdapterIdentity) |
Added. Call this method before YandexAds.initialize instead of passing adapter data as additional parameters to ad requests. |
Examples
Kotlin
| SDK 7 | SDK 8 |
YandexAds.initialize(context, listener)
val parameters = mapOf(
"adapter_network_name" to "AdNetwork",
"adapter_network_version" to "1.2.3",
"adapter_version" to "1.0.0"
)
val adRequest = AdRequest.Builder()
.setParameters(parameters)
.build()
bannerAd.loadAd(adRequest)
|
val identity = AdapterIdentity("AdNetwork", "1.0.0", "1.2.3")
YandexAds.setAdapterIdentity(identity)
YandexAds.initialize(context, listener)
val adRequest = AdRequest.Builder("R-M-XXXXX-YY").build()
bannerAd.loadAd(adRequest)
|
Java
| SDK 7 | SDK 8 |
void loadAd() {
Map<String, String> parameters = new HashMap<>();
parameters.put("adapter_network_name", "AdNetwork");
parameters.put("adapter_network_version", "1.2.3");
parameters.put("adapter_version", "1.0.0");
AdRequest adRequest = new AdRequest.Builder()
.setParameters(parameters)
.build();
bannerView.loadAd(adRequest);
}
|
void loadAd() {
AdapterIdentity adapterIdentity = new AdapterIdentity("AdNetwork", "1.0.0", "1.2.3");
YandexAds.setAdapterIdentity(adapterIdentity);
YandexAds.initialize(this, () -> { });
AdRequest adRequest = new AdRequest.Builder("R-M-XXXXX-YY").build();
bannerView.loadAd(adRequest);
}
|
2. BidderTokenRequest rework
The BidderTokenLoader class has received a constructor, and the loadBidderToken method has changed from static to an instance method.
The BidderTokenRequestConfiguration class has been renamed to BidderTokenRequest and changed. Instead of Builder(AdType), factory methods banner, interstitial, rewarded, appOpenAd, and native must now be used to create an instance.
| Class |
Constructor/Method |
Status |
BidderTokenLoader |
BidderTokenLoader(Context) |
Constructor added |
BidderTokenLoader |
loadBidderToken |
Changed. From static, the method became an instance method of the BidderTokenLoader class. |
BidderTokenRequestConfiguration |
- |
Removed. Use BidderTokenRequest |
BidderTokenRequestConfiguration.Builder |
- |
Removed. Use factory methods in BidderTokenRequest. |
BidderTokenRequestConfiguration.Builder |
setBannerAdSize(BannerAdSize) |
Removed. Pass BannerAdSize in the arguments of BidderTokenRequest.banner(BannerAdSize) |
BidderTokenRequestConfiguration.Builder |
setParameters(Map<String, String>) |
Removed. Pass parameters as factory method arguments. |
BidderTokenRequest |
- |
Added |
BidderTokenRequest |
banner(BannerAdSize) |
Added |
BidderTokenRequest |
banner(BannerAdSize, AdTargeting) |
Added |
BidderTokenRequest |
banner(BannerAdSize, AdTargeting, Map<String, String>) |
Added |
BidderTokenRequest |
interstitial() |
Added |
BidderTokenRequest |
interstitial(AdTargeting) |
Added |
BidderTokenRequest |
interstitial(AdTargeting, Map<String, String>) |
Added |
BidderTokenRequest |
rewarded() |
Added |
BidderTokenRequest |
rewarded(AdTargeting) |
Added |
BidderTokenRequest |
rewarded(AdTargeting, Map<String, String>) |
Added |
BidderTokenRequest |
appOpenAd() |
Added |
BidderTokenRequest |
appOpenAd(AdTargeting) |
Added |
BidderTokenRequest |
appOpenAd(AdTargeting, Map<String, String>) |
Added |
BidderTokenRequest |
native() |
Added |
BidderTokenRequest |
native(AdTargeting) |
Added |
BidderTokenRequest |
native(AdTargeting, Map<String, String>) |
Added |
Examples
Kotlin
| SDK 7 | SDK 8 |
val bidderTokenRequest = BidderTokenRequestConfiguration.Builder(AdType.INTERSTITIAL)
.setBannerAdSize(BannerAdSize.stickySize(this, screenWidth))
.setParameters(mapOf("a" to "b"))
.build()
BidderTokenLoader.loadBidderToken(
this,
bidderTokenRequest,
object : BidderTokenLoadListener { }
)
|
val bidderTokenLoader = BidderTokenLoader(this);
bidderTokenLoader.loadBidderToken(
BidderTokenRequest.banner(BannerAdSize.sticky(this, screenWidth), parameters = mapOf("a" to "b")),
object : BidderTokenLoadListener { }
)
bidderTokenLoader.loadBidderToken(
BidderTokenRequest.interstitial(),
object : BidderTokenLoadListener { }
)
|
Java
| SDK 7 | SDK 8 |
void loadToken() {
Map<String, String> parameters = new HashMap<>();
parameters.put("a", "b");
BidderTokenRequestConfiguration bidderTokenRequest =
new BidderTokenRequestConfiguration.Builder(AdType.INTERSTITIAL)
.setBannerAdSize(BannerAdSize.stickySize(this, screenWidth))
.setParameters(parameters)
.build();
BidderTokenLoader.loadBidderToken(
this,
bidderTokenRequest,
new BidderTokenLoadListener() { }
);
}
|
void loadToken() {
Map<String, String> parameters = new HashMap<>();
parameters.put("a", "b");
BidderTokenLoader bidderTokenLoader = new BidderTokenLoader(this);
bidderTokenLoader.loadBidderToken(
BidderTokenRequest.banner(BannerAdSize.inline(this, screenWidth), null, parameters),
new BidderTokenLoadListener() { }
);
bidderTokenLoader.loadBidderToken(BidderTokenRequest.interstitial(),
new BidderTokenLoadListener() { }
);
}
|
Jetpack Compose integration
Jetpack Compose integration is now supported. See the Jetpack Compose section at the end of the Android documentation menu:
Integration examples:
Requirements
- Gradle: 7.0 and above
- Android gradle plugin: 8.3.2 and above
- Android SDK: 21 (Android 5.0) and above
- Kotlin: 1.9.0 and above
- Java: 8 and above