Beta Release Notes

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

2024-02-23

  • Update GraviteRTB to 1.1.0

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

2024-02-02

New Ad Networks

  • Integrate the new ad network IronSourceNew using instanceIDs (Interstitial / Rewarded Videos).

    • Version 7.5.1

Removed Ad Networks

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

Library Updates

  • GraviteRTB SDK to 1.0.3.

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 use AATKitConfiguration.initialRules instead.

  • Remove deprecated AATKit.setRuleCachingEnabled. Please use AATKitConfiguration.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.2

2023-10-25

New Ad Networks

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

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

Improvements

  • Allow passing max height of inline adaptive Google banners (GAM and AdMob) using AATKitAdNetworkOptions passing AdMobOptions or DFPOptions 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) 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.

3.2 Beta

3.2.3

2023-05-16

Fixes

  • Fix timeout handling for Prebid requests.

3.2.2

2023-04-17

Changes

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

Fixes

  • Fixed ad key parsing for InMobi Fullscreen and Rewarded Video ads.

3.2.1

2023-03-22

Fixes

  • Fix an issue with Google impression-level revenue data where the price was passed as the single impression price, not the CPM.

Library Updates

  • SmartAdServer to 7.20.2.

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 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 type: AutoLoadBannerPlacement and AutoLoadMultiSizeBannerPlacement which are based on BannerCache. They are intended to replace both StickyBannerPlacement and MultiSizeBannerPlacement 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.5

2022-11-24

  • Fixed potential crash in optional AmazonHB network.

3.1.4

2022-11-18

  • Updated FeedAd to 1.5.2.

  • Fixed issue with Vungle banner implementation.

3.1.3

2022-11-09

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

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