Beta Release Notes
3.15 Beta
3.15.1
2025-10-24
New Features
AppOpen is now a separate format with separate statistics on the Gravite dashboard.
Fullscreen and banner caches now dynamically respond to frequency cap changes when new rules are downloaded.
Added a self-adjusting mechanism for banner cache size optimization.
To use the new mechanism, initialise
BannerCacheConfigurationwithout passing a fixed size and use it to create the banner cache:
val configuration = BannerCacheConfiguration("<PLACEMENT_NAME>") val bannerCache = AATKit.createBannerCache(configuration)Reduced the minimum auto-reload interval for banner and sticky banner placements to 10 seconds.
Introduced the new API for fullscreen and rewarded video placements to allow forced ad reloads (clearing currently loaded ad) when needed:
fun reload(forceLoad: Boolean): Boolean
Fullscreen and rewarded video placements now trigger the
onHaveAdlistener method if an ad is already loaded when callingstartAutoReload().Added support for Moloco bidding v4.1.1 through GraviteRTB, supporting:
Banner
Fullscreen
Rewarded Video
Updated the ad networks stop list to include only Ogury and AmazonHB when no consent is granted.
Library Updates
AppLovin to 13.4.0
AppNexus to 9.9.0
Equativ (SmartAd) to 8.5.4
FacebookAds to 6.20.0.1
Google Ads to 24.6.0
GraviteRTB to 1.9.1
InMobi to 10.8.8
Mintegral to 16.9.91
Ogury to 6.1.0
PubNative to 3.6.2
Tappx to 4.1.14
Unity Ads to 4.16.2
Vungle to 7.6.0
Optional network AmazonHB to 11.1.0
Optional network Display.io do 5.5.4
Optional network Huawei to 3.4.81.300
Optional network Kidoz to 10.1.2
Optional network Teads to 5.1.14
Optional CMP SFBX (AppConsent) to 5.6.0
Optional CMP Sourcepoint to 7.15.8
Versions of optional libraries supported by this version
AmazonHB
11.1.0
Display.io
5.5.4
Huawei Ads
3.4.81.300
Kidoz
10.1.2
Superawesome
9.4.0
Teads
5.1.14
Google CMP (User Messaging Platform)
3.2.0
Sourcepoint CMP
7.15.8
SFBX CMP (AppConsent)
5.6.0
3.14 Beta
3.14.0
2025-07-25
New Features
Integrate the UTIQ SDK to support privacy-first user identification.
Implement automatic generation of publisher-provided IDs (PPID). This improves tracking.
PPID automatic generation is disabled by default. To enable it:
val configuration = AATKitConfiguration(appInstance) configuration.useAutomaticPPID = true AATKit.init(configuration)Implement a dynamic reload interval for failed waterfall attempts in the banner cache. For each consecutive failure, progressively increase the retry interval to reduce request frequency and minimise device strain.
Implement the Global Placement ID (GPID), a consistent identifier used to uniquely track and identify individual ad placements.
AATKit creates an identifier for each placement.
You can pass a specific identifier per request to the infeed banner placement:
val request = BannerRequest(null) request.gpidExtension = "<IDENTIFIER>" // request infeed banner adAATKit will forward the specified GPID to networks that support it — currently Gravite RTBSDK and Xandr (AppNexus).
Deprecations
StickyBannerPlacementis deprecated and will be removed in a future release. Please useAutoLoadBannerPlacementas its replacement.MultiSizeBannerPlacementis deprecated and will be removed in a future release. Please useAutoLoadMultiSizeBannerPlacementas its replacement.
Removed Libraries
CriteoSDK
Smaato
Library Updates
AppLovin to 13.3.1
AppNexus to 9.6.0
Equativ (SmartAdServer) to 8.5.1
Google Ads to 24.4.0
GraviteRTB to 1.8.2
IronSource to 8.9.1
Mintegral to 16.9.81
Prebid to 3.0.2
PubNative to 3.6.0
Tappx to 4.1.13
UnityAds to 4.15.1
optional network display.io to 5.5.1
optional network Kidoz to 10.0.4
optional network Teads to 5.1.13
optional CMP sfbx to 5.5.6
optional CMP SourcePoint to 7.15.1
Versions of optional libraries supported by this version
AmazonHB
11.0.1
Display.io
5.5.1
Huawei Ads
3.4.78.301
Kidoz
10.0.4
Superawesome
9.4.0
Teads
5.1.13
Google CMP (User Messaging Platform)
3.2.0
Sourcepoint CMP
7.15.1
SFBX CMP (AppConsent)
5.5.6
3.13 Beta
3.13.3
2025-05-28
Notice
Due to update of Google Play Services ads, your project may now need core library desugaring to be enabled to build. Please follow the linked documentation in case of issues.
Improvements
Redesigned the content layout of the shake-debug email for better readability.
Added new configuration options to
AATDebugScreenConfigurationfor enhanced control over the debug screen:showDebugLogsToggle: Toggles the display of debug logs. (Default: true)showDeviceFilteredRulesToggle: Toggles the display of device-filtered rules. (Default: true)showCloseButton: Toggles the display of the close button. (Default: true)
Library Updates
AppLovin to 13.2.0
FacebookAds to 6.20.0.0
FeedAd to 1.7.1
Google Ads to 24.3.0
GraviteRTB to 1.7.3
InMobi to 10.8.3
IronSource to 8.8.0
Mintegral to 16.9.71
Equativ (SmartAdServer) to 8.4.0
Smaato to 22.7.2
Tappx to 4.1.11
Unity to 4.14.2
Vungle to 7.5.0
optional network AmazonHB to 11.0.0
optional network display.io to 5.4.9
optional network Huawei to 3.4.78.301
optional network Teads to 5.1.12
optional CMP Google User Messaging Platform to 3.2.0
optional CMP SourcePoint to 7.13.0
Removed Libraries
AppLovinMAX has been removed.
Fixes
Fixed an issue with muting of rewarded video ads
Versions of optional libraries supported by this version
AmazonHB
11.0.0
Display.io
5.4.9
Huawei Ads
3.4.78.301
Kidoz
9.1.2
Superawesome
9.4.0
Google CMP (User Messaging Platform)
3.2.0
Sourcepoint CMP
7.13.0
SFBX CMP (AppConsent)
5.5.4
3.13.2
2025-05-15
Improvements
Introduced new API in
BannerRequestallowing to perform dynamic ad key replacement for infeed banner ads.This feature is only intended for very specific use cases. Please contact your Account Manager before using it.
It replaces placeholders entered in curly brackets (
{}) in ad network key or extraInfo part to provided mapping value, for example:adId
1234:{key1}-{anotherKey}would be transformed to1234:value1-anotherValue
Implemented handling of Xandr (AppNexus) memberId:inventoryCode type of ad keys.
Added creativeId information for Verve (PubNative) ads to debug-shake screen.
Library Updates
Xandr (AppNexus) to 9.5.0
3.13.1
2025-05-09
Improvements
Added support for GraviteRTB Rewarded Video ads format.
Library Updates
GraviteRTB to 1.7.1
3.12 Beta
3.12.1
2025-02-19
API changes
Removed AATKit.setPublisherProvidedId(publisherProvidedId: String) method. Please use newly introduced UserTargeting to pass this identifier.
Improvements
Provide user targeting API and pass it to ad networks.
setUserTargeting(userTargeting: AATKitUserTargeting)Usage:
Provide default consent implementation where TCF and CCPA will be checked if no specific Consent is used.
Improve consent handling for non-IAB networks in non-EU countries when ManagedConsent is used.
New Libraries
Implemented new optional Display.IO ad network, which includes Interscroller, Classic banners (320x50, 300x250) and inline banners.
To use it, first add the needed maven repository to your list:
Followed by the dependency:
Library Updates
GraviteRTB to 1.6.0
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:
Retrieve the creative history for a placement:
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
AATAdInfoobject across multiple ad formats, including Fullscreen, Rewarded, Native Ads, and Infeed Banners:Fullscreen/Rewarded Video:
Native Ads:
Infeed Banners:
The
AATAdInfoclass provides detailed price information:
Added support for passing the user ID to ad networks for server-side verification of rewarded videos.
Usage:
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
AATKitImpressionobject 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
forceCloseButtonForMraidis set to true, the MRAID creative will display two close buttons.
The
ImpressionListenernow 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:
Followed by the dependency:
Usage:
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.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.initialRulesinstead.Remove deprecated
AATKit.setRuleCachingEnabled. Please useAATKitConfiguration.isShouldCacheRulesinstead.Introduce new BannerCache delegate called
CacheStatusDelegaterepresenting the cache status.
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.0
2023-09-26
Introduce a new public API
getDebugInfoObject(): AATKitDebugInfofor 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
AATKitAdNetworkOptionsobject while initialising AATKit.
Setting the banner cache retry intervals moved to the
BannerCacheConfigurationinstead of the ManifestUsage:
Publishers can pass the collapsible banner options (
CollapsibleBannerOptions) to all banner placements using available APIs instead of using the Manifest declaration:
Improvements
Allow passing max height of inline adaptive Google banners (GAM and AdMob) using
AATKitAdNetworkOptionspassingAdMobOptionsorDFPOptionsinstances.
AATKit now provides a completely new shake debug screen. Publishers can customise it by using the new public API
configureDebugScreen(configuration: AATDebugScreenConfiguration).
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.initialRulesinstead.Deprecate
AATKit.setRuleCachingEnabled. Please useAATKitConfiguration.isShouldCacheRulesinstead.Introduce a new way to Opt-out from showing the CMP
ManagedConsent can be initialized by passing a new parameter
showIfNeededSettingshowIfNeededSettingcan be one of the following:ALWAYS: always show the CMP.NEVER: never show the CMP. However, the publisher can still call theeditConsentAPI.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:
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.
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:
Integrate the new CMP: SourcePoint (version 7.1.1).
You can add it by adding the following dependency:
To use it:
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
StatisticsListenerlistener 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
ImpressionListenerlistener 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
AATKitImpressionobjectAdd
currencyCodeandprecisionproperties to theAATImpressionobject.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:
AutoLoadBannerPlacementandAutoLoadMultiSizeBannerPlacementwhich are based onBannerCache. They are intended to replace bothStickyBannerPlacementandMultiSizeBannerPlacementhence, 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:
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