Beta Release Notes
3.11 Beta
3.11.0
2024-11-28
Improvements
Implemented a completely new shake debug screen.
Creative Timestamp Added the creative timestamp to the placement-loaded ads screen.
Shake Debug Info Sharing You can now share a summary of the shake debug information via email using the share button in the new shake debug screen.
Introduced a new API for retrieving creative history across all banner formats, that is also available in shake-debug screen.
Steps to Implement:
Enable creative history by calling:
placement.enableCreativeHistory(size)
Retrieve the creative history for a placement:
placement.getCreativeHistory()
Implemented a new hybrid RTB/Mayo auction.
Rework Vungle Banner integration using the new APIs
Library Updates
AppLovin to 13.0.1
AppNexus to 9.2.0
CriteSDK to 7.1.0
FacebookAds to 6.18.0.0
Feedad to 1.6.1
Google Ads to 23.5.0
InMobi to 10.8.0
IronSource to 8.5.0
Ogury to 6.0.0
Pubnative to 3.2.1
Smaato to 22.7.1
SmartAdServer to 7.25.0
Tappx to 4.1.6
Unity to 4.12.5
Vungle to 7.4.2
optional network AmazonHB to 9.10.3
optional network Huawei to 3.4.75.301
optional network Teads to 5.1.9
optional CMP SFBX to 5.5.4
3.10 Beta
3.10.0
2024-09-05
Improvements
Added support for GraviteRTB native ads format.
Added support for Vungle AppOpen ads format.
Added
AATAdInfo
object across multiple ad formats, including Fullscreen, Rewarded, Native Ads, and Infeed Banners:Fullscreen/Rewarded Video:
val info = placement?.adInfo
Native Ads:
val nativeAd = placement.getNativeAd() val info = nativeAd.adInfo
Infeed Banners:
val info = loadedBannerView.adInfo
The
AATAdInfo
class provides detailed price information:
class AdInfo (val priceInfo: PriceInfo?)
class PriceInfo (
val price: Double,
val currency: Currency,
val precisionType: PrecisionType)
Added support for passing the user ID to ad networks for server-side verification of rewarded videos.
Usage:
AATKit.setRewardedAdSSVInfo(RewardedAdSSVInfo("<USER_ID>"))
Library Updates
AppLovin to 12.6.1
Google Ads to 23.3.0
GraviteRTB to 1.4.3
InMobi to 10.7.7
IronSource to 8.3.0
Mintegral to 16.8.41
PubNative to 3.0.4
Smaato to 22.6.3
Tappx to 4.1.5
YOC to 4.1.3
optional network AmazonHB to 9.10.2
optional network Huawei to 3.4.74.300
optional network Superawesome to 9.4.0
optional network Teads to 5.1.5
optional CMP GoogleUserMessagingPlatform to 3.0.0
optional CMP SourcepointCMP to 7.10.1
Removed Ad Networks
Bluestack
3.9 Beta
3.9.1
2024-07-09
API Changes
Changes in
AATKitImpression
object returned byImpressionListener:
Removed mediationType, price, currencyCode and precision fields
Added priceInfo field of type PriceInfo, containing information about
price, currency and precision type
Library Updates
AppLovin to 12.5.0
Google ads to 23.2.0
InMobi to 10.7.4
IronSource to 8.1.0
Mintegral to 16.7.71
Ogury to 5.8.0
PubNative to 3.0.2
Smaato to 22.6.2
SmartAdServer to 7.24.0
Tappx to 4.1.3
Vungle to 7.3.2
Optional network AmazonHB to 9.10.1
Optional network Huawei to 3.4.72.301
Optional CMP SourcePointCMP to 7.8.4
3.9.0
2024-06-26
Improvements
Enhanced the internal loading logic in AATKit to report failures instead of issuing warning logs when the Activity is unavailable.
The above enhancement fixed a bug in the AATKidGoogleMediationAdapter where failures were not reported immediately, previously being reported as timeout failures.
Enhanced the shake debug screen to include the following details:
Type of the placement.
Active frequency capping settings.
Banner auto-reload intervals.
Initial delay and remaining time.
Display of the bidder (DSP name) for the GraviteRTB marketplace.
Introduced a network option to enforce the RTBSDK close button for MRAID fullscreen ads.
Note: If the MRAID creative already includes a close button and
forceCloseButtonForMraid
is set to true, the MRAID creative will display two close buttons.
Copy
val config = AATKitConfiguration(this)
...
val networkOptions = AATKitAdNetworkOptions()
networkOptions.graviteRTBOptions = GraviteRTBOptions(false)
...
AATKit.init(config)
The
ImpressionListener
now delivers precise price information for all mediation types, for ad networks that support pricing data.
Library Updates
GraviteRTB to 1.3.0
New Libraries
Integrated the new CMP: SFBX (AppConsent) version 5.3.0. To use it, first add the needed maven repository to your list:
maven { // SFBX CMP
url "https://artifactory.datalf.chat/artifactory/app-consent-v2-release"
}
Followed by the dependency:
implementation 'com.sfbx.appconsent:appconsent-ui-v3:5.3.0'
Usage:
val cmp: CMP = CMPAppConsent(activity, "<APP_KEY>")
val managedConsent = ManagedConsent(cmp, activity, delegate)
val newConf = AATKitRuntimeConfiguration()
newConf.consent = managedConsent
AATKit.reconfigure(newConf)
3.8 Beta
3.8.0
2024-04-17
Library Updates
AppLovin to 12.4.2
AppNexus to 8.11
FacebookAds to 6.17.0.0
FeedAd to 1.6.0
InMobi to 10.6.7
IronSource to 8.0.0
Pubnative to 3.0.0
Smaato to 22.6.0
Tappx to 4.0.8
UnityAds to 4.10.0
Vungle to 7.3.1
Optional network AmazonHB to 9.9.4
Optional network Bluestack to 4.3.2
Optional network Huawei to 3.4.70.300
Optional network Kidoz to 9.1.2
Optional CMP Sourcepoint to 7.8.1
Improvements
Added "initial rules" feature, where placement can be set to use a subset of ad rules for the first load. This is intended to allow placement first load to happen faster.
Optimized initializing of Google Ads and InMobi SDKs for faster ad loading.
Changing consent state will now trigger rule download - to pick optimal set of rules for given consent setting.
3.7 Beta
3.6 Beta
3.6.1
2024-02-20
API Changes
Removed Pubnative offset options for interstitial and rewarded video formats.
Removed the deprecated PubNativeOptions from AATKitAdNetworkOptions.
Library Updates
Appnexus to 8.10
CriteoSDK to 6.0.0
GoogleAds to 22.6.0
InMobi to 10.6.3
Mintegral to 16.6.34
Ogury to 5.6.2
GraviteRTB to 1.0.4
Pubnative to 2.21.1
Smaato to 22.5.1
SmartAdServer to 7.24.0
TappX to 4.0.7
UnityAds to 4.9.2
Vungle to 7.1.0
optional network AmazonHB to 9.9.1
optional network Huawei to 3.4.69.300
optional network Kidoz to 9.0.2
optional network Superawesome to 9.3.2
optional network Teads to 5.1.4
optional CMP SourcePoint to 7.7.0
c
Added support for IronSourceNew banner ads
3.5 Beta
3.5.0
2023-12-28
New Ad Networks
Optional Ad Network SuperAwesome, supporting Banner, Fullscreen and RewardedVideo ads
It is needed to add SuperAwesome repository to main build.gradle:
maven { url "https://aa-sdk.s3-eu-west-1.amazonaws.com/android_repo" }
Additionally, add the following dependency:
implementation 'tv.superawesome.sdk.publisher:superawesome:9.3.0'
Library Updates
GraviteRTB SDK to 1.0.2.
Other Changes
Removed deprecated CMPOgury.
3.4 Beta
3.4.4
2023-11-17
Improvements
Add CCPA support.
AATKit now supports CCPA only if the CCPA consent string is found. AATKit will read and react automatically to the CCPA changes in SharedPreferences.
If both TCF and CCPA consent strings are present, the TCF settings will be used.
For more information, please visit the IAB CCPA compliance framework.
Library Updates
GraviteRTB SDK to 1.0.1.
3.4.3
2023-11-10
API Changes
Remove deprecated
AATKit.setInitialRules
. Please useAATKitConfiguration.initialRules
instead.Remove deprecated
AATKit.setRuleCachingEnabled
. Please useAATKitConfiguration.isShouldCacheRules
instead.Introduce new BannerCache delegate called
CacheStatusDelegate
representing the cache status.
/**
* Optional delegate representing the cache status.
*/
interface CacheStatusDelegate {
/**
* Will be called when the cache was empty and has been filled with at least one ad.
*/
fun cacheIsNoLongerEmpty()
/**
* Will be called when the las ad from cache has been consumed and cache became (temporarily) empty.
*/
fun cacheIsEmpty()
}
Library Updates
AppLovin to 11.11.3
AppNexus to 8.9
Facebook to 6.16.0.0
GoogleAds to 22.5.0
InMobi to 10.6.1
IronSource to 7.5.2
MintegralAds to 16.5.41
Ogury to 5.6.1
Pubnative to 2.20.0
Smaato to 22.4.0
SmartAd to 7.23.0
YOC to 4.1.1
Optional GoogleUserMessagingPlatform (CMP) to 2.1.0
Optional network AmazonHB to 9.8.7
Optional network Teads to 5.1.1
Optional network Huawei to 3.4.66.303
3.4.1
2023-10-18
New Ad Networks
Optional network Kidoz (version 8.9.9), supporting banner, fullscreen and rewarded video ads
for banners, only multisize is supported
To add Kidoz, add the following dependencies:
implementation 'net.kidoz.sdk:kidoz-android-native:8.9.9'
implementation 'org.greenrobot:eventbus:3.3.1'
Library Updates
Unity to 4.9.1.
Vungle to 7.0.0.
3.4.0
2023-09-26
Introduce a new public API
getDebugInfoObject(): AATKitDebugInfo
for obtaining the debug information that will be presented if the shake debug screen is enabled.Usage:
val debugObject = AATKit.getDebugInfoObject()
.
AATKit will not use the AndroidManifest.xml configurations anymore. Instead, you can use the new
AATKitAdNetworkOptions
object while initialising AATKit.
val config = AATKitConfiguration(this)
...
config.adNetworkOptions = AATKitAdNetworkOptions(
appNexusOptions = AppNexusOptions(5, true, false),
adMobOptions = AdMobOptions(75)
)
...
AATKit.init(config)
/**
* Allows to pass network-specific configurations to AATKit.
*/
class AATKitAdNetworkOptions(
var appNexusOptions: AppNexusOptions? = null,
var feedAdOptions: FeedAdOptions? = null,
var pubNativeOptions: PubNativeOptions? = null,
var adMobOptions: AdMobOptions? = null,
var dfpOptions: DFPOptions? = null
)
/**
* PubNative specific configurations
*/
class PubNativeOptions(
/**
* Minimum offset in seconds required before skipping an HTML Interstitial ad. Null by default.
*/
var skipOffsetForHTMLInterstitial: Int? = null,
/**
* Minimum offset in seconds required before skipping an Video Interstitial ad. Null by default.
*/
var skipOffsetForVideoInterstitial: Int? = null
)
/**
* FeedAd specific configurations
*/
class FeedAdOptions(
/**
* Desired color-int (as obtained from [android.graphics.Color.parseColor]) to be used for shutter. Default is null.
*/
var shutterColor: Int? = null,
/**
* Boolean that describes if spinner should be disabled, default is false.
*/
var disableSpinner: Boolean = false
)
/**
* AppNexus specific configuration
*/
class AppNexusOptions (
/**
* A delay in seconds after which a full-screen ad will be dismissed. Default value is null.
*/
var autoCloseTime: Int? = null,
/**
* A Boolean that describes if Banner Ad can serve a Native Ad, default is false.
*/
var supportNativeBanner: Boolean = false,
/**
* A Boolean that describes if Banner Ad can serve Video Ads, default is false.
*/
var supportVideoBanner: Boolean = false
)
/**
* AdMob specific configuration
*/
class AdMobOptions (
/**
* Maximum height for AdMob inline adaptive banners
*/
var inlineBannerMaxHeight: Int?
)
/**
* AdMob specific configuration
*/
class DFPOptions (
/**
* Maximum height for DFP inline adaptive banners
*/
var inlineBannerMaxHeight: Int?
)
Setting the banner cache retry intervals moved to the
BannerCacheConfiguration
instead of the ManifestUsage:
val conf = BannerCacheConfiguration("<PLACEMENT_NAME>", 5)
conf.retryInterval = 10
val cache = AATKit.createBannerCache(conf)
Publishers can pass the collapsible banner options (
CollapsibleBannerOptions
) to all banner placements using available APIs instead of using the Manifest declaration:
class CollapsibleBannerOptions(val position: CollapsiblePosition, val minDelayInSeconds: Int) {
constructor(position: CollapsiblePosition) : this(position, 0)
enum class CollapsiblePosition(val value: String) {
TOP("top"),
BOTTOM("bottom")
}
}
Improvements
Allow passing max height of inline adaptive Google banners (GAM and AdMob) using
AATKitAdNetworkOptions
passingAdMobOptions
orDFPOptions
instances.
val conf = AATKitConfiguration(this)
...
conf.adNetworkOptions = AATKitAdNetworkOptions(
adMobOptions = AdMobOptions(inlineBannerMaxHeight = 50),
dfpOptions = DFPOptions(inlineBannerMaxHeight = 50)
)
...
AATKit.init(conf)
AATKit now provides a completely new shake debug screen. Publishers can customise it by using the new public API
configureDebugScreen(configuration: AATDebugScreenConfiguration)
.
val aatKitDebugScreenConfiguration = AATKitDebugScreenConfiguration(R.drawable.ic_launcher, "<APP_NAME>")
AATKit.configureDebugScreen(aatKitDebugScreenConfiguration)
class AATKitDebugScreenConfiguration {
internal enum class AATKitShakeScreenLogoAlignment {
Center,
Left,
Right
}
var appLogoDrawable: Drawable? = null
private set
@DrawableRes
var appLogoFromResources: Int? = null
private set
var title: String
private set
/**
* Show bundle identifier. Default value is true
*/
var showBundleId: Boolean = true
/**
* Show test mode data. Default value is true
*/
var showTestMode: Boolean = true
/**
* Show loaded/loading ads. Default value is true
*/
var showLoadedAndLoadingAds: Boolean = true
/**
* Show available ad networks. Default value is true
*/
var showAvailableNetworks: Boolean = true
/**
* Show disabled ad networks. Default value is true
*/
var showDisabledNetworks: Boolean = true
/**
* Show removed ad networks. Default value is true
*/
var showRemovedNetworkSDKs: Boolean = true
/**
* Show unsupported ad networks. Default value is true
*/
var showUnsupportedNetworks: Boolean = true
/**
* Show extra SDKs available. Default value is true
*/
var showExtraSDKs: Boolean = true
/**
* Show information about used consent. Default value is true
*/
var showConsent: Boolean = true
/**
* Show Advertising ID. Default value is true
*/
var showAdvertisingId: Boolean = true
/**
* Logo alignment of type [AATKitShakeScreenLogoAlignment]. Default value is left
*/
internal var logoAlignment: AATKitShakeScreenLogoAlignment = AATKitShakeScreenLogoAlignment.Left
/**
* Show device type. Default value is true
*/
var showDeviceType: Boolean = true
/**
* Create an AATDebugScreenConfiguration instance.
*
* @param appLogo - App Logo, as [Drawable].
* @param title - Shake debug screen title
*/
constructor(
appLogo: Drawable,
title: String
) {
this.appLogoDrawable = appLogo
this.title = title
}
/**
* Create an AATDebugScreenConfiguration instance.
*
* @param appLogo - App Logo, as the drawable resource reference.
* @param title - Shake debug screen title
*/
constructor(
@DrawableRes appLogo: Int,
title: String
) {
this.appLogoFromResources = appLogo
this.title = title
}
}
New Ad Networks
Tappx SDK (version 4.0.4), supporting Banner, Fullscreen, and Rewarded Video formats.
3.3 Beta
3.3.1
2023-07-17
Improvements
Improved logging.
Library Updates
AppLovin to 11.10.1
AppNexus to 8.7
Criteo to 5.0.1
Facebook to 6.14.0.0
FeedAd to 1.5.5
Google ads to 22.2.0
InMobi to 10.5.7
IronSource to 7.3.1.1
Minteral to 16.4.71
Ogury to 5.6.0
Pubnative to 2.18.1
Smaato to 22.2.0
SmartAdServer to 7.21.0
Unity to 4.8.0
Vungle to 6.12.1
Optional network AmazonHB to 9.8.3
Optional network Huawei to 3.4.64.302
3.3.0
2023-06-06
API Changes
Introduce a new factory method for creating the banner cache.
Instead of calling
BannerCache(configuration: BannerCacheConfiguration)
useAATKit.createBannerCache(configuration: BannerCacheConfiguration)
.
Deprecate
AATKit.setInitialRules
. Please useAATKitConfiguration.initialRules
instead.Deprecate
AATKit.setRuleCachingEnabled
. Please useAATKitConfiguration.isShouldCacheRules
instead.Introduce a new way to Opt-out from showing the CMP
ManagedConsent can be initialized by passing a new parameter
showIfNeededSetting
showIfNeededSetting
can be one of the following:ALWAYS
: always show the CMP.NEVER
: never show the CMP. However, the publisher can still call theeditConsent
API.SERVER_SIDE_CONTROL
: showing the CMP will be based on the dashboard configurations.
It has a default value of:
serverSideControl.
Introduce new method
AATKit.isConsentOptIn()
, returning "consent opt-in status" returned by our server rules. Only returns meaningful information after the rules are downloaded.Added support for Google Collapsible Banners.
For them to work, it is necessary to add meta-data nodes in manifest, indicating desired position of collapsible banners for given placement (either "top" or "bottom"), like:
<meta-data android:name="BannerPlacementName.collapsiblePosition" android:value="bottom" />
Added support for frequency capping for Collapsible Banners.
The desired capping is set per-placement, using manifest metadata. Code sample below means that for placement named "BannerPlacementName" Collapsible Banners can be presented not more often than every 60 seconds.
<meta-data android:name="BannerPlacementName.minDelayBetweenCollapsibleBannersInSeconds" android:value="60" />
New Ad Networks
Mintegral (version 16.4.11), supporting Banner, Fullscreen and RewardedVideo ads
It is needed to add Mintegral repository to main build.gradle:
maven { url "https://dl-maven-android.mintegral.com/repository/mbridge_android_sdk_oversea" }
Integrate the new CMP: SourcePoint (version 7.1.1).
You can add it by adding the following dependency:
implementation 'com.sourcepoint.cmplibrary:cmplibrary:7.1.1'
To use it:
val configuration = AATKitConfiguration(this) val cmp = CMPSourcePoint(activity, <YourAccountID>, <YourPropertyId>, "YourPropertyName", "YourPMId") val consent = ManagedConsent(cmp, activity, this) // other configurations AATKit.init(configuration)
Removed Ad Networks
Rubicon
Improvements
Implement Frequency Capping for the banner cache.
Implement weekly and monthly frequency capping.
Enhance the logic for waterfall failure scenarios for the sticky banner placement.
Improve AATKit logs.
3.2 Beta
3.2.0
2023-03-08
If you did not add your Google appID to the Manifest until now, make sure to do so. The old declaration of AD_MANAGER_APP
will no longer work.
API Changes
Placements will pass themselves to
StatisticsListener
listener methods as a parameter called placement of type Placement. This parameter will enable the delegates to know which placement triggered the delegate method. The placement name can be checked by using the method:placement.getName()
.Changed APIs:
fun countedAdSpace(placement: Placement)
fun countedMediationCycle(placement: Placement)
fun countedRequest(placement: Placement, network: AdNetwork)
fun countedResponse(placement: Placement, network: AdNetwork)
fun countedImpression(placement: Placement, network: AdNetwork)
fun countedVimpression(placement: Placement, network: AdNetwork)
fun countedNimpression(placement: Placement, network: AdNetwork)
fun countedDirectDealImpression(placement: Placement, network: AdNetwork)
fun countedClick(placement: Placement, network: AdNetwork)
Placements will pass themselves to
ImpressionListener
listener methods as a parameter called placement of type Placement. This parameter will enable the delegates to know which placement triggered the delegate method. The placement name can be checked by using the method:placement.getName()
.Changed APIs:
fun didCountImpression(placement: Placement, impression: AATKitImpression)
Add child-directed support that enables publishers to treat their content as child-directed while requesting ads. Note: if an AdNetwork doesn't support child-directed Requests, AATKit will skip this network while requesting Ads.
Networks providing child-directed requests:
AdMmob
Google AdManager (DFP)
AdX
Digital Turbine (AdColony)
AppLovin
AppLovin MAX
Criteo SDK
Huawei
IronSource
Verve (PubNative)
Smaato
Unity
Vungle
Networks that will be skipped:
Amazon HB
Xandr (AppNexus)
Bluestack (Madvertise)
Facebook
FeedAd
InMobi
Ogury
Magnite (Rubicon)
Equativ (SmartAdServer)
Teads
YOC
API:
fun setIsChildDirected(isChildDirected: Boolean)
Usage:
AATSDK.setIsChildDirected(true)
Provide impression-level revenue data via the
AATKitImpression
objectAdd
currencyCode
andprecision
properties to theAATImpression
object.If the ad network provides impression-level revenue data, AATKit will use this information during the AATKitImpression instantiation and pass it to ImpressionListener via the
fun didCountImpression(placement: Placement, impression: AATKitImpression)
callback. Otherwise, AATKit will detect and collect the impression-level information internally and provide it to the impression delegate via the samefun didCountImpression(placement: Placement, impression: AATKitImpression)
callback.Currently, only Google Mobile Ads supports impression-level revenue data.
Introduce new banner placement type:
AutoLoadBannerPlacement
andAutoLoadMultiSizeBannerPlacement
which are based onBannerCache
. They are intended to replace bothStickyBannerPlacement
andMultiSizeBannerPlacement
hence, they have exactly the same functionality and provide the same APIs.Creating the placement:
Java:
AutoLoadBannerPlacement placement = AATKit.createAutoLoadBannerPlacement("<PLACEMENT_NAME>", BannerPlacementSize.Banner320x53);
Java:
AutoLoadMultiSizeBannerPlacement placement = AATKit.createAutoLoadMultiSizeBannerPlacement("<PLACEMENT_NAME>");
Kotlin:
val placement = AATKit.createAutoLoadBannerPlacement("<PLACEMENT_NAME>", BannerPlacementSize.Banner320x53)
Kotlin:
val placement = AATKit.createAutoLoadMultiSizeBannerPlacement("<PLACEMENT_NAME>")
Public Interfaces:
interface AutoLoadBannerPlacement : Placement {
/**
* Set the [placement listener][AutoLoadBannerPlacementListener] that will listen to ad loading and display events.
*/
var listener: AutoLoadBannerPlacementListener?
/**
* Sets the [statistics listener][AATKit.StatisticsListener] that will be notified about placement reporting events, like counted adspace, request etc.
*/
var statisticsListener: AATKit.StatisticsListener?
/**
* Sets the [impression listener][ImpressionListener] for the given placement.
*/
var impressionListener: ImpressionListener?
/**
* Enables automatic reloading of placement. Autoreloader will use reload time configured on addapptr.com account or fallback to default {@value #BANNER_DEFAULT_RELOAD_INTERVAL_IN_SECONDS} seconds.
*/
fun startAutoReload()
/**
* Disables automatic reloading of placement.
*/
fun stopAutoReload()
/**
* Returns true if there is an ad loaded for given placementId.
*
* @return True if there is an ad loaded for given placementId.
*/
fun hasAd(): Boolean
/**
* Returns placement view. Works only for banner placements.
*
* @return Placement view or null.
*/
fun getPlacementView(): View?
/**
* Sets placement default image. This image will be shown in placement when no ad is available.
*
* @param image The bitmap to set.
*/
fun setDefaultImage(image: Bitmap?)
/**
* Sets placement default image. This image will be shown in placement when no ad is available.
*
* @param resId The identifier of the resource.
*/
fun setDefaultImage(resId: Int)
/**
* Sets gravity for ads that don't fill entire placement area. Works only for banner placements.
*
* @param gravity The [android.view.Gravity] to set.
*/
fun setContentGravity(gravity: Int)
/**
* Sets the targeting information for the given placement. Information provided for placement overrides targeting information for application set by the [setTargetingInfo].
*/
var targetingInfo: Map<String, List<String>>?
/**
* Sets the content targeting url for the application. This information will be used only if no placement-specific targeting is available.
*
* @see .setContentTargetingUrl
*/
var contentTargetingUrl: String?
}
interface AutoLoadMultiSizeBannerPlacement : Placement {
/**
* Set the [placement listener][AutoLoadMultiSizeBannerPlacementListener] that will listen to ad loading and display events.
*/
var listener: AutoLoadMultiSizeBannerPlacementListener?
/**
* Sets the [statistics listener][AATKit.StatisticsListener] that will be notified about placement reporting events, like counted adspace, request etc.
*/
var statisticsListener: AATKit.StatisticsListener?
/**
* Sets the [impression listener][ImpressionListener] for the given placement.
*/
var impressionListener: ImpressionListener?
/**
* Enables automatic reloading of placement. Autoreloader will use reload time configured on addapptr.com account or fallback to default {@value #BANNER_DEFAULT_RELOAD_INTERVAL_IN_SECONDS} seconds.
*/
fun startAutoReload()
/**
* Disables automatic reloading of placement.
*/
fun stopAutoReload()
/**
* Sets the targeting information for the given placement. Information provided for placement overrides targeting information for application set by the [setTargetingInfo].
*/
var targetingInfo: Map<String, List<String>>?
/**
* Sets the content targeting url for the application. This information will be used only if no placement-specific targeting is available.
*
* @see .setContentTargetingUrl
*/
var contentTargetingUrl: String?
}
Improvements
Implement Google Mobile Ads Fluid banners.
Extend cached rules lifetime.
Throttle download rules request when failed.
Add internal custom timeout for Prebid requests (3.5 seconds).
Library Updates
AppLovin to 11.8.0.
AppNexus to 8.4.
Criteo to 4.9.1.
FeedAd to 1.5.4.
Google Play Services Ads to 21.5.0.
InMobi to 10.5.4.
IronSource to 7.2.7.
Smaato to 22.0.2.
SmartAdServer to 7.20.0.
UnityAds to 4.6.0.
YOC to 3.2.0.
Optional network AmazonHB to 9.7.0.
Optional network Huawei to 3.4.61.302.
Optional network Teads to 5.0.22.
3.1 Beta
3.1.2
2022-10-28
Updated ad networks
AppLovin to 11.5.3
AppNexus to 8.1
CriteoSDK to 4.8.1
FeedAd to 1.4.14
Google Facebook mediation adapter to 6.11.0.1
GooglePlayServicesAds to 21.3.0
InMobi to 10.5.2
IronSource 7.2.5
PubNative to 2.16.0
SmartAdServer to 7.19.1
UnityAds to 4.4.1
Vungle to 6.12.0
Optional network AmazonHB to 9.6.0
Optional network Huawei to 3.4.56.300
3.1.1
2022-10-18
Fix rare issue preventing Google (AdMob, AdX, DFP) fullscreen ads from being presented.
3.1.0
2022-10-12
Implement the “Placements initial delay” feature for all ad formats.
This feature allows publishers to delay the provision of ads for a configurable amount of seconds after the first app fresh install.
Publishers can control the initial delay for each placement using the AddApptr dashboard in the create/edit placements popup.
Provide the "supply chain object" to SmartAd Server ad requests.
Placements will pass themselves to all placements-specific listener methods as a parameter called Placement to their listeners. This parameter will enable the listeners to know which placement triggered the listener method. The placement name can be checked by using method:
placement.getName()
.Changed APIs:
public void onHaveAd(@NonNull Placement placement)
public void onNoAd(@NonNull Placement placement)
public void onPauseForAd(@NonNull Placement placement)
public void onResumeAfterAd(@NonNull Placement placement)
public void onUserEarnedIncentive(@NonNull Placement placement, @Nullable AATKitReward aatKitReward)
public void onHaveAdWithBannerView(@NonNull Placement placement, @NonNull BannerPlacementLayout bannerView)
3.0 Beta
3.0.1
2022-07-25
Move interfaces for placement listeners and consent away from AATKit class to solve issue with AndroidStudio and Java interoperability.
3.0.0
2022-07-22
First beta of AATKit 3
AATKit 3 comes with the following improvements:
New object-oriented APIs for all placement types.
Each placement now uses a separate delegate (as opposed to general delegate used by AATKit 2).
Some method names have changed for improved consistency across platforms.
To learn more about the changes, please refer to our AATKit 3 Migration Guide.
Last updated