Release Notes

3.8

3.8.1

2024-04-26

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.

  • Change in Google Mediation Adapter - allow all banner sizes if Google banner size (like for example "adaptive") cannot be matched to specific AATKit banner size.

Fixes

  • Fixed issue where some information was missing from Google Bidding signals

3.7

3.7.7

2024-04-11

  • Updated Mintegral to 16.6.71.

3.7.6

2024-04-04

  • Updated GraviteRTB to 1.1.4 (which fixes an issue with the child-directed handling - COPPA), migrating to Maven distribution. New repository is now required:

        maven { //GraviteRTB repository
            url 'https://android-sdk-rtb.gravite.net/maven'
        }
3.7.5

2024-03-28

Library Updates

  • GoogleAds to 23.0.0

  • Optional GoogleUserMessagingPlatform (CMP) to 2.2.0

Other changes

  • GraviteRTB is now treated as family-safe network

3.7.4

2024-03-12

  • Update GraviteRTB to 1.1.2

3.7.3

2024-03-11

  • Rollback SmartAdServer to 7.23.1

3.7.2

2024-03-08

API Changes

  • Added new ManagedConsent.showIfNeededOrRejected method to re-ask users that rejected consent

    • If you would like to periodically ask again users that rejected consent, simply replace your old showIfNeeded calls with the new method. Read more here.

Library Updates

  • GraviteRTB to 1.1.1

3.7.1

2024-03-05

Fixes

  • Fix impression counting for GraviteRTB fullscreen ads.

3.7.0

2024-02-29

  • Update GraviteRTB to 1.1.0

3.6

3.6.1

2024-02-27

API Changes

  • Removed Pubnative offset options for interstitial and rewarded video formats.

    • Removed the deprecated PubNativeOptions from AATKitAdNetworkOptions.

New Ad Networks

  • Integrated new ad network IronSourceNew using instanceIDs, supporting Banner, Interstitial and Rewarded Video ads.

    • Version 7.5.1

Removed Ad Networks

  • Removed the old IronSource integration (Interstitial / Rewarded Videos).

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

3.5

3.5.4

2024-01-22

  • Used Java 8 for building the library.

3.5.3

2024-01-18

Additional repository

It is now needed to add SmartAdServer repository to main build.gradle:

maven { url 'https://packagecloud.io/smartadserver/android/maven2' } // SmartAdServer repository

Library Updates

  • AppLovin to 12.1.0.

  • Ironsource to 7.7.0.

  • optional network AmazonHB to 9.8.8.

3.5.2

2024-01-17

Removed Ad Networks

  • AdColony

3.5.1

2024-01-16

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.

Fixes

  • Fixed issue where debug-shake screen sometimes displayed with white text.

Other Changes

  • Removed deprecated CMPOgury.

3.4

3.4.8

2023-12-21

Fixes

  • Fixed issue with YOC fullscreen key parsing.

3.4.7

2023-12-19

Library Updates

  • Mintegral SDK to 16.5.91. As Mintegral is now TCF-compliant, make sure it is included in your CMP configurations.

3.4.6

2023-12-08

Fixes

  • Observe the CCPA consent string in SharedPreferences even if the managed consent is used.

  • Fix debug-shake screen handling for apps using themes not descending from AppCompat themes.

3.4.5

2023-12-05

API Changes

  • Ogury CMP handling is now deprecated, and will be removed in the future.

  • 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)
  • The new AATKitAdNetworkOptions now allow also to pass max height of inline adaptive Google banners (GAM and AdMob) (using AdMobOptions or DFPOptions instances).

  • 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().

  • Remove deprecated AATKit.setInitialRules. Please use AATKitConfiguration.initialRules instead.

  • Remove deprecated AATKit.setRuleCachingEnabled. Please use AATKitConfiguration.isShouldCacheRules instead.

  • Introduce new BannerCache delegate called CacheStatusDelegate representing the cache status.

  • Setting the banner cache retry intervals moved to the BannerCacheConfiguration instead of the Manifest

    • Usage:

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")
    }
}

New Ad Networks

  • GraviteRTB SDK (version 1.0.1) supporting banner and fullscreen formats.

  • Tappx (version 4.0.4), supporting Banner, Fullscreen, and Rewarded Video formats.

  • 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

  • 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

  • Unity to 4.9.1

  • Vungle to 7.0.0

  • YOC to 4.1.2

  • Optional GoogleUserMessagingPlatform (CMP) to 2.1.0

  • Optional network AmazonHB to 9.8.7

  • Optional network Huawei to 3.4.66.303

  • Optional network Teads to 5.1.1

Improvements

  • AATKit now provides a completely new shake debug screen. Publishers can customise it by using the new public API configureDebugScreen(configuration: AATKitDebugScreenConfiguration).

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

3.3

3.3.9

2023-11-07

Fixes

  • Fix an issue with impression level revenue calculation for Google ads (used for Impression Listener)

3.3.8

2023-10-18

Library Updates

  • Unity to 4.9.1.

3.3.7

2023-10-17

Library Updates

  • Unity to 4.9.0.

  • Vungle to 7.0.0.

3.3.6

2023-09-12

Library Updates

  • FeedAd to 1.5.8.

3.3.5

2023-09-05

Library Updates

  • Verve (Pubnative) to 2.19.0

3.3.4

2023-08-18

Library Updates

  • Optional Sourcepoint CMP to 7.2.8

3.3.3

2023-08-17

Fixes

  • Fix an issue with method AATKit.isConsentOptIn() not being visible from Java code.

3.3.2

2023-08-08

API Changes

  • Introduce a new factory method for creating the banner cache.

    • Instead of calling BannerCache(configuration: BannerCacheConfiguration) use AATKit.createBannerCache(configuration: BannerCacheConfiguration).

  • Deprecate AATKit.setInitialRules. Please use AATKitConfiguration.initialRules instead.

  • Deprecate AATKit.setRuleCachingEnabled. Please use AATKitConfiguration.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 the editConsent 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.

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

    • From now on Ogury requires their repository to be added to the list:

      maven {
          url 'https://maven.ogury.co'
      }
  • 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.2

3.2.4

2023-06-15

Fixes

  • Fix an issue with the autoload banner placement where ad spaces were not counted properly in case of waterfall failure.

3.2.3

2023-06-05

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 AdNetwork doesn't support child-directed Requests, AATKit will skip this network while requesting Ads.

    • API: fun setIsChildDirected(isChildDirected: Boolean)

    • Usage: AATSDK.setIsChildDirected(true)

    • For more information, please check the child-directed documentation.

  • Provide impression-level revenue data via the AATKitImpression object

    • Add currencyCode and precision properties to the AATImpression 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 same fun didCountImpression(placement: Placement, impression: AATKitImpression) callback.

    • Currently, only Google Mobile Ads supports impression-level revenue data.

  • Introduce new banner placement types: AutoLoadBannerPlacement and AutoLoadMultiSizeBannerPlacement which are based on BannerCache. They are intended to replace both StickyBannerPlacement and MultiSizeBannerPlacement hence, they have precisely the same functionality and provide the same APIs.

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

  • Updated logic for automatically disabling networks on devices without Google Play Services.

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

  • 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

3.1.11

2023-03-21

Library Updates

  • SmartAdServer to 7.20.2.

3.1.10

2023-03-03

  • Fix potential NPE in AppNexus native ad.

  • Change supply chain object handling for Equativ (SmartAdServer).

3.1.9

2023-01-18

  • Update PubNative (Verve) to 2.17.0.

3.1.8

2023-01-03

  • Update InMobi to 10.5.3.

3.1.6

2022-12-15

First stable version of 3.1

New ad networks

  • Optional network Teads (version 5.0.21), supporting video banner ads

Updated ad networks

  • AppLovin to 11.6.0

  • AppNexus to 8.2 - as this update requires a new identifier for initialising the network SDK, make sure to have network keys updated with memberId in the extraInfo field.

  • CriteoSDK to 4.8.1

  • FeedAd to 1.5.3

  • Google Facebook mediation adapter to 6.12.0.0

  • Google Play Services Ads to 21.3.0

  • InMobi to 10.5.2

  • Ogury to 5.4.0

  • IronSource 7.2.5

  • PubNative to 2.16.1

  • Prebid SDK (Header Bidding solution used together with DFP) to 2.0.4.

  • SmartAdServer to 7.19.1

  • UnityAds to 4.4.1

  • Vungle to 6.12.0

  • Optional network AmazonHB to 9.6.2

  • Optional network Bluestack to 4.1.4

  • Optional network Huawei to 3.4.56.300

Other changes

  • Xandr (APPNEXUS) update requires a new identifier for initialising the network SDK, make sure to have network keys updated with memberId in the extraInfo field.

  • Updated optional dependency used with CMPGoogle to user-messaging-platform:2.0.0.

  • 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

3.0.6

2022-10-18

  • Fix rare issue preventing Google (AdMob, AdX, DFP) fullscreen ads from being presented.

3.0.5

2022-10-11

Bluestack (Madvertise) is now on optional library

3.0.4

2022-09-23

  • Fixed issues with setting of sticky banner placement autoreload interval.

3.0.3

2022-09-19

3.0.2

2022-09-08

The first stable version 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 the general delegate used by AATKit 2), informing about placement events like ad load, pause for ad etc.

  • Some method names have changed for improved consistency across platforms.

  • Report new KPI mediationCycles

  • Report new dimension consent type

  • Report new dimension consent value

  • Request rules with consent value

  • Add a new API for passing PublisherProvidedId to Ad Networks that support it (DFP and DFPDirect)

    • AATKit.setPublisherProvidedId(String publisherProvidedId)

  • Some method names have changed for improved consistency across platforms.

  • Enable Ad Networks SDKs debug logs by server config.

  • Merging server-side keywords with the SDK global keywords.

Updates

  • Update PubNative to 2.15.1

  • Update Xandr (APPNEXUS) SDK to 8.0.1 - as this update requires a new identifier for initialising the network SDK, make sure to have network keys updated with memberId in the extraInfo field.

To migrate from AATKit 2, please refer to our AATKit 3 Migration Guide.

Last updated