Wiki

Clone wiki

showcase-android / Changelogs

This documentation is deprecated

Please see here for up-to-date documentation.

Version 3.2.2 beta - 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.

Version 3.2.1 beta - 2023-03-22

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

Version 3.1.11 - 2023-03-21

Library Updates

  • SmartAdServer to 7.20.2.

Version 2.37.1 - 2023-03-21

Library Updates

  • SmartAdServer to 7.20.2.

Version 3.2.0 beta - 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 GoogleMobileAds 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 GoogleMobileAds 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.
  • GooglePlayServicesAds 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.

Version 2.37.0 - 2023-03-03

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.

  • Fix potential NPE in AppNexus native ad.

Updated ad networks

  • AppLovin to 11.8.0.
  • AppNexus to 8.4.
  • Criteo to 4.9.1.
  • FeedAd to 1.5.4.
  • GooglePlayServicesAds 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.

Version 3.1.10 - 2023-03-03

  • Fix potential NPE in AppNexus native ad.
  • Change supply chain object handling for Equativ (SmartAdServer).

Version 3.1.9 - 2023-01-18

  • Update PubNative (Verve) to 2.17.0.

Version 2.36.9 - 2023-01-18

  • Update PubNative (Verve) to 2.17.0.

Version 3.1.8 - 2023-01-03

  • Update InMobi to 10.5.3.

Version 2.36.8 - 2023-01-03

  • Update InMobi to 10.5.3.

Version 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.1
  • GooglePlayServicesAds 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)

Version 2.36.7 - 2022-12-13

First stable version of 2.36

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

Version 3.1.5 (beta) - 2022-11-24

  • Fixed potential crash in optional AmazonHB network.

Version 2.36.6 (beta) - 2022-11-24

  • Fixed potential crash in optional AmazonHB network.

Version 3.1.4 (beta) - 2022-11-18

  • Updated FeedAd to 1.5.2.
  • Fixed issue with Vungle banner implementation.

Version 2.36.5 (beta) - 2022-11-17

  • Updated FeedAd to 1.5.2.
  • Fixed issue with Vungle banner implementation.

Version 3.1.3 (beta) - 2022-11-09

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

Version 2.36.4 (beta) - 2022-11-09

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

Version 3.1.2 (beta) - 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

Version 2.36.3 (beta) - 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

Version 3.1.1 (beta) - 2022-10-18

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

Version 3.0.6 - 2022-10-18

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

Version 2.36.2 (beta) - 2022-10-18

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

Version 2.35.5 - 2022-10-18

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

Version 3.1.0 (beta) - 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)

Version 3.0.5 - 2022-10-11

Bluestack (Madvertise) is now on optional library

  • Bluestack (Madvertise) has been removed from standard integration, and needs to be added manually to be used. See here for instructions.

Version 2.36.1 (beta) - 2022-10-11

Bluestack (Madvertise) is now on optional library

  • Bluestack (Madvertise) has been removed from standard integration, and needs to be added manually to be used. See here for instructions.

Version 2.35.4 - 2022-10-11

Bluestack (Madvertise) is now on optional library

  • Bluestack (Madvertise) has been removed from standard integration, and needs to be added manually to be used. See here for instructions.

Version 3.0.4 - 2022-09-23

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

Version 3.0.3 - 2022-09-19

  • Created special "family-safe" distribution. Please see here to learn more.

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

Version 2.36.0 (beta) - 2022-09-06

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

Version 3.0.1 (beta) - 2022-07-25

  • Move interfaces for placement listeners and consent away from AATKit class to solve issue with AndroidStudio and Java interoperability.

Version 3.0.0 (beta) - 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.

Version 2.35.3 - 2022-06-29

First stable version of 2.35

New ad network

  • Ironsource (SDK version 7.2.2.1), supporting fullscreen and rewarded video ads.

Additional repository

As Ironsource is available through their managed Maven repository, it is necessary to add it to your repositories list by editing your main build.gradle file:

    ...other repositories
    maven {
        url 'https://android-sdk.is.com/'
    }

Updated ad network SDKs

  • AdColony to 4.8.0.
  • AppLovin to 11.4.4.
  • AppNexus to 7.22.
  • Facebook to 6.11.0.0.
  • FeedAd to 1.4.12.
  • GooglePlayServicesAds to 21.0.0.
  • InMobi to 10.0.7.
  • ironSource to 7.2.2.1.
  • Ogury to 5.3.0.
  • Pubnative to 2.13.1.
  • Smaato to 21.8.3.
  • SmartAdServer to 7.18.0.
  • UnityAds to 4.2.1.
  • Vungle to 6.11.0.
  • YOC to 2.1.0.

  • Optional network AmazonHB to 9.5.4.

New features

  • Support for new identifier AppSetId, used if advertising ID cannot be obtained.
  • Support for banner size 320x50.
  • Native ads support for AppLovin MAX. See the special requirements here.

Changes

  • Placement name no longer allows leading nor trailing whitespaces.
  • Min Android API version changed to 21.
  • Manual integration is no longer supported. Publishers can integrate AATKit using Maven.

Version 2.34.12 - 2022-06-22

  • Updated Smaato to 21.8.3.

Version 2.34.11 - 2022-06-21

  • Fixed potential NPE for native ads.

Version 2.34.10 - 2022-06-08

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

Version 2.35.2 (beta) - 2022-05-17

  • Fix from latest stable.

Version 2.34.9 - 2022-05-17

  • Fixed potential NPE in VungleBanner.

Version 2.35.1 (beta) - 2022-05-13

  • Changes from last stable.
  • Added RTA support for YOC.

Version 2.34.7 - 2022-05-11

  • Fix issue with optional network AmazonHB not firing impression URL.
  • Update optional network HuaweiAds to 3.4.54.300.
    • When updating, please note that also the name of the library changed.
  • Implement passing of TCF2 consent string to HuaweiAds.

Version 2.35.0 (beta) - 2022-04-29

New ad network

  • Ironsource (SDK version 7.2.0), supporting fullscreen and rewarded video ads.

Additional repository

As Ironsource is available through their managed Maven repository, it is necessary to add it to your repositories list by editing your main build.gradle file:

    ...other repositories
    maven {
        url 'https://android-sdk.is.com/'
    }

New features

  • Support for new identifier AppSetId, used if advertising ID cannot be obtained.
  • Support for banner size 320x50.

Changes

  • Placement name no longer allows leading nor trailing whitespaces.
  • Manual integration is no longer supported. Publishers can integrate AATKit using Maven.

Version 2.34.6 - 2022-04-28

  • Use default skip offset of 5s for PubNative fullscreen ads.
  • Fix passing of location data for Google native ads and InMobi ads if TCF2 consent string is used.

Version 2.34.5 - 2022-04-26

  • Removed Yandex.

Version 2.34.4 - 2022-04-14

  • Updated SmartAdServer to 7.17.0.
  • Removed MoPub.

Version 2.34.3 - 2022-04-05

  • Fixed handling of DFP banner keys when ad sizes array is used.

Version 2.34.2 - 2022-03-17

  • Fixed rare NPE in AdLoader.

Version 2.34.1 - 2022-03-16

First stable version of 2.34

New ad network, Network Formats

New ad networks

  • DFPDirect (Banners/Fullscreen/RewardedVideo/NativeAds)
  • AppLovin MAX v.11.1.0 (Banners/Fullscreen/RewardedVideo)
    • It is highly recommended to enable AppLovin Ad Review, see link for more instructions. If you are using AddApptr-provided AppLovin account, you should use 1Tpoa041koqEJfUi7aGU6LUO6wUNkt3RDPdQsHUzFqK1NPxT1zOXzfQnOOvg9I4DxRi9hfH4tIR_kQGX0A2XI0 as Ad Review key.
  • Vungle v.6.10.3 (Banners/Fullscreen/RewardedVideo)

New ad formats

  • Added support for PubNative native ads

Updated ad network SDKs

  • AppLovin to 11.2.2
  • AppNexus to 7.20
  • Bluestack to 4.0.4
  • CriteoSDK to 4.6.1
  • FeedAd to 1.4.9
  • Google Facebook mediation adapter to 6.8.0.0
  • GooglePlayServicesAds to 20.6.0
  • InMobi to 10.0.3
  • Ogury to 5.2.0
  • PubNative to 2.11.1
  • SmartAdServer to 7.15.1
  • UnityAds to 4.0.1
  • YOC to 2.0.0

  • Optional network Huawei to 3.4.51.300

  • Optional network AmazonHB to 9.4.2
  • Optional network Yandex to 4.5.0

New features

  • Header Bidding for DFP, using Prebid SDK v.1.13.1 (Banners/Fullscreen/RewardedVideo).
  • Google AdMob custom events, allowing publishers integrating AdMob directly to use also AATKit ads. See here for more details.

Version 2.33.6 - 2022-03-02

  • Updated GooglePlayServicesAds to 20.5.0.

Version 2.34.0 (beta) - 2022-02-28

New ad network, Network Formats

  • DFPDirect (Banners/Fullscreen/RewardedVideo/NativeAds)
  • AppLovin MAX v.11.1.0 (Banners/Fullscreen/RewardedVideo)
    • It is highly recommended to enable AppLovin Ad Review, see link for more instructions. If you are using AddApptr-provided AppLovin account, you should use 1Tpoa041koqEJfUi7aGU6LUO6wUNkt3RDPdQsHUzFqK1NPxT1zOXzfQnOOvg9I4DxRi9hfH4tIR_kQGX0A2XI0 as Ad Review key.
  • Vungle v.6.10.3 (Banners/Fullscreen/RewardedVideo)

  • Added support for PubNative native ads

Updated network SDKs

  • AppLovin to 11.1.0
  • AppNexus to 7.19.1
  • GooglePlayServicesAds to 20.5.0.
  • PubNative to 2.11.0
  • Smaato to 21.6.7.

New features

  • Header Bidding for DFP, using Prebid SDK v.1.13.1 (Banners/Fullscreen/RewardedVideo).
  • Introduce Google AdMob custom events
    • Introduce a new AddApptr SDK (AATKitAdmobAdapter) that implements AdMob custom events (Banners/Fullscreen/RewardedVideo/NativeAd)
    • How AAtKitAdmobAdapter works:
      • Publishers must prepare their AdMob dashboard adding custom events to their mediation
      • AATKitAdmobAdapter Implements AdMob custom events delegates
      • AATKitAdmobAdapter internally calls AATKit whenever GoogleMobileAds asks for an ad request (that happens when the publisher request an ad through GoogleMobileAds)
      • When AATKit responds, AATKitAdmobAdapter notifies the GoogleMobileAds with the request result using the AdMob custom events delegate methods
    • AATKitAdmobAdapter integration steps:
      1. In the AdMob dashboard, click on mediation on the left menu
      2. Create a new mediation for each ad format (Don't forget to choose the proper ad unit that you are using in your application in the GoogleMobileAds integration)
      3. Open the newly created mediation and add a custom event
      4. Edit the custom event and add the proper class name from the following:
        • Banner class name: com.intentsoftware.addapptr.internal.googleadapter.AddapptrEventBanner
        • Interstitial class name: com.intentsoftware.addapptr.internal.googleadapter.AddapptrEventInterstitial
        • Rewarded video class name: com.intentsoftware.addapptr.internal.googleadapter.AddapptrEventRewarded
        • Native ads class name: com.intentsoftware.addapptr.internal.googleadapter.AddapptrEventNativeAd
      5. Integrate with GoogleMobileAds different ad formats following their documentation

Version 2.33.6 - 2022-02-09

  • Updated PubNative to 2.11.0.

Version 2.33.5 - 2021-12-22

First stable version of 2.33

Impression level information

It is now possible to set an optional impression listener for each placement. For each impression counted by AddApptr, the listener will be informed about impression details like banner size, ad network, network key, mediation type, if the impression comes from a direct deal, and price (currency: MAYO=EUR, Auction=USD, Waterfall=price not available). To use it, set the listener using one of the following methods (depending on placement type):

  • AATKit.setImpressionListener(int placementId, ImpressionListener impressionListener) for Sticky Banner, Fullscreen, Native Ad or Rewarded Video placements
  • AATKit.setImpressionListener(BannerPlacement bannerPlacement, ImpressionListener impressionListener) for Infeed Banner placement
  • bannerCache.setImpressionListener(ImpressionListener impressionListener) for Banner Cache (called on your instance of the cache)

New network

  • FeedAd (SDK version 1.4.7), supporting banner, fullscreen and rewarded video.

Updated network SDKs

  • AdColony to 4.6.5.
  • AppLovin to 10.3.4.
  • AppNexus to 7.18.
  • CriteoSDK to 4.5.0.
  • Google Facebook mediation adapter to 6.7.0.0.
  • GooglePlayServicesAds to 20.4.0.
  • InMobi to 10.0.1.
  • Ogury to 5.1.0.
  • PubNative to 2.8.1.
  • Smaato to 21.6.7.

  • Optional network AmazonHB to 9.2.1.

  • Optional network HuaweiAds to 3.4.47.302.
  • Optional network Yandex to 4.4.0.

Other new features

  • Optional network HuaweiAdsLite dependency can be replaced with HuaweiAds - supporting also phones from other manufacturers. To use it, add the following dependencies:
    implementation 'com.huawei.hms:ads-identifier:3.4.47.302'
    implementation 'com.huawei.hms:ads:3.4.47.302'
  • Implemented reporting for Direct Deal impressions.

  • Added support for new Google (AdMob, AdX, DFP) banner format: inline adaptive banner

  • Added an option to set shutter colour for FeedAd banner. To use it, add meta-data to AndroidManifest like:

    <meta-data android:name="com.intentsoftware.addapptr.feedad_shutter_colour" android:value="#000000"/>
    
    Allowed formats for colour:

    • #RRGGBB
    • #AARRGGBB
  • Added an option to disable spinner for FeedAd banner. To use it, add meta-data to AndroidManifest like:
    <meta-data android:name="com.intentsoftware.addapptr.feedad_disable_spinner" android:value="true"/>
    
  • Added an option to set minimum amount of seconds until the HTML can be skipped for PubNative fullscreen. To use it, add meta-data to AndroidManifest like:
    <meta-data android:name="com.intentsoftware.addapptr.pubnative_offset_secs_HTML_Interstitial" android:value="5"/>
    
  • Added an option to set minimum amount of seconds until the video can be skipped for PubNative fullscreen. To use it, add meta-data to AndroidManifest like:
    <meta-data android:name="com.intentsoftware.addapptr.pubnative_offset_secs_video_interstitial" android:value="10"/>
    
  • Added an option to enable native banner content for AppNexus banner. To use it, add meta-data to AndroidManifest like:
    <meta-data android:name="com.intentsoftware.addapptr.use_appnexus_native_banners" android:value="true"/>
    

Version 2.33.4 (beta) - 2021-11-30

  • AATKitImpression now provides two new APIs:
    • getAdNetworkName() - return the network name
    • getMediationTypeName() - return the the mediation type
  • Added an option to set shutter colour for FeedAd banner. To use it, add meta-data to AndroidManifest like:
    <meta-data android:name="com.intentsoftware.addapptr.feedad_shutter_colour" android:value="#000000"/>
    
    Allowed formats for colour:
    • #RRGGBB
    • #AARRGGBB
  • Added an option to disable spinner for FeedAd banner. To use it, add meta-data to AndroidManifest like:
    <meta-data android:name="com.intentsoftware.addapptr.feedad_disable_spinner" android:value="true"/>
    
  • Added an option to set minimum amount of seconds until the HTML can be skipped for PubNative fullscreen. To use it, add meta-data to AndroidManifest like:
    <meta-data android:name="com.intentsoftware.addapptr.pubnative_offset_secs_HTML_Interstitial" android:value="5"/>
    
  • Added an option to set minimum amount of seconds until the video can be skipped for PubNative fullscreen. To use it, add meta-data to AndroidManifest like:
    <meta-data android:name="com.intentsoftware.addapptr.pubnative_offset_secs_video_interstitial" android:value="10"/>
    
  • Added an option to enable native banner content for AppNexus banner. To use it, add meta-data to AndroidManifest like:
    <meta-data android:name="com.intentsoftware.addapptr.use_appnexus_native_banners" android:value="true"/>
    

Updated network SDKs

  • FeedAd to 1.4.7.
  • PubNative to 2.8.1.

Version 2.32.6 - 2021-11-30

  • Added an option to set minimum amount of seconds until the HTML can be skipped for PubNative fullscreen. To use it, add meta-data to AndroidManifest like:
    <meta-data android:name="com.intentsoftware.addapptr.pubnative_offset_secs_HTML_Interstitial" android:value="5"/>
    
  • Added an option to set minimum amount of seconds until the video can be skipped for PubNative fullscreen. To use it, add meta-data to AndroidManifest like:
    <meta-data android:name="com.intentsoftware.addapptr.pubnative_offset_secs_video_interstitial" android:value="10"/>
    
  • Update PubNative to 2.8.1.

Version 2.33.3 (beta) - 2021-11-09

  • Fix from latest stable (2.32.4).

Version 2.32.5 - 2021-11-09

  • Fix potential NPE in BannerCache for expiring ads.

Version 2.33.2 (beta) - 2021-10-29

  • Added support for new Google (AdMob, AdX, DFP) banner format: inline adaptive banner

Updated network SDKs

  • AdColony to 4.6.5.
  • AppLovin to 10.3.4.
  • AppNexus to 7.18.
  • CriteoSDK to 4.5.0.
  • FeedAd to 1.4.6.
  • Google Facebook mediation adapter to 6.7.0.0.
  • GooglePlayServicesAds to 20.4.0.
  • InMobi to 10.0.1.
  • Ogury to 5.1.0.
  • PubNative to 2.7.0.
  • Smaato to 21.6.7.

  • Optional network AmazonHB to 9.2.1.

  • Optional network HuaweiAds to 3.4.47.302.
  • Optional network Yandex to 4.4.0.

Version 2.33.1 (beta) - 2021-10-21

  • Change FeedAd banner integration to use FeedAd instead of Stand-Alone banners.

Version 2.33.0 (beta) - 2021-10-13

New network

  • FeedAd (SDK version 1.4.4), supporting banner, fullscreen and rewarded video.

Impression level information

It is now possible to set an optional impression listener for each placement. For each impression counted by AddApptr, the listener will be informed about impression details like banner size, ad network, network key, mediation type, if the impression comes from a direct deal, and price (currency: MAYO=EUR, Auction=USD, Waterfall=price not available). To use it, set the listener using one of the following methods (depending on placement type):

  • AATKit.setImpressionListener(int placementId, ImpressionListener impressionListener) for Sticky Banner, Fullscreen, Native Ad or Rewarded Video placements
  • AATKit.setImpressionListener(BannerPlacement bannerPlacement, ImpressionListener impressionListener) for Infeed Banner placement
  • bannerCache.setImpressionListener(ImpressionListener impressionListener) for Banner Cache (called on your instance of the cache)

Please note that the price reported:

  • for MAYO keys is notified in €
  • for Auction keys is notified in $

Other new features

  • Optional network HuaweiAdsLite dependency can be replaced with HuaweiAds - supporting also phones from other manufacturers. To use it, add the following dependencies:
    implementation 'com.huawei.hms:ads-identifier:3.4.46.300'
    implementation 'com.huawei.hms:ads:3.4.46.300'
  • Implemented reporting for Direct Deal impressions.

Version 2.32.4 - 2021-10-13

Updated network SDKs

  • SmartAdServer to 7.14.0.
  • YOC to 1.6.1.

Version 2.32.3 - 2021-09-21

First stable version of 2.32

New features

  • Introduced support for passing of contentTargetingUrl and key-value targeting via execution rules.
  • New methods for creating AppOpen placement:

    • AATKit.createAppOpenAdPlacement(String name)
    • AATKit.createAppOpenAdPlacement(String name, StatisticsListener statisticsListener)

    AppOpen rules will no longer work with classic Fullscreen placements.

  • New method for muting video ads (works only for Google now): AATKit.muteVideoAds(boolean mute).

  • New method for setting of AdChoices icon position for Google native ads: AATKit.setAdChoicesIconPosition(AdChoicesIconPosition position)
  • Use Facebook mediation adapter from Google dependency (v6.6.0.0) instead of Facebook Audience Network directly.

New ad network

  • New ad network YOC (SDK version 1.5.3), supporting banner and fullscreen ads.

Updated network SDKs

  • AdColony to 4.6.1.
  • AppLovin to 10.3.2.
  • AppNexus to 7.16.
  • Bluestack to 3.6.2.
  • InMobi to 9.2.0.
  • MoPub to 5.18.0.
  • Ogury to 5.0.10.
  • PubNative to 2.5.2.
  • Smaato to 21.6.2.
  • SmartAdServer to 7.12.0.
  • UnityAds to 3.7.5.
  • Optional ad network Huawei ads to 13.4.45.308.
  • Optional ad network Yandex to 4.3.0

Version 2.31.8 - 2021-09-21

Fixes

  • Fixed minor issue in StatisticsDelegate.

Changes

  • Introduced a new feature to notify publishers when sending the statistics reports API. Publishers who want to be notified about statistics reports should:
    • Implement the interface ReportsDelegate
    • While initialising AATKit, pass the reportsDelegate to the AATKitConfiguration, like configurationObject.setReportsDelegate(yourDelegate)
  • Use Facebook mediation adapter from Google dependency (v6.6.0.0) instead of Facebook Audience Network directly.
  • For SmartAdServer native ads, if the "subtitle" asset is empty use "body" asset for description instead.

Version 2.32.2 (beta) - 2021-08-31

New features

  • New methods for creating AppOpen placement:

    • AATKit.createAppOpenAdPlacement(String name)
    • AATKit.createAppOpenAdPlacement(String name, StatisticsListener statisticsListener)

    AppOpen rules will no longer work with classic Fullscreen placements.

  • New method for muting video ads (works only for Google now): AATKit.muteVideoAds(boolean mute).

  • New method for setting of AdChoices icon position for Google native ads: AATKit.setAdChoicesIconPosition(AdChoicesIconPosition position)

Updated network SDKs

  • AdColony to 4.6.1.
  • AppLovin to 10.3.2.
  • AppNexus to 7.16.
  • Bluestack to 3.6.2.
  • Facebook to 6.5.1.
  • InMobi to 9.2.0.
  • MoPub to 5.18.0.
  • Ogury to 5.0.10.
  • PubNative to 2.5.2.
  • Smaato to 21.6.2.
  • SmartAdServer to 7.12.0.
  • UnityAds to 3.7.5.
  • Optional ad network Huawei ads to 13.4.45.308.
  • Optional ad network Yandex to 4.3.0

Version 2.31.7 - 2021-07-28

Version 2.32.1 (beta) - 2021-07-22

New ad network

  • New ad network YOC (SDK version 1.5.3), supporting banner and fullscreen ads.

Version 2.31.6 - 2021-07-02

  • Fix rare NPE in AdLoader after timeout.

Version 2.31.5 - 2021-07-01

  • Update Bluestack to 3.6.1.

Version 2.31.4 - 2021-06-25

  • Update Bluestack to 3.6.0.

Version 2.32.0 (beta) - 2021-06-23

  • Introduced support for passing of contentTargetingUrl and key-value targeting via execution rules.

Version 2.31.3 - 2021-06-23

  • Use different strings in model reporting when Huawei is used as a platform.

Version 2.31.2 - 2021-06-22

First stable version of 2.31

New features

  • Added support for publisher-specific AmazonHB price points
    • If you are using AmazonHB, you will now need to place a file with your price points (named AmazonHBPricePoints.csv) in your app's assets folder.
    • Please contact your Account Manager if you are using Amazon SDK.
  • Introduced new listener for Statistics events: StatisticsListener.
    • It can be passed to placements through new constructors available for each placement type.
  • Added support for SmartAdServer Rewarded Video ads.
  • Added support for AdColony banner ads
  • Added support for direct deal configs.
  • Added support for Huawei as a platform. To use it (instead of standard Android platform), set it in AATKitConfiguration before initializing AATKit like:
        AATKitConfiguration config = new AATKitConfiguration(this);
        //do some other configuration
        config.setPlatform(AATKitConfiguration.Platform.HUAWEI);
        AATKit.init(config);
    
  • Added support for Google AppOpen ads.
    • AppOpen ads can be shown when users bring your app to the foreground. Example usage:
          @Override
          public void onCreate() {
              super.onCreate();
              registerActivityLifecycleCallbacks(this);
              ProcessLifecycleOwner.get().getLifecycle().addObserver(this);
      
              AATKitConfiguration config = new AATKitConfiguration(this);
              config.setDelegate(this);
              config.setConsentRequired(true);
              AATKit.init(config);
      
              appOpenFullscreenAdPlacementId = AATKit.createPlacement("AppOpen", PlacementSize.Fullscreen);
              AATKit.startPlacementAutoReload(appOpenFullscreenAdPlacementId);
      
          }
      
          /**
           * Application.ActivityLifecycleCallbacks methods
           */
          @Override
          public void onActivityResumed(@NonNull Activity activity) {
              if (activity instanceof MainActivity) {
                  AATKit.onActivityResume(activity);
                  AATKit.startPlacementAutoReload(getAppOpenFullscreenAdPlacementId());
              }
          }
      
          @Override
          public void onActivityPaused(@NonNull Activity activity) {
              if (activity instanceof MainActivity) {
                  AATKit.stopPlacementAutoReload(getAppOpenFullscreenAdPlacementId());
                  AATKit.onActivityPause(activity);
              }
          }
      
          /**
           * LifecycleObserver methods
           */
          @OnLifecycleEvent(Lifecycle.Event.ON_RESUME)
          public void onResume() {
              AATKit.showPlacement(appOpenFullscreenAdPlacementId);
              isAdAvailable = false;
          }
      
      note - this sample code uses extra library: androidx.lifecycle:lifecycle-process:2.3.0.

Updated network SDKs

  • AdColony to 4.5.0.
  • AppLovin to 10.3.0.
  • AppNexus to 7.14.
  • Bluestack to 3.5.0.
  • CriteoSDK to 4.4.0.
  • FacebookAudienceNetwork to 6.5.0.
  • GooglePlayServicesAds to 20.2.0.
  • MoPub to 5.17.0.
  • Ogury to 5.0.9.
  • PubNative to 2.4.7
  • Smaato to 21.5.10.
  • SmartAdServer to 7.10.0.
  • UnityAds to 3.7.2.
  • Optional ad network Yandex to 4.1.1.
  • Optional ad network Huawei ads to 13.4.41.304.

Additional repository

As PubNative is available through their managed Maven repository, it is necessary to add it to your repositories list by editing your main build.gradle file:

   allprojects {
       repositories {
           jcenter()
           //... other repositories you use
           maven {
               url 'http://android-sdk.aatkit.com/maven/' //AATKit repository
           }
           maven { url "https://s3.amazonaws.com/smaato-sdk-releases/" } //Smaato repository
           maven { url 'https://verve.jfrog.io/artifactory/verve-gradle-release' } //PubNative repository
           maven { //Bluestack repository
            credentials {
                username "madvertise-maven"
                password "GpdGZ9GE9SK7ByWdM987"
            }
            url "https://api.bitbucket.org/2.0/repositories/mngcorp/deploy-maven-bluestack/src/master"
            authentication {
                basic(BasicAuthentication)
            }
        }
       }
   }

Changes in Google native ads

  • The main layouts for Google native ads now need to be instances of com.google.android.gms.ads.nativead.NativeAdView.

Other improvements

  • BannerCache improvements:
    • Added handling for expiring Smaato ads.
    • Improved performance for no-fill scenarios.

Version 2.31.1 (beta) - 2021-05-28

  • Added support for SmartAdServer Rewarded Video ads.
  • Added support for direct deal configs.
  • Added support for Huawei as a platform. To use it (instead of standard Android platform), set it in AATKitConfiguration before initializing AATKit like:
        AATKitConfiguration config = new AATKitConfiguration(this);
        //do some other configuration
        config.setPlatform(AATKitConfiguration.Platform.HUAWEI);
        AATKit.init(config);
    

Version 2.30.5 - 2021-05-20

  • Updated MoPub to 5.17.0.

Version 2.31.0 (beta) - 2021-05-18

New features

  • Added support for publisher-specific AmazonHB price points
    • If you are using AmazonHB, you will now need to place a file with your price points (named AmazonHBPricePoints.csv) in your app's assets folder.
  • Added support for Google AppOpen ads.
    • AppOpen ads can be shown when users bring your app to the foreground. Example usage:
          @Override
          public void onCreate() {
              super.onCreate();
              registerActivityLifecycleCallbacks(this);
              ProcessLifecycleOwner.get().getLifecycle().addObserver(this);
      
              AATKitConfiguration config = new AATKitConfiguration(this);
              config.setDelegate(this);
              config.setConsentRequired(true);
              AATKit.init(config);
      
              appOpenFullscreenAdPlacementId = AATKit.createPlacement("AppOpen", PlacementSize.Fullscreen);
              AATKit.startPlacementAutoReload(appOpenFullscreenAdPlacementId);
      
          }
      
          /**
           * Application.ActivityLifecycleCallbacks methods
           */
          @Override
          public void onActivityResumed(@NonNull Activity activity) {
              if (activity instanceof MainActivity) {
                  AATKit.onActivityResume(activity);
                  AATKit.startPlacementAutoReload(getAppOpenFullscreenAdPlacementId());
              }
          }
      
          @Override
          public void onActivityPaused(@NonNull Activity activity) {
              if (activity instanceof MainActivity) {
                  AATKit.stopPlacementAutoReload(getAppOpenFullscreenAdPlacementId());
                  AATKit.onActivityPause(activity);
              }
          }
      
          /**
           * LifecycleObserver methods
           */
          @OnLifecycleEvent(Lifecycle.Event.ON_START)
          public void onStart() {
              AATKit.showPlacement(appOpenFullscreenAdPlacementId);
              isAdAvailable = false;
          }
      

Updated network SDKs

  • GooglePlayServicesAds to 20.0.0.

Changes in Google native ads

  • The main layouts for Google native ads now need to be instances of com.google.android.gms.ads.nativead.NativeAdView.

Other improvements

  • BannerCache improvements:
    • Added handling for expiring Smaato ads.
    • Improved performance for no-fill scenarios.

Version 2.30.4 - 2021-05-04

  • Updated InMobi to 9.1.9.

Version 2.30.3 - 2021-04-21

First stable version of 2.30

New features

  • Waterfall optimisations - if TCF2-compatibile CMP is used the ad loading waterfall will take into account consent state for given networks.
    • This feature is disabled by default, see API changes for more information.
    • You can set the networks that will not be requested if they do not have the TCF2 consent using the setNoConsentNetworkStopSet method of used Consent implementation. If this method is not called, AATKit will use its default list.
  • A/B Testing
    • Publishers can now do monetization related A/B-Testing with their apps without having to change in their applications.
  • Ogury Thumbnail format is now supported on Fullscreen placements.
  • Ogury is now a standard network and does not need to be added manually.

API changes

  • New method for attaching native ads to layout: attachNativeAdToLayout(NativeAdData nativeAd, ViewGroup layout, View mainImageView, View iconView, View CTAView)
    • old method (without CTAView parameter) is now deprecated.
  • AATKit.Delegate's method aatkitUserEarnedIncentive introduces new aatKitReward parameter, informing about the reward earned by watching an rewarded video ad. Please note that not all networks provide this information, and this parameter can be null.
  • Added new method in AATKitConfiguration: setShouldSkipRules(boolean shouldSkipRules), allowing to enable skipping of networks without TCF2 consent (as long as TCF2-compatibile CMP is used). This feature is disabled by default.
  • New method in Consent implementations: setNoConsentNetworkStopSet, allowing to set the networks that will not be requested if they do not have the TCF2 consent. If this method is not called, AATKit will use its default list. It works only if rule skipping feature is enabled using setShouldSkipRules method described above.

New network Bluestack

  • Introduced new network Bluestack (SDK version 3.4.0), supporting banner, fullscreen and native ads.

Additional repository

As Bluestack is only available through their managed Maven repository, it is necessary to add it to your repositories list by editing your main build.gradle file:

   allprojects {
       repositories {
           jcenter()
           //... other repositories you use
           maven {
               url 'http://android-sdk.aatkit.com/maven/' //AATKit repository
           }
           maven { url "https://s3.amazonaws.com/smaato-sdk-releases/" } //Smaato repository
           maven { //Bluestack repository
            credentials {
                username "madvertise-maven"
                password "GpdGZ9GE9SK7ByWdM987"
            }
            url "https://api.bitbucket.org/2.0/repositories/mngcorp/deploy-maven-bluestack/src/master"
            authentication {
                basic(BasicAuthentication)
            }
        }
       }
   }

Native ads requirements

For Bluestack native ads to work, special view classes need to be used:

  • com.mngads.views.MAdvertiseNativeContainer for the main layout of the native ad.
  • ViewGroup for the main image view (it will be filled by Bluestack SDK).
  • ImageView for icon view.

Updated ad networks

  • AdColony to 4.4.1.
  • AppLovin to 10.1.2.
  • AppNexus to 7.11.
  • CriteoSDK to 4.2.1.
  • FacebookAudienceNetwork to 6.2.1.
  • GooglePlayServicesAds to 19.7.0.
  • MoPub to 5.16.0.
  • Ogury to 5.0.8.
  • PubNative to 2.3.4.
  • Smaato to 21.5.7.
  • SmartAdServer to 7.8.1.
  • UnityAds to 3.6.0.
  • optional ad network AmazonHB to 8.4.3.
  • optional ad network Huawei ads to 13.4.37.300.
  • optional ad network Yandex to 3.3.0.
    • with MobMetrica dependency in version 3.16.2

Version 2.30.2 (beta) - 2021-04-08

Updated ad networks

  • AppLovin to 10.1.2.
  • AppNexus to 7.11.

Version 2.29.13 - 2021-03-30

  • Fix targeting for DFP native ads.

Version 2.30.1 (beta) - 2021-03-25

  • Added new method in AATKitConfiguration: setShouldSkipRules(boolean shouldSkipRules), allowing to enable skipping of networks without TCF2 consent (as long as TCF2-compatibile CMP is used). This feature is disabled by default.

Version 2.29.12 - 2021-03-24

  • Improved rule caching.

Version 2.30.0 (beta) - 2021-02-19

New features

  • Waterfall optimisations - if TCF2-compatibile CMP is used the ad loading waterfall will take into account consent state for given networks.
    • You can set the networks that will not be requested if they do not have the TCF2 consent using the setNoConsentNetworkStopSet method of used Consent implementation. If this method is not called, AATKit will use its default list.
  • A/B Testing
    • Publishers can now do monetization related A/B-Testing with their apps without having to change in their applications.
  • Ogury Thumbnail format is now supported on Fullscreen placements.
  • Ogury is now a standard network and does not need to be added manually.

API changes

  • New method for attaching native ads to layout: attachNativeAdToLayout(NativeAdData nativeAd, ViewGroup layout, View mainImageView, View iconView, View CTAView)
    • old method (without CTAView parameter) is now deprecated.
  • AATKit.Delegate's method aatkitUserEarnedIncentive introduces new aatKitReward parameter, informing about the reward earned by watching an rewarded video ad. Please note that not all networks provide this information, and this parameter can be null.

New network Bluestack

  • Introduced new network Bluestack (SDK version 3.4.0), supporting banner, fullscreen and native ads.

Additional repository

As Bluestack is only available through their managed Maven repository, it is necessary to add it to your repositories list by editing your main build.gradle file:

   allprojects {
       repositories {
           jcenter()
           //... other repositories you use
           maven {
               url 'http://android-sdk.aatkit.com/maven/' //AATKit repository
           }
           maven { url "https://s3.amazonaws.com/smaato-sdk-releases/" } //Smaato repository
           maven { //Bluestack repository
            credentials {
                username "madvertise-maven"
                password "GpdGZ9GE9SK7ByWdM987"
            }
            url "https://api.bitbucket.org/2.0/repositories/mngcorp/deploy-maven-bluestack/src/master"
            authentication {
                basic(BasicAuthentication)
            }
        }
       }
   }

Native ads requirements

For Bluestack native ads to work, special view classes need to be used: * com.mngads.views.MAdvertiseNativeContainer for the main layout of the native ad. * ViewGroup for the main image view (it will be filled by Bluestack SDK). * ImageView for icon view.

Updated ad networks

  • AdColony to 4.4.1.
  • AppLovin to 9.15.2.
  • AppNexus to 7.9.
  • CriteoSDK to 4.2.1.
  • FacebookAudienceNetwork to 6.2.1.
  • GooglePlayServicesAds to 19.7.0.
  • MoPub to 5.16.0.
  • Ogury to 5.0.6.
  • PubNative to 2.3.4.
  • Smaato to 21.5.7.
  • SmartAdServer to 7.8.1.
  • UnityAds to 3.6.0.
  • optional ad network AmazonHB to 8.4.3.
  • optional ad network Huawei ads to 13.4.37.300.
  • optional ad network Yandex to 3.3.0.
    • with MobMetrica dependency in version 3.16.2

Version 2.29.11 - 2021-01-19

  • Updated AdColony to 4.4.0, conforming to Google policy changes.

Version 2.29.10 - 2021-01-13

  • Added support for PubNative RewardedVideo ads.
  • Fixed impression counting for Facebook native ads.

Version 2.29.9 - 2020-12-04

First stable version of 2.29

Changes in ManagedConsent

  • Changed ManagedConsentDelegate method managedConsentCMPFinished to pass the ManagedConsentState enum. It can take the following values:
    • UNKNOWN - No information about consent state.
    • WITHHELD - Consent has been declined by the user.
    • CUSTOM - Partial consent has been granted by the user - at least some purposes and some vendors were given consent.
    • OBTAINED - Full consent has been granted by the user.

Changes in BannerCache API

New constructor

  • BannerCache(BannerCacheConfiguration cacheConfiguration) - new constructor accepts BannerCacheConfiguration object, allowing to setup the banner cache.

BannerCacheConfiguration object

Constructor

  • BannerCacheConfiguration(String placementName, int size) is the only available constructor, accepting the name of the banner placement to be crated and banner cache size as parameters.

Methods

  • setDelegate(BannerCache.CacheDelegate delegate) - Sets the optional delegate notifying about BannerCache events.
  • setShouldCacheAdditionalAdAtStart(boolean shouldCacheAdditionalAdAtStart) - Defines if the cache should load additional ad at the beginning. False by default.
  • setRequestConfiguration(BannerRequest requestConfiguration) - Sets the configuration that will be used when requesting new banners.
  • setMinimumDelay(int minDelay) - Sets the minimum delay between two banner consumptions. 1s by default.

New methods

  • BannerCache.consume(boolean force) - Allows to consume banners ignoring the minimum delay set in BannerCacheConfiguration.

Deprecated methods

  • Old BannerCache constructor is now deprecated.
  • BannerCache.setCacheDelegate method is now deprecated.

New ad network, added formats

  • New network SmartAdServerDirect
  • Added support for Ogury banner ads

Updated ad networks

  • AdColony to 4.3.0, now supporting TCF2.0.
  • AppLovin to 9.14.9, removing support for native ads.
  • AppNexus to 7.7.
  • CriteoSDK to 4.0.0.
  • FacebookAudienceNetwork to 6.2.0.
  • GooglePlayServicesAds to 19.5.0.
  • InMobi to 9.1.1.
  • MoPub to 5.15.0.
  • PubNative 2.3.1.
  • UnityAds to 3.5.1.
  • optional network AmazonHB to 8.4.2.
  • optional network HuaweiAds to 13.4.34.301.
  • optional network Ogury to 5.0.4.
  • optional network Yandex to 3.1.1.

Removed ad networks

  • Flurry
  • OneByAOL

Other changes

  • Added rules protocol version 16 with support for handling Google MCM (multi channel management).
  • Removed setBannerContainer method from BannerRequest.
  • Improved consent handling fot AppNexus if no CMP is used.

Version 2.29.8 (beta) - 2020-11-27

Updated ad networks

  • AdColony to 4.3.0, now supporting TCF2.0.
  • AppLovin to 9.14.9, removing support for native ads.
  • AppNexus to 7.7.
  • CriteoSDK to 4.0.0.
  • FacebookAudienceNetwork to 6.2.0.
  • InMobi to 9.1.1.
  • MoPub to 5.15.0.
  • PubNative 2.2.2.
  • UnityAds to 3.5.1.
  • optional network AmazonHB to 8.4.2.
  • optional network HuaweiAds to 13.4.34.301.
  • optional network Ogury to 5.0.4.
  • optional network Yandex to 3.1.1.

Version 2.28.13 - 2020-11-23

  • Updated Smaato to 21.5.4, now supporting TCF2.0.

Version 2.29.7 (beta) - 2020-11-19

  • Added rules protocol version 16 with support for handling Google MCM (multi channel management).
  • Added support for Ogury banner ads.
  • Removed setBannerContainer method from BannerRequest.
  • Internal cleanup of no longer used resources.

Updated ad networks

  • GooglePlayServicesAds to 19.5.0.

Removed ad networks

  • Flurry
  • OneByAOL

Version 2.28.12 - 2020-11-17

  • Updated SmartAdServer to 7.8.0, fixing crashes on Android 11 when app is targetting API 30.
  • Improved consent handling for PubNative.
  • Other minor fixes and improvements

Version 2.29.6 (beta) - 2020-10-29

  • Ad network updates and fix from 2.28.11

Changes in BannerCache API

New constructor

  • BannerCache(BannerCacheConfiguration cacheConfiguration) - new constructor accepts BannerCacheConfiguration object, allowing to setup the banner cache.

BannerCacheConfiguration object

Constructor

  • BannerCacheConfiguration(String placementName, int size) is the only available constructor, accepting the name of the banner placement to be crated and banner cache size as parameters.

Methods

  • setDelegate(BannerCache.CacheDelegate delegate) - Sets the optional delegate notifying about BannerCache events.
  • setShouldCacheAdditionalAdAtStart(boolean shouldCacheAdditionalAdAtStart) - Defines if the cache should load additional ad at the beginning. False by default.
  • setRequestConfiguration(BannerRequest requestConfiguration) - Sets the configuration that will be used when requesting new banners.
  • setMinimumDelay(int minDelay) - Sets the minimum delay between two banner consumptions. 1s by default.

New methods

  • BannerCache.consume(boolean force) - Allows to consume banners ignoring the minimum delay set in BannerCacheConfiguration.

Deprecated methods

  • Old BannerCache constructor is now deprecated.
  • BannerCache.setCacheDelegate method is now deprecated.

Version 2.28.11 - 2020-10-29

  • Fixed potential crash when OneByAOL fullscreen is opened.

Updated ad networks

  • AppLovin to 9.14.6.
  • PubNative to 2.2.0, improving compatibility with Android 11 and now supporting TCF2.0.
  • UnityAds to 3.5.0, fixing crashes on Android 11 when app is targetting API 30.
  • optional network AmazonHB to 8.4.0, improving compatibility with Android 11.
  • optional network Ogury to 5.0.2, improving compatibility with Android 11.

Version 2.29.5 (beta) - 2020-10-19

  • Updates from 2.28.10.

Version 2.28.10 - 2020-10-19

  • Improved debug logs in VendorConsent.

Updated ad networks

  • GooglePlayServicesAds to 19.4.0.
  • MoPub to 5.14.0.

Version 2.29.4 (beta) - 2020-10-08

  • Fix visibility of BannerCache delegate

Version 2.28.9 - 2020-10-08

  • Fix visibility of BannerCache delegate

Version 2.29.3 (beta) - 2020-10-01

  • Added SmartAdServerDirect network.

Version 2.28.8 - 2020-10-01

  • Updated InMobi to 9.1.0, now supporting TCF2.0.

Version 2.29.2 (beta) - 2020-09-29

  • Add Proguard config for Google CMP.

Version 2.28.7 - 2020-09-29

  • Add Proguard config for Google CMP.

Version 2.29.1 (beta) - 2020-09-24

  • Fix consent handling for OneByAOL.

Version 2.28.6 - 2020-09-24

  • Fix consent handling for OneByAOL.

Version 2.29.0 (beta) - 2020-09-24

  • Changed ManagedConsentDelegate method managedConsentCMPFinished to pass the ManagedConsentState enum. It can take the following values:
    • UNKNOWN - No information about consent state.
    • WITHHELD - Consent has been declined by the user.
    • CUSTOM - Partial consent has been granted by the user - at least some purposes and some vendors were given consent.
    • OBTAINED - Full consent has been granted by the user.

Version 2.28.5 - 2020-09-24

  • CMPGoogle improvements and fixes.
  • Improved debug logs for ManagedConsent.

Version 2.28.4 - 2020-09-08

Updated ad networks

  • AppNexus to 7.6.
  • Facebook Audience Network to 6.0.0.

Other changes

  • Implemented handling of consent for MoPub if CMPGoogle is used.
  • Fixed ManagedConsentDelegate's onConsentUpdated method not being called.

Version 2.28.3 - 2020-08-20

First stable version of 2.28

New ad network, added formats

  • PubNative (SDK version 0.9.0), supporting banner and fullscreen ads.
  • Added support for UnityAds banner ads.
  • Added support for Ogury rewarded video ads.

Updated ad network

  • Smaato updated to 21.3.8
  • As Smaato is now only available through their managed Maven repository, it is necessary to add it to your repositories list by editing your main build.gradle file:
   allprojects {
       repositories {
           jcenter()
           //... other repositories you use
           maven {
               url 'http://android-sdk.aatkit.com/maven/' //AATKit repository
           }
           maven { url "https://s3.amazonaws.com/smaato-sdk-releases/" } //Smaato repository
       }
   }

Reworked ManagedConsent

With the introduction of IAB TCF2.0, AddApptr will no longer act as a CMP. Instead, we provide wrappers allowing for easily integrating third-party CMPs. The rewritten ManagedConsent provides following methods:

  • Constructor: ManagedConsent(CMP cmp, Context context, @NonNull ManagedConsentDelegate delegate), where:
    • cmp - The instance of CMP to be used, currently either CMPGoogle or CMPOgury.
    • context - The Context of the application.
    • delegate - The delegate that will be notified about CMP events. Must not be null.
  • showIfNeeded(Activity activity) - Presents the consent screen ONLY if it is required by the used CMP (for example if no user consent has been set yet). It is advised to always call this method when the first app activity is presented.
  • editConsent(Activity activity) - Presents the consent screen, allowing the user to change consent settings.
  • reload(Activity activity) - Tells the CMP to reload. Does not need to be used unless some error occurs. You can call this method for example after receiving {@link ManagedConsentDelegate#managedConsentCMPFailedToLoad(ManagedConsent, String)} callback.

CMP implementations

For now, we provide two CMP implementations:

CMPGoogle
  • Requires the implementation 'com.google.android.ump:user-messaging-platform:1.0.0' dependency to work.
  • Requires appId to be added to Manifest, like
    <meta-data
              android:name="com.google.android.gms.ads.APPLICATION_ID"
              android:value="YOUR-APP-ID"/>
    
Code example
#!java
public void onActivityReady(Activity activity) {
    if (managedConsent == null) { //we want to do it only once
        CMP cmp = new CMPGoogle(activity);
        managedConsent = new ManagedConsent(cmp, this, this);
        AATKitRuntimeConfiguration newConf = new AATKitRuntimeConfiguration();
        newConf.setConsent(managedConsent);
        AATKit.reconfigure(newConf);
    }
}
CMPOgury
  • Requires the Ogury library dependency (see instructions for adding optional networks) to work.
  • Requires Ogury Asset Key as constructor parameter
Code example
#!java
@Override
   public void onCreate() {
       super.onCreate();
       AATKitConfiguration config = new AATKitConfiguration(this);
       config.setDelegate(this);
       config.setConsentRequired(true);
       CMP cmp = new CMPOgury(this, "YourAssetKey");
       managedConsent = new ManagedConsent(cmp, this, this);
       config.setConsent(managedConsent);
       AATKit.init(config);
        (...)
    }

For publishers not using the ManagedConsent, we have introduced another type of Consent for GDPR-compliance. It can be considered a more advanced version of SimpleConsent, allowing to pass network-specific consent status. To use it, you need to implement the VendorConsentDelegate and initialize AATKitConfiguration's consent with a VendorConsent instance.

Code example

#!java
    @Override
    public void onCreate() {
       super.onCreate();
       AAATKitConfiguration config = new AATKitConfiguration(this);
        config.setDelegate(this);
        config.setConsentRequired(true);
        config.setConsent(new VendorConsent(this));
        AATKit.init(config);
        (...)
    }

    @Override
    public NonIABConsent getConsentForNetwork(AdNetwork network) {
        //decide for each ad network
        return NonIABConsent.OBTAINED;
    }

    @Override
    public NonIABConsent getConsentForAddapptr() {
        return NonIABConsent.OBTAINED;
    }

Other changes

  • Added reporting of a new metric called Viewable Impressions.
  • Changed SmartAdServer real-time auction implementation to use SmartAdServer’s new in-app auction API.
  • Removed old Criteo API integration.
  • Fixed Smaato key parsing.

Version 2.27.15 - 2020-08-19

  • Minor fixes in reporting of user session lengths.

Version 2.28.2 (beta) - 2020-08-13

  • Update from 2.27.14.

Version 2.27.14 - 2020-08-13

  • Updated optional network AmazonHB to 8.3.2, now supporting TCF2.0.

Version 2.28.1 (beta) - 2020-08-07

  • Changes from last stable.
  • Removed old Criteo API integration.

Version 2.27.13 - 2020-08-06

Updated ad networks

  • CriteoSDK to 3.9.0, now supporting TCF2.0.
  • InMobi to 9.0.7, now supporting TCF2.0.

Version 2.28.0 (beta) - 2020-08-04

New ad network, added formats

  • PubNative (SDK version 0.9.0), supporting banner and fullscreen ads.
  • Added support for UnityAds banner ads.
  • Added support for Ogury rewarded video ads.

Updated ad network

  • Smaato updated to 21.3.8, now supporting TCF2.0.
  • As Smaato is now only available through their managed Maven repository, it is necessary to add it to your repositories list by editing your main build.gradle file:
   allprojects {
       repositories {
           jcenter()
           //... other repositories you use
           maven {
               url 'http://android-sdk.aatkit.com/maven/' //AATKit repository
           }
           maven { url "https://s3.amazonaws.com/smaato-sdk-releases/" } //Smaato repository
       }
   }

Reworked ManagedConsent

With the introduction of IAB TCF2.0, AddApptr will no longer act as a CMP. Instead, we provide wrappers allowing for easily integrating third-party CMPs. The rewritten ManagedConsent provides following methods:

  • Constructor: ManagedConsent(CMP cmp, Context context, @NonNull ManagedConsentDelegate delegate), where:
    • cmp - The instance of CMP to be used, currently either CMPGoogle or CMPOgury.
    • context - The Context of the application.
    • delegate - The delegate that will be notified about CMP events. Must not be null.
  • showIfNeeded(Activity activity) - Presents the consent screen ONLY if it is required by the used CMP (for example if no user consent has been set yet). It is advised to always call this method when the first app activity is presented.
  • editConsent(Activity activity) - Presents the consent screen, allowing the user to change consent settings.
  • reload(Activity activity) - Tells the CMP to reload. Does not need to be used unless some error occurs. You can call this method for example after receiving {@link ManagedConsentDelegate#managedConsentCMPFailedToLoad(ManagedConsent, String)} callback.

CMP implementations

For now, we provide two CMP implementations:

CMPGoogle
  • Requires the implementation 'com.google.android.ump:user-messaging-platform:1.0.0' dependency to work.
  • Requires appId to be added to Manifest, like
    <meta-data
              android:name="com.google.android.gms.ads.APPLICATION_ID"
              android:value="YOUR-APP-ID"/>
    
Code example
#!java
public void onActivityReady(Activity activity) {
    if (managedConsent == null) { //we want to do it only once
        CMP cmp = new CMPGoogle(activity);
        managedConsent = new ManagedConsent(cmp, this, this);
        AATKitRuntimeConfiguration newConf = new AATKitRuntimeConfiguration();
        newConf.setConsent(managedConsent);
        AATKit.reconfigure(newConf);
    }
}
CMPOgury
  • Requires the Ogury library dependency (see instructions for adding optional networks) to work.
  • Requires Ogury Asset Key as constructor parameter
Code example
#!java
@Override
   public void onCreate() {
       super.onCreate();
       AATKitConfiguration config = new AATKitConfiguration(this);
       config.setDelegate(this);
       config.setConsentRequired(true);
       CMP cmp = new CMPOgury(this, "YourAssetKey");
       managedConsent = new ManagedConsent(cmp, this, this);
       config.setConsent(managedConsent);
       AATKit.init(config);
        (...)
    }

For publishers not using the ManagedConsent, we have introduced another type of Consent for GDPR-compliance. It can be considered a more advanced version of SimpleConsent, allowing to pass network-specific consent status. To use it, you need to implement the VendorConsentDelegate and initialize AATKitConfiguration's consent with a VendorConsent instance.

Code example

#!java
    @Override
    public void onCreate() {
       super.onCreate();
       AAATKitConfiguration config = new AATKitConfiguration(this);
        config.setDelegate(this);
        config.setConsentRequired(true);
        config.setConsent(new VendorConsent(this));
        AATKit.init(config);
        (...)
    }

    @Override
    public NonIABConsent getConsentForNetwork(AdNetwork network) {
        //decide for each ad network
        return NonIABConsent.OBTAINED;
    }

    @Override
    public NonIABConsent getConsentForAddapptr() {
        return NonIABConsent.OBTAINED;
    }

Other changes

  • Added reporting of a new metric called Viewable Impressions.
  • Changed SmartAdServer real-time auction implementation to use SmartAdServer’s new in-app auction API.

Version 2.27.12 - 2020-07-30

  • Internal improvements including frequency capping per 1 day implementation

Updated AdNetwork SDKs

  • Ogury to 4.7.5, now supporting TCF2.0.
  • GooglePlayServicesAds to 19.3.0, now supporting TCF2.0.

Version 2.27.11 - 2020-07-27

  • Improved adspace counting mechanism for placements using frequency capping.
  • Improved UnityAds performance for first Unity ad request.

Removed ad network

  • InLoco (optional network)

Version 2.27.10 - 2020-06-25

Removed ad network

  • Vungle

Updated AdNetwork SDKs

  • SmartAdServer to 7.6.0, now supporting TCF2.0.

Version 2.27.9 - 2020-06-23

  • First stable version of 2.27

We have redesigned AATKit's consent API in order to make it more simple to use and understand. There are only two options left how to use it:

  • You want to make use of AddApptr's CMP:
    • initialize AATKitConfiguration's consent with a "ManagedConsent" and implement ManagedConsent's delegate.
  • You want to use a third party CMP or no CMP at all:
    • initialize AATKitConfiguration's consent with a "SimpleConsent" and pass "unknown", "obtained", or "withheld" depending on your GDPR considerations.
    • if you use a third party CMP, AATKit will respect the user's choice as an IAB vendor SDK (instead of relying on the passed simple consent). Also, IAB compliant partner ad networks will respect the settings of the 3rd party CMP.
  • Removed old methods for setting of simple consent:
    • AATKitConfiguration.setSimpleConsent
    • AATKitRuntimeConfiguration.setSimpleConsent
  • Removed ConsentString and ConsentAutomatic classes.
  • Renamed methods:
    • AATKitConfiguration.setDetailedConsent renamed to AATKitConfiguration.setConsent
    • AATKitRuntimeConfiguration.setDetailedConsent renamed to AATKitRuntimeConfiguration.setConsent
  • Introduced new SimpleConsent class, allowing publishers not using ManagedConsent to pass the consent status for non-IAB partners. If used, it will also automatically read the IAB consent string stored in SharedPreferences (if available).

New feature - BannerCache

This AATKit version introduces BannerCache - special tool to help you integrate infeed banners. It will automatically preloaded banner ads and try to have a defined amount of banners available for immediate handout to the app whenever they are needed. Plase keep in mind that when using BannerCache standard integration steps (like initialization of AATKit and passing of activity pause/resume events) are still required.

Available methods:

  • Constructor: BannerCache(String placementName, CacheDelegate delegate, int size, boolean shouldCacheAdditionalAdAtStart, BannerRequest requestConfiguration), where:
    • placementName - The name of the banner placement that will be created. The placement will be created by the cache and should not be created manually.
    • cacheDelegate - Optional cache delegate that will be called when the first banner ad gets loaded. Can be null.
    • size - Defines how many preloaded banners should be available in the cache. Max value: 5
    • shouldCacheAdditionalAdAtStart - Defines if the cache should load additional ad at the beginning.
    • requestConfiguration - The configuration that will be used when requesting new banners. Can not be null.
  • consume() - returns an instance of BannerPlacementLayout to be used within the app. Can return null if there are no banners available in the cache. Also automatically counts an ad space. BannerCache will no longer hold any references to returned banners, and they need to be destroyed manually by the app.
  • destroy() - Destroys the BannerCache, clearing all preloaded banner ads and canceling pending reload requests. For proper memory management, it needs to be called when the BannerCache is no longer needed. Destroyed BannerCache can no longer be used.

  • updateRequestConfiguration(BannerRequest configuration, boolean shouldRefresh) - updates the configuration that will be used when requesting new banners.

    • configuration - new configuration, can not be null
    • shouldRefresh - true if the whole cache should be re-loaded with new banner request configuration, false if new configuration should only be used for new requests.
  • setCacheDelegate(CacheDelegate delegate) - sets the optional CacheDelegate

New methods for detecting maximum banner size on given device

  • Added methods for detecting maximum banner width on given device:

    • AATKit.maximumBannerSizePortrait(Context context)
    • AATKit.maximumBannerSizeLandscape(Context context)

    They can be used for placement creation, like:

    bannerPlacementId = AATKit.createPlacement("Banner", AATKit.maximumBannerSizePortrait(this));
    

  • Added methods returning a set of fitting banner sizes on given device:

    • AATKit.fittingBannerSizesPortrait(Context context)
    • AATKit.fittingBannerSizesLandscape(Context context)

    They can be used for limiting allowed banner sizes for banner request, like:

    BannerRequest request = new BannerRequest(null);
    request.setBannerSizes(AATKit.fittingBannerSizesPortrait(this));
    

Other new features

Other chages

  • Improvements in statistics counting.
  • Updated logic for deciding if given device will be treated as a tablet.
  • Min Android API version changed to 16.
  • Removed Inneractive ad network.
  • Improved impression counting for banner and native ads.
  • Changed placement creation methods not to crash if placement with given name already exists.
    • If the placement of given name and type already exists - it will be returned.
    • If the placement of given name exists, but is of different type - -1 will be returned for classic placements, or null for Banner Placement.
  • Added an option to enable video content for AppNexus banner. To use it, add meta-data to AndroidManifest like:
    <meta-data android:name="com.intentsoftware.addapptr.use_appnexus_video_banners" android:value="true"/>
    

Updated AdNetwork SDKs

  • AdColony to 4.1.4.
  • AppLovin to 9.12.3.
  • AppNexus to 7.2, now supporting TCF2.0.
  • CriteoSDK to 3.4.0.
  • FacebookAudienceNetwork to 5.8.0.
  • GooglePlayServicesAds to 19.1.0.
  • InMobi to 9.0.4.
  • MoPub to 5.12.0.
  • Ogury to 4.3.12.
  • Smaato to 9.1.8.
  • SmartAdServer to 7.4.0.
  • UnityAds to 3.4.2.
  • Vungle to 6.5.3.
  • Yandex to 2.141.

Version 2.26.21 - 2020-05-28

  • Fix problem with displaying AppLovin fullscreen ads when ZoneID is used.

Version 2.27.8 (beta) - 2020-05-20

  • Fix NPE in BannerCache happening if BannerCache was created after AATKit.onActivityResume call.

Version 2.27.7 (beta) - 2020-05-12

  • Introduce new method from 2.26.20.

Version 2.26.20 - 2020-05-12

  • Introduce new method in ManagedConsent class: setShouldOptOutOnDetails(boolean shouldOptOut), setting if all switches for purposes and more partners on CMP screen should be set to "off" by default. If not set it is treated as false.

Version 2.27.6 (beta) - 2020-05-05

  • Added shouldCacheAdditionalAdAtStart parameter to BannerCache constructor, defining if the cache should load one additional ad at the beginning.

Version 2.27.5 (beta) - 2020-04-27

  • Updated logic for deciding if given device will be treated as a tablet.
  • Min Android API version changed to 16.
  • Removed Inneractive ad network.
  • Added support for Google Adaptive Banners.

API changes

  • Added methods for detecting maximum banner width on given device:

    • AATKit.maximumBannerSizePortrait(Context context)
    • AATKit.maximumBannerSizeLandscape(Context context)

    They can be used for placement creation, like:

    bannerPlacementId = AATKit.createPlacement("Banner", AATKit.maximumBannerSizePortrait(this));
    

  • Added methods returning a set of fitting banner sizes on given device:

    • AATKit.fittingBannerSizesPortrait(Context context)
    • AATKit.fittingBannerSizesLandscape(Context context)

    They can be used for limiting allowed banner sizes for banner request, like:

    BannerRequest request = new BannerRequest(null);
    request.setBannerSizes(AATKit.fittingBannerSizesPortrait(this));
    

  • Changed placement creation methods not to crash if placement with given name already exists.

    • If the placement of given name and type already exists - it will be returned.
    • If the placement of given name exists, but is of different type - -1 will be returned for classic placements, or null for Banner Placement.

Updated AdNetwork SDKs

  • AdColony to 4.1.4.
  • AppLovin to 9.12.3.
  • AppNexus to 7.2.
  • CriteoSDK to 3.4.0.
  • FacebookAudienceNetwork to 5.8.0.
  • GooglePlayServicesAds to 19.1.0.
  • InLoco to 4.6.1.
  • InMobi to 9.0.4.
  • MoPub to 5.12.0.
  • Ogury to 4.3.12.
  • Smaato to 9.1.8.
  • SmartAdServer to 7.4.0.
  • UnityAds to 3.4.2.
  • Vungle to 6.5.3.
  • Yandex to 2.141.

Version 2.27.4 (beta) - 2020-03-31

  • Update Vungle to 6.5.2.
  • Add support for Vungle banner ads.
  • Further improvements for impression counting for banner ads.
  • Improve impression counting for native ads.

New feature - BannerCache

This AATKit version introduces BannerCache - special tool to help you integrate infeed banners. It will automatically preloaded banner ads and try to have a defined amount of banners available for immediate handout to the app whenever they are needed. Plase keep in mind that when using BannerCache standard integration steps (like initialization of AATKit and passing of activity pause/resume events) are still required.

Available methods:

  • Constructor: BannerCache(String placementName, CacheDelegate delegate, int size, BannerRequest requestConfiguration), where:
    • placementName - The name of the banner placement that will be created. The placement will be created by the cache and should not be created manually.
    • cacheDelegate - Optional cache delegate that will be called when the first banner ad gets loaded. Can be null.
    • size - Defines how many preloaded banners should be available in the cache. Max value: 5
    • requestConfiguration - The configuration that will be used when requesting new banners. Can not be null.
  • consume() - returns an instance of BannerPlacementLayout to be used within the app. Can return null if there are no banners available in the cache. Also automatically counts an ad space. BannerCache will no longer hold any references to returned banners, and they need to be destroyed manually by the app.
  • destroy() - Destroys the BannerCache, clearing all preloaded banner ads and canceling pending reload requests. For proper memory management, it needs to be called when the BannerCache is no longer needed. Destroyed BannerCache can no longer be used.

  • updateRequestConfiguration(BannerRequest configuration, boolean shouldRefresh) - updates the configuration that will be used when requesting new banners.

    • configuration - new configuration, can not be null
    • shouldRefresh - true if the whole cache should be re-loaded with new banner request configuration, false if new configuration should only be used for new requests.
  • setCacheDelegate(CacheDelegate delegate) - sets the optional CacheDelegate

Version 2.27.3 (beta) - 2020-03-18

  • Added support of TCF2 consent.
  • Improved impression counting for banner ads.

Version 2.26.19 - 2020-02-24

  • Fix issue introduced in 2.26.18, sometimes causing classic banner placements to display incorrectly.

Version 2.26.18 - 2020-02-21

  • Fix bug in destroying of never shown infeed banners.

Version 2.27.2 (beta) - 2020-02-19

We have redesigned AATKit's consent API in order to make it more simple to use and understand. There are only two options left how to use it:

  • You want to make use of AddApptr's CMP:
    • initialize AATKitConfiguration's consent with a "ManagedConsent" and implement ManagedConsent's delegate.
  • You want to use a third party CMP or no CMP at all:
    • initialize AATKitConfiguration's consent with a "SimpleConsent" and pass "unknown", "obtained", or "withheld" depending on your GDPR considerations.
    • if you use a third party CMP, AATKit will respect the user's choice as an IAB vendor SDK (instead of relying on the passed simple consent). Also, IAB compliant partner ad networks will respect the settings of the 3rd party CMP.
  • Removed old methods for setting of simple consent:
    • AATKitConfiguration.setSimpleConsent
    • AATKitRuntimeConfiguration.setSimpleConsent
  • Removed ConsentString and ConsentAutomatic classes.
  • Renamed methods:
    • AATKitConfiguration.setDetailedConsent renamed to AATKitConfiguration.setConsent
    • AATKitRuntimeConfiguration.setDetailedConsent renamed to AATKitRuntimeConfiguration.setConsent
  • Introduced new SimpleConsent class, allowing publishers not using ManagedConsent to pass the consent status for non-IAB partners. If used, it will also automatically read the IAB consent string stored in SharedPreferences (if available).

Other chages:

  • Improvements in statistics counting.
  • Added an option to enable video content for AppNexus banner. To use it, add meta-data to AndroidManifest like:
    <meta-data android:name="com.intentsoftware.addapptr.use_appnexus_video_banners" android:value="true"/>
    

Version 2.26.17 - 2020-01-27

  • Fix potential NPE in AdProvider class.

Version 2.26.16 - 2020-01-13

  • Fix CCPA handling for AmazonHB.

Version 2.26.15 - 2020-01-13

  • Update AmazonHB to 8.2.1, implement handling of CCPA for AmazonHB.
  • Update UnityAds to 3.4.0, implement handling of CCPA for UnityAds.

Version 2.26.14 - 2020-01-03

  • Update SmartAdServer to 7.3.1.

Version 2.26.13 - 2019-12-11

  • Fixed potential NPE in MRAIDView.
  • AmazonHB has been removed from standard integration. Please consult integration instructions for information on how to add it.

Version 2.26.12 - 2019-12-03

  • Update CriteoSDK to 3.2.2.

Version 2.26.11 - 2019-12-02

Version 2.26.10 - 2019-11-27

  • Update SmartAdServer to 7.3.0.

Version 2.26.9 - 2019-11-20

  • Fix real-time auction for infeed banner requests with specified allowed banner sizes.

Version 2.26.8 - 2019-10-21

  • Update SmartAdServer to 7.2.1.

Version 2.26.7 - 2019-10-18

  • Fix the ActivityNotFoundException from MRAIDNativeFeatureProvider (used for Rubicon and Amazon HB). This Exception occurred when an ad creativce provided invalid link URLs.

Version 2.26.6 - 2019-10-14

  • Update UnityAds to 3.3.0

Version 2.26.5 - 2019-10-11

  • Improved memory usage of Google fullscreen and rewarded video ads.

Version 2.26.4 - 2019-10-03

AndroidX

From this version on, AATKit uses AndroidX instead of old support libraries. Please visit the "Migrating to AndroidX" page for migration instructions.

Updated AdNetwork SDKs

  • AdColony to 4.1.0.
  • AmazonHB to 8.0.0.
  • AppLovin to 9.9.1.
  • AppNexus to 6.0.
  • FacebookAudienceNetwork to 5.5.0.
  • GooglePlayServicesAds to 18.2.0.
  • InMobi to 8.2.1.
  • MoPub to 5.9.1.
  • Ogury to 4.1.4.
  • UnityAds to 3.2.0.
  • Vungle to 6.4.11.
  • Yandex to 2.101.

Version 2.26.3 - 2019-09-19

  • First stable version of 2.26
  • Ad networks will be updated with future 2.26 versions

New features

  • Ad network CriteoSDK (SDK version 3.0.0), supporting banners and fullscreen ads.
  • Ad network InLoco (SDK version 4.4.3) - new optional network for Brazilian market, supports banner, fullscreen and native ads.
  • Added support for DFP rewarded video ads.

Version 2.25.19 - 2019-09-17

  • Update SmartAdServer to 7.2.0 - includes Android 10 compatibility improvements

Version 2.25.18 - 2019-09-09

  • Unity Ads will load only non-personalized ads if there is no consent information specified.

Version 2.25.17 - 2019-09-09

  • Fix potential ANR when application is paused during rule download.
  • Due to a problem with Unity Ads SDK, Unity ads will only load if there is consent information specified.

Version 2.25.16 - 2019-08-28

  • Fix problem with ads unloading in case of timeout.

Version 2.26.2 (beta) - 2019-08-27

  • Added new network Criteo_SDK (SDK version 3.0.0), supporting banners and fullscreen ads.
  • Added support for DFP rewarded video ads.
  • Improved memory usage of AdMob and DFP banner ads.

Version 2.25.15 - 2019-08-26

  • Fix potential null pointer in Criteo native ad.

Version 2.26.1 (beta) - 2019-08-14

  • Changes from last stable builds.

Version 2.25.14 - 2019-08-14

  • Improved IAB-CMP by providing more information to the end user.

Version 2.25.13 - 2019-08-01

  • Removed an interaction between simpleConsent and IAB consent management.

Version 2.25.12 - 2019-07-25

  • Due to frequent problems, SmartAdServer is now automatically disabled on devices running Android 4.4. See also the "Ad network specific information" part of our documentation to learn more.

Version 2.26.0 (beta) - 2019-07-17

New ad networks

  • InLoco (SDK version 4.4.3) - new optional network for Brazilian market, supports banner, fullscreen and native ads.

To use it, add the following dependency:

implementation 'com.inlocomedia.android:android-sdk-ads:4.4.3'
Please also note that InLoco recommends additional permissions for better targeted ads, see more here.

Version 2.25.11 - 2019-07-17

Updated AdNetwork SDKs

  • InMobi to 8.1.3.
  • Yandex to 2.100.

Version 2.25.10 - 2019-07-08

  • first stable version of 2.25
  • Supports all Android versions higher than 4.0.1 (API level 14).

New features

  • New, simplified screen asking for IAB consent. The method for showing consent screen (managedConsent.presentConsentDialog(...)) will automatically decide whether to present simplified dialog or full consent activity.
  • Implemented handling of simple (not-IAB) consent with our CMP. To use this feature, simply do not call (now deprecated) setSimpleConsent method on AATKitConfiguration and use the ManagedConsent as DetailedConsent.
  • Added support for AppLovin zoneIDs.
  • Added MRAID support for Criteo and Rubicon ad networks.
  • Forced banner placement reloads will now work even if autoreloading is used.

API changes

New methods

  • New method for creating native placement: createNativeAdPlacement(String name, boolean supportsMainImage).
  • New method for attaching native ads to layout: attachNativeAdToLayout(NativeAdData nativeAd, ViewGroup layout, View mainImageView, View iconView).
  • See updated native ads instructions to learn how to support also updated Facebook Audience Network native ads.

Deprecated methods

  • Old methods for creating native placement and attaching native ads to layout are now deprecated.
  • setSimpleConsent method is now deprecated.

Removed Promo placement

  • All promo-related methods (enablePromo, disablePromo, preparePromo, showPromo) are removed.

New ad networks

  • AmazonHB (SDK version 7.4.3), supporting banner and fullscreen.
    • To make project integrating AmazonHB library compile properly, you need to set your project's Target Compatibility to 1.8. See here for more instructions.
  • Optional ad network Yandex (SDK version 2.91), supporting banner and fullscreen. See integration instructions to learn more.

Removed ad networks

  • House
  • Thirdpresence VAST networks

Updated AdNetwork SDKs

  • AdColony to 3.3.10.
  • AppLovin to 9.7.2.
  • AppNexus to 5.3.
  • FacebookAudienceNetwork to 5.3.0
  • Flurry to 11.6.0.
  • GooglePlayServicesAds to 17.2.1.
  • InMobi to 8.0.9
  • MoPub to 5.7.0.
  • Ogury to 3.0.36.
  • OneByAOL to 6.8.3.
  • Smaato to 9.1.5.
  • SmartAdServer to 7.0.5.
  • UnityAds to 3.0.3.

Version 2.25.9 (beta) - 2019-06-12

API changes

New methods

  • New method for creating native placement: createNativeAdPlacement(String name, boolean supportsMainImage).
  • New method for attaching native ads to layout: attachNativeAdToLayout(NativeAdData nativeAd, ViewGroup layout, View mainImageView, View iconView).

Deprecated methods

  • Old methods for creating native placement and attaching native ads to layout are now deprecated.

Updated AdNetwork SDKs

  • AdColony to 3.3.10.
  • AppLovin to 9.6.0.
  • AppNexus to 5.3.
  • FacebookAudienceNetwork to 5.3.0
  • Flurry to 11.6.0.
  • GooglePlayServicesAds to 17.2.0.
  • InMobi to 8.0.9
  • MoPub to 5.7.0.
  • Ogury to 3.0.36.
  • OneByAOL to 6.8.3.
  • Smaato to 9.1.5.
  • SmartAdServer to 7.0.5.
  • UnityAds to 3.0.3.
  • Yandex to 2.91.

Yandex is now on optional library

  • Yandex has been removed from standard integration. To use it, it must be added manually by adding the following depencency in your app's build.gradle file (both Yandex libraries are necessary):
    dependencies {
        //... other project dependencies
        implementation ('com.intentsoftware.addapptr:AATKit:2.25.9') {
            transitive = true
        }
    
        implementation 'com.yandex.android:mobileads:2.91'
        implementation 'com.yandex.android:mobmetricalib:3.6.1'
    }
    
    Please keep in mind that AppMetrica library used by Yandex will start another process of your app, thus calling your application's onCreate() method again. Please make sure to only initialize AATKit from the main process. See also here.

Version 2.25.8 (beta) - 2019-04-24

  • Fixed simplified consent dialog look when custom theme is used.
  • Allow forced banner reloads to work even if autoreloading is used.

Version 2.25.7 (beta) - 2019-04-08

  • Implemented usage statistics for simplified CMP dialog.

Version 2.25.6 (beta) - 2019-04-04

  • Added separate layout for landscape mode for simplified screen asking for consent.

Version 2.24.19 - 2019-04-04

  • Fixed potential NPE when user quickly clicks "OK" button on CMP screen multiple times.

Version 2.25.5 (beta) - 2019-04-02

  • Fixed CMP screen behaviour when there is no network connection available.
  • Fixed layout of simplified consent screen to fit on small screens in horizontal orientation.

Version 2.25.4 (beta) - 2019-03-28

  • Removed House ad network.
  • Added MRAID support for Criteo and Rubicon ad networks.
  • Deprecated setSimpleConsent method.
  • Implemented handling of simple (not-IAB) consent with our CMP. To use this feature, simply do not call (now deprecated) setSimpleConsent method on AATKitConfiguration and use the ManagedConsent as DetailedConsent.

Version 2.24.18 - 2019-03-04

  • Updated InMobi to 7.2.7.

Version 2.24.17 - 2019-02-28

  • Updated SmartAdServer to 7.0.3.

Version 2.25.3 (beta) - 2019-02-27

  • Removed the presentSimplifiedConsentDialog(Activity activity, Runnable onCompletion). Instead, the old method for showing consent screen (managedConsent.presentConsentDialog(...)) will automatically decide whether to present simplified dialog or full consent activity.
  • Updated AppLovin to 9.3.0.

Version 2.25.2 (beta) - 2019-02-25

  • Improved CMP experience.
  • Removed Thirdpresence VAST network.

Version 2.25.1 (beta) - 2019-02-15

  • Removed Promo placement.
  • Updated AppLovin to 9.2.1.
  • Added support for AppLovin zoneIDs.
  • Added new network Yandex, supporting banners and fullscreen ads.
  • Added new, simplified screen asking for IAB consent. To show it, call new method presentSimplifiedConsentDialog(Activity activity, Runnable onCompletion) available in ManagedConsent, for example like:
#!java

    @Override
    public void onCreate() {
        super.onCreate();

        AATKitConfiguration config = new AATKitConfiguration(this);
        config.setDelegate(this);

        config.setConsentRequired(true);
        config.setSimpleConsent(AATKit.Consent.OBTAINED);
        ManagedConsent managedConsent = new ManagedConsent(this);
        config.setDetailedConsent(managedConsent);

        AATKit.init(config);

        (...)
    }

    @Override
    public void managedConsentNeedsUserInterface(ManagedConsent managedConsent) {
        managedConsent.presentSimplifiedConsentDialog(activity, new Runnable() {
                @Override
                public void run() {
                    // onCompletionRunnable will be run after the consent is saved and consent dialog closed. You can pass null instead of an Runnable instance if you are not interested in this event.
                }
            });
    }

Version 2.24.16 - 2019-02-07

  • Update InMobi to 7.2.4.
  • Implemented consent handling for the following VAST networks: DFP, Smaato, SmartAdServer and GenericVAST.

Version 2.24.15 - 2019-01-28

  • Fixed memory leak in Flurry implementation.
  • Fixed debug-shake screen information about last shown video ad.

Version 2.25.0 (beta) - 2018-12-21

  • New network - AmazonHB (SDK version 7.4.3), supporting banner and fullscreen.
  • To make project integrating AmazonHB library compile properly, you need to set your project's Target Compatibility to 1.8. See here for more instructions.

Version 2.24.14 - 2018-12-20

  • first stable version of 2.24
  • Supports all Android versions higher than 4.0.1 (API level 14).
  • From this version, by default Google Unified Native Ads are used (for AdMob and DFP)

AddApptr CMP

Version 2.24 introduces AddApptr CMP. To use it, use ManagedConsent as DetailedConsent (in AATKitRuntimeConfiguration) and implement ManagedConsentDelegate. Code sample:

#!java

    @Override
    public void onCreate() {
        super.onCreate();

        AATKitConfiguration config = new AATKitConfiguration(this);
        config.setDelegate(this);

        config.setConsentRequired(true);
        config.setSimpleConsent(AATKit.Consent.OBTAINED);
        ManagedConsent managedConsent = new ManagedConsent(this);
        config.setDetailedConsent(managedConsent);

        AATKit.init(config);

        (...)
    }

    @Override
    public void managedConsentNeedsUserInterface(ManagedConsent managedConsent) {
        // show the consent dialog, like managedConsent.presentConsentDialog(activity, onCompletionRunnable);
        // onCompletionRunnable will be run after the consent is saved and consent dialog closed. You can pass null if you are not interested in this event.
    }

Please also make sure that the CMP dialog can be opened later (by calling managedConsent.presentConsentDialog(...)), for example via app settings, so that user can change initial consent settings later.

If you want to limit the set languages that should be supported by CMP screen (by default all languages are supported), you can use the following method from ManagedConsent class: setSupportedLanguages(List<ManagedConsent.Language> languages)

Updated AdNetwork SDKs

  • AdColony to 3.3.5.
  • AppLovin to 8.1.4.
  • AppNexus to 4.11.2.
  • FacebookAudienceNetwork to 4.28.2.
  • Flurry to 11.4.0.
  • Google Play Services to 16.0.0.
  • InMobi to 7.2.1.
  • MoPub to 5.4.0.
  • Ogury to 3.0.28
  • OneByAOL to 6.8.2.
  • SmartAdServer to 7.0.1 - should solve an issue with Google Play store policy.
  • UnityAds to 3.0.0.
  • Vungle to 6.3.24.

Removed network

  • LoopMe

Version 2.23.29 - 2018-12-14

  • Updated SmartAdServer to 6.10.1 - should solve an issue with Google Play store policy.

Version 2.24.13 (beta) - 2018-12-13

  • Fix resource error when uploading to GooglePlay.

Version 2.24.12 (beta) - 2018-12-12

  • Implement workaround for SSL problems on some devices running Android 4.

Version 2.23.28 - 2018-12-10

  • Fix androidSupport dependency for OneByAOL library.

Version 2.24.11 (beta) - 2018-12-05

  • Update SmartAdServer to 7.0.0.
  • Added option to set languages that should be supported by CMP screen (by default all languages are supported):
    • introduced new enum lisitng available languages: ManagedConsent.Language
    • introduced new method in ManageConsent class: setSupportedLanguages(List<ManagedConsent.Language> languages)

Version 2.23.27 - 2018-12-05

  • Update OneByAOL to 6.8.2.
  • if you encounter error like resource android:attr/fontVariationSettings not found., please change your compileSdkVersion to 28.

Version 2.24.10 (beta) - 2018-11-28

  • Supports all Android versions higher than 4.0.1 (API level 14).

  • Improved SmartAdServer fullscreen implementation.

Version 2.24.9 (beta) - 2018-11-19

  • Supports all Android versions higher than 4.0.1 (API level 14).
  • Fix from 2.23.26

Version 2.23.26 - 2018-11-19

  • Supports all Android versions higher than 4.0.1 (API level 14).
  • Fixed Proguard config for SmartAdServer network.

Version 2.24.8 (beta) - 2018-11-15

  • Fix from 2.23.25.

Updated AdNetwork SDKs

  • Flurry to 11.4.0.
  • Vungle to 6.3.24.

Version 2.23.25 - 2018-11-15

  • Fixed problem with WRITE_EXTERNAL_STORAGE permission when Vungle is used.

Version 2.24.7 (beta) - 2018-11-13

Updated AdNetwork SDKs

  • AdColony to 3.3.5.
  • AppLovin to 8.1.4.
  • AppNexus to 4.11.2.
  • FacebookAudienceNetwork to 4.28.2.
  • Google Play Services to 16.0.0.
  • InMobi to 7.2.1.
  • MoPub to 5.4.0.
  • Ogury to 3.0.28
  • UnityAds to 3.0.0.
  • Vungle to 6.3.17.

Removed ad networks

  • Permodo
  • AppNexus Header Bidding

Version 2.23.24 - 2018-11-08

  • Update SmartAdServer to 6.10.0, fix SmartAdServer to work on Android 9.
  • Improve Vungle fullscreen implementation.

Version 2.24.6 (beta) - 2018-10-24

  • Changes from 2.23.23.

Version 2.23.23 - 2018-10-24

  • Updated Smaato to 9.1.2.

Version 2.24.5 (beta) - 2018-10-18

  • Changes from 2.23.22.

Version 2.23.22 - 2018-10-18

  • Brought back location-related code that was removed in 2.23.21.
  • By default, sending of location data is disabled.

Removed networks:

  • Amazon
  • OpenX

Version 2.24.4 (beta) - 2018-09-16

  • Changes from 2.23.21.
  • Improved theme for CMP screen.
  • Automatically disable SmartAdServer on Android 9 (when new target SDK is used).

Version 2.23.21 - 2018-10-15

  • Intermediate version
  • Because of issues with the Google Playstore
  • Remove ALL location-related code from AATKit
  • By default disable geo tracking for ad networks supporting it

Version 2.24.3 (beta) - 2018-09-25

  • Updated OneByAOL to 6.8.2.
  • Implemented realtime auction for OneByAOL and SmartAdServer.

Version 2.23.20 - 2018-09-13

  • Fix javadoc

Version 2.24.2 (beta) - 2018-09-11

  • Fixes from last stable.
  • CMP screen improvements.

Version 2.23.19 - 2018-09-10

  • Fixed SpotX VAST implementation.
  • Improved destroying of infeed banners.

Version 2.24.1 (beta) - 2018-09-03

  • Fix problem with Google native ads main image asset not loading properly into MediaView.

Version 2.23.18 - 2018-09-03

  • Fix problem with Google native ads main image asset not loading properly into MediaView.

Version 2.24.0 (beta) - 2018-08-31

  • From this version, Google Unified Native Ads will be used by default.

AddApptr CMP

This version introduces AddApptr CMP. To use it, use ManagedConsent as DetailedConsent (in AATKitRuntimeConfiguration) and implement ManagedConsentDelegate. Code sample:

#!java

    @Override
    public void onCreate() {
        super.onCreate();

        AATKitConfiguration config = new AATKitConfiguration(this);
        config.setDelegate(this);

        config.setConsentRequired(true);
        config.setSimpleConsent(AATKit.Consent.OBTAINED);
        ManagedConsent managedConsent = new ManagedConsent(this);
        config.setDetailedConsent(managedConsent);

        AATKit.init(config);

        (...)
    }

    @Override
    public void managedConsentNeedsUserInterface(ManagedConsent managedConsent) {
        // show the consent dialog, like managedConsent.presentConsentDialog(activity, onCompletionRunnable);
        // onCompletionRunnable will be run after the consent is saved and consent dialog closed. You can pass null if you are not interested in this event.
    }

Please also make sure that the CMP dialog can be opened later (by calling managedConsent.presentConsentDialog(...)), for example via app settings, so that user can change initial consent settings later.

Removed network

  • LoopMe

Version 2.23.17 - 2018-08-30 (New Stable Release)

New features

Native ad advancements

Support implementation of Google Unified Native Ads. The App Install Native Ads and Content Native Ads are deprecated. Please have a look at our documentation.

New ad network

  • Rubicon, supporting banner ads

Removed ad network

  • Nexage
  • RevMob

Version 2.23.15 - 2018-08-23

  • Improved targeting for OneByAOL.

Version 2.23.14 (beta) - 2018-08-10

  • Fix from 2.22.22.

Version 2.22.22 - 2018-08-10

  • Fix AppLovin integration.

Version 2.23.13 (beta) - 2018-08-08

  • Added support for 320x160 and 320x480 OneByAOL banners.

Version 2.23.12 (beta) - 2018-07-31

  • Changes from 2.22.20 and 2.22.21.

Version 2.22.21 - 2018-07-31

  • Fix Proguard configuration problem when some ad networks are removed.

Version 2.22.20 - 2018-07-27

  • Fixed error when disabling ad networks before calling AATKit.init(...)
  • Implemented passing of full consent string for SpotX VAST ads.

Version 2.23.11 (beta) - 2018-07-19

  • Added support for Google Unified Native Ads. The old formats (App Install and Content Native Ads) are now deprecated. Please see our updated documentation.
  • The method AATKit.getNativeAdType is now deprecated.

Version 2.23.10 (beta) - 2018-07-18

  • Improvements for parsing of real-time auction configs.
  • Improvements for unloading of networks using WebViews.
  • Added passing of full IAB ConsentString to SpotX (VAST).

Version 2.23.9 (beta) - 2018-07-13

  • Added support for OneByAOL Smart Banners. To use it, you will need to use the new method setBannerContainer(ViewGroup bannerContainer) of BannerRequest, passing the ViewGroup where the SmartBanner will be displayed.
  • Fix potential StackOverflowException when there are multiple pending infeed banner requests when activity finishes.
  • Removed Nexage network.
  • Added new ad network- Rubicon, currently supporting banners.
  • Added support for AppNexus autoclosing fullscreen ads. To use it, add meta-data to AndroidManifest like:
    <meta-data
        android:name="com.intentsoftware.addapptr.appnexus_autoclose_delay"
        android:value="5"/>
    
    to make AppNexus fullscreens close automatically after 5 seconds.

Version 2.22.19 - 2018-07-13

  • Fix problem with detecting if MoPub SDK is available if only some modules of it were added.

Version 2.23.8 (beta) - 2018-06-26

  • Fix potential ConcurrentModificationException problem.
  • Improve AdColony implementation to allow using of multiple zoneIds.

Version 2.23.7 (beta) - 2018-06-19

  • Fixed problem with infeed banner reloading.

Version 2.23.6 (beta) - 2018-06-15

  • Changes from 2.22.18.
  • Removed method AATKit.setGeoTrackingEnabled(boolean geoTrackingEnabled) introduced in 2.23.1 (please use new method introduced in 2.22.18 instead).
  • Ad reloading improvements.

Version 2.22.18 - 2018-06-15

Version 2.23.5 (beta) - 2018-06-05

  • Changes from 2.22.17.

Version 2.22.17 - 2018-06-05

  • Moved Consent enum from AATKitConfiguration to AATKit.
  • Added option to change GDPR settings at runtime. See here to learn more
  • Updated Smaato to 8.0.1.
  • Updated GDPR handling for Criteo.

Version 2.23.4 (beta) - 2018-05-30

  • Changes from 2.22.16.

Version 2.22.16 - 2018-05-30

  • Implemented targeting for OneByAOL.

Version 2.23.3 (beta) - 2018-05-29

  • Fixes from 2.22.15.

Version 2.22.15 - 2018-05-29

  • Allow disabling of ad networks before AATKit.init().
  • Fix excepion handling when setting GDPR data for networks.

Version 2.23.2 (beta) - 2018-05-28

  • Fixes from 2.22.14.

Version 2.22.14 - 2018-05-28

  • Fix unloading of native ads.
  • Fix Proguard configuration.

Version 2.23.1 (beta) - 2018-05-25

  • All the changes from 2.22.13
  • Improved debug logs
  • Improved ad loading logic when activity gets paused during reload.
  • New method allowing to enable/disable sending of location data.
    • AATKit.setGeoTrackingEnabled(boolean geoTrackingEnabled)

Version 2.22.13 - 2018-05-24

GDPR

Updated AdNetwork SDKs

  • AdColony to 3.3.4.
  • AppLovin to 8.0.1.
  • AppNexus to 4.8.0.
  • FacebookAudienceNetwork to 4.28.1.
  • Flurry to 10.1.0.
  • GooglePlayServices to 15.0.1.
  • InMobi to 7.1.0.
  • MoPub to 5.0.0.
  • OneByAOL to 6.8.1.
  • Smaato to 8.0.0.
  • SmartAdServer to 6.9.0.
  • UnityAds to 2.2.1.
  • Vungle to 6.2.5.

Version 2.22.12 - 2018-04-12

  • Updated Criteo implementation to handle changed API.

Version 2.23.0 (beta) - 2018-03-22

  • Prepares real-time auction and MAYO (Machine learning Automated Yield Optimization).

Version 2.22.11 - 2018-03-22

  • Improved debug logs.

Version 2.22.10 - 2018-03-15

  • Update InMobi to 7.0.4.

Version 2.22.9 - 2018-02-19

  • first stable version of 2.22
  • Improved implementation of DFP native ads.

Version 2.22.8 (beta) - 2018-02-16

  • Added support for React Native plugin.

Version 2.22.7 (beta) - 2018-02-02

New initializing method

  • init(AATKitConfiguration configuration) - new initializing accepts AATKitConfiguration instance, which allows to fine-tune the behaviour of AATKit.

AATKitConfiguration object

Constructor

  • AATKitConfiguration(Application application) is the only available constructor. It requires the application instance.

Methods

  • setDelegate(AATKit.Delegate delegate) - Sets the delegate notifying about AATKit events.
  • setUseDebugShake(boolean useDebugShake) - Sets if the debug screen should be displayed after shaking the device. It is enabled by default.
  • setShouldCacheRules(boolean shouldCacheRules) - Allows the AATKit to preserve last downloaded ad rules when the application is closed. Such rules will be re-used next time the application is started, before new ones get downloaded. Enabled by default.
  • setTestModeAccountId(int testModeAccountId) - Enables AATKit test ads. It should be used only for testing during development. Cannot be used together with alternative bundle ID.
  • setInitialRules(String initialRules) - Sets the ad rules that will be used before real rules from the server are downloaded.
  • setAlternativeBundleId(String alternativeBundleId) - Sets the fake bundle ID for testing purposes. It should only be used during development. Cannot be used together with classic test mode.
  • setShouldReportUsingAlternativeBundleId(boolean shouldReportUsingAlternativeBundleId) - If used together with setAlternativeBundleId allows to set if the same fake bundle ID should be used in reporting. True by default. If set to false, real bundle ID will be used in reporting even if fake one is used for testing.

Deprecated methods

  • All other init methods are now deprecated.
  • enableTestMode method is now deprecated. Plase use new initializing method instead.

New ad network

  • Vungle - supporting fullscreen and rewarded video ads

Removed ad network

  • SmartStream

Updated AdNetwork SDKs

  • AdColony to 3.3.0
  • Amazon to 5.8.2
  • AppLovin to 7.7.0
  • AppNexus to 4.5
  • FacebookAudienceNetwork to 4.27.0
  • Flurry to 8.2.0
  • GooglePlayServices to 11.8.0
  • LoopMe to 5.2.8
  • MoPub to 4.19.0
  • Ogury to 2.2.7
  • OneByAOL to 6.7.0
  • Smaato to 7.2.0
  • UnityAds to 2.1.2

Other changes

  • Number of RewardedVideo placements is now limited to one.

Version 2.22.6 (beta) - 2018-01-12

  • Removed PubMatic network.
  • Added Thirdpresence ad network, supporting VAST ads.

New networks with native ads:

  • AppLovin
  • SmartAdServer

Following VAST networks will now use https connection:

  • Smaato
  • SmartAdServer
  • SpotX

Version 2.22.5 (beta) - 2018-01-05

  • Removed Millennial network
  • Added OneByAOL ad network (with banner and fullscreen)

Version 2.22.4 (beta) - 2018-01-04

  • Updated AppLovin to version 7.6.2.
  • Removed Opera (Apprupt) network.
  • Fixed potential crash when parsing VAST response.
  • Changed reporting of network keys for VAST

Version 2.21.7 - 2018-01-04

  • Fix potential NPE in new banner placement (infeed banner) when ad fails to be requested.

Version 2.22.3 (beta) - 2017-12-19

  • added genericVAST network for testing VAST tags

Version 2.22.2 (beta) - 2017-12-15

New placement type for rewarded video ads

This new placement type will show only rewarded video ads. It can be created using the new method: AATKit.createRewardedVideoPlacement(String name). If you’ve used rewarded videos before with the fullscreen placement, please make sure to use a different placement name for your new “Rewarded” placement.

Currently the following networks are supported:

  • AdColony
  • AdMob
  • AppLovin
  • Facebook
  • Flurry
  • InMobi
  • LoopMe
  • MoPub
  • RevMob
  • Smaato
  • SmartStream
  • Unity

New methods for setting of content targeting URL (see here to learn more):

  • AATKit.setContentTargetingUrl(String targetingUrl) - Sets the targeting URL for the application. It will only be used for placements without special targeting URL information specified.
  • AATKit.setContentTargetingUrl(int placementId, String targetingUrl) - Sets the targeting URL for the given placement. Overrides general targeting URL set for application.

Similar method was also added for new banner placment type (infeed banner). You can call:

  • setContentTargetingUrl(String contentTargetingUrl)

on an instance of BannerRequest to set the tergeting URL for it.

Version 2.21.6 - 2017-12-13

  • Improve reloading of new banner placement (infeed banner) when activity gets paused during reload.

Version 2.22.1 (beta) - 2017-12-05

  • Method isFrequencyCapReachedForPlacement now works also for fullscreen placements.

Version 2.21.5 - 2017-12-05

  • Improved SmartAdServer fullscreen handling.
  • First stable release from 2.21 series

Version 2.21.4 (beta) - 2017-11-24

  • Fixed problem when ad loading is started on finishing activity.

Version 2.22.0 (beta) - 2017-11-09

New features

New ad format introduced - VAST ads. You can read more on integrating VAST ads here. For now, VAST ads are available from the following ad networks:

  • DFP
  • LoopMe
  • Smaato
  • SmartAdServer
  • SpotX

API changes

  • Method AATKit.reportAdSpaceForNativePlacement is now deprecated. Instead, method AATKit.reportAdSpaceForPlacement working for both native and VAST placements was introduced.
  • Method AATKit.isFrequencyCapReachedForNativePlacement is now deprecated. Instead, method AATKit.isFrequencyCapReachedForPlacement working for both native and VAST placements was introduced.

Version 2.21.3 (beta) - 2017-11-08

  • This version was build using Android API 26.

Updated ad network SDKs

  • GooglePlayServices to 11.4.2.
  • AppLovin to 7.4.1.
  • AppNexus to 3.5.
  • FacebookAudienceNetwork to 4.26.1.
  • Flurry to 8.0.2.
  • LoopMe to 5.2.6.
  • MoPub to 4.18.0.
  • Ogury to 2.1.17.
  • SmartAdServer to 6.7.2.

Version 2.21.2 (beta) - 2017-11-02

  • Updated Apprupt to 4.2.8 (fixing problem on Oreo devices).

Version 2.20.16 - 2017-11-02

  • Updated Apprupt to 4.2.8 (fixing problem on Oreo devices).

Version 2.21.1 (beta) - 2017-10-26

  • Introduced InMobi interval timer.

Version 2.21.0 (beta) - 2017-10-20

New features

  • Completely new banner placement designed especially for using banners within feeds. Read here to learn more.
  • With automatic reloading enabled, banners will also automatically reload immediately after coming back from banner click.
  • RevMob now supports also native ads

New ad networks

  • Criteo, supporting banner, fullscreen and native ads

Updated ad network SDKs

  • AppLovin to 7.3.2.
  • Facebook to 4.26.0.
  • Flurry to 7.2.3.
  • InMobi to 6.2.4.
  • LoopMe to 5.2.1.
  • Millennial to 6.6.1.
  • MoPub to 4.17.0.
  • RevMob to 10.0.0.
  • smaato to 6.1.1.
  • SmartAdServer to 6.7.1.
  • UnityAds to 2.1.1.

Version 2.20.15 - 2017-10-09

  • Updated AdColony to 3.2.1.

Version 2.20.14 (beta) - 2017-09-22

  • Special build for Marmelade plugin.

Version 2.20.13 - 2017-09-22

  • Added support for rewarded video ads for FacebookAudienceNetwork

Updated ad network SDKs

  • FacebookAudienceNetwork to 2.25.0
  • GooglePlayServices to 11.0.4.

Version 2.20.12 - 2017-09-05

  • Improved demand for AppNexus banners.
  • Fixed SmartAdServer library causing potential problem with manifest merging.

Version 2.20.11 - 2017-08-18

  • Updated Ogury to 2.1.14.
  • Better handling of accelerometer when debug-shake is enabled.

Version 2.20.10 - 2017-08-17

  • Fixed Proguard configuration.

New optional ad network Ogury

  • Supporting fullscreen ads.
  • Library version 2.1.13.
  • Ogury is not part of our standard configuration. Please contact our support in case you want to use it.

Version 2.20.9 - 2017-08-09

  • Fixed bug with crashes after removing of Smaato library.

Version 2.20.8 - 2017-08-09

  • Updated SmartAdServer to 6.7.0.
  • Fixed memory leak in multi-size banners.

Version 2.20.7 (beta) - 2017-07-18

  • Changed requirements for AppNexus native ad impression to be counted.

Version 2.20.6 (beta) - 2017-07-14

  • Fixed impression reporting for AppNexus native ads.

Version 2.20.5 (beta) - 2017-07-07

  • Removed AppNexus prebid libraries from default distribution. To be used, they have to be added manually (similarly to OpenX).

Version 2.20.4 (beta) - 2017-07-07

  • Added AppNexus prebid for DFP and MoPub (banners and interstitials)

Version 2.20.3 (beta) - 2017-07-05

  • Fixed SmartAdServer library removing conflict with AppLovin.

Version 2.20.2 (beta) - 2017-07-04

  • Fixed uncontrolled reloading of Inneractive banners.

Version 2.20.1 (beta) - 2017-07-03

  • Fixed statistics reporting name for AppNexus.

Version 2.20.0 (beta) - 2017-06-23

  • New form of distribution- Maven repository. Instructions can be found here.
  • In classical distribution package, every network is now in separate .aar
  • Min Android API version changed to 14
  • There is no need to manually insert Proguard configuration- all required declarations are embedded in .aars
  • AppLovin- the "aatkitUserEarnedIncentive" callback is no longer available
  • MoPub rewarded video ads now support click notifications

Updated Ad Network SDKs

  • AdColony to 3.1.2
  • AppLovin to 7.2.0
  • Facebook to 4.23.0
  • Flurry to 7.0.0
  • Google Play Services to 11.0.0
  • LoopMe to 5.1.7
  • Millennial to 6.4.0
  • MoPub to 4.14.0
  • PubMatic to 5.2.0
  • Smaato to 6.1.0
  • SmartAdServer to 6.6.6

New Ad Networks

  • AppNexus (version 3.3)
  • Inneractive (version 6.5.4)

Removed Ad Networks

  • MdotM

Version 2.19.23 - 2017-04-19

  • Updated FacebookAudienceNetwork support for SDK version 4.22.0. Please make sure to use updated FacebookAudienceNetwork when updating to this version.

Version 2.19.22 - 2017-04-13

  • Improved SmartAdServer interstitial handling.

Version 2.19.21 - 2017-03-31

  • Added initial layout parameters for banner placements (fixing the problem with Amazon banners trying to take whole screen width). Please double check if your banners display correctly after updating.

Version 2.19.20 - 2017-03-30

  • Fixed MoPub native ads handling.

Version 2.19.19 - 2017-03-23

  • Last beta version (2.19.19) is now considered stable. This is the first stable release from 2.19 series, please see updated integration instructions.

Version 2.19.19 (beta) - 2017-03-03

  • Changed protocol version used in communication with AddApptr.
  • Dropped support for old Eclipse format

Version 2.19.18 (beta) - 2017-02-22

  • Added Proguard config to .aar distribution.

Version 2.19.16 (beta) - 2017-02-16

Updated Ad Network SDKs

  • AdColony to 3.0.7.

Version 2.19.15 (beta) - 2017-02-10

  • Implemented auto-closing of SmartAdServer fullscreen ads.

Version 2.19.14 (beta) - 2017-02-07

  • Improved statistics for fullscreen placement.

Version 2.19.13 (beta) - 2017-02-02

  • Updated SDKs of ad networks. See "AATKit 2.19 - notes.txt" file in beta package for updated Gradle dependencies.
  • Added methods allowing to send keyword targeting only to selected networks, see methods below:

New methods

  • addAdNetworkForKeywordTargeting(AdNetwork network) - Adds an ad network to the list of ad networks that receive targeting keywords (if any set). If no ad networks are added, any set keywords will be delivered to all ad networks supporting keyword targeting.

  • removeAdNetworkForKeywordTargeting(AdNetwork network) - Removes an ad network from the list of ad networks that receive targeting keywords (if any set). If no ad networks are added to the list, any set keywords will be delivered to all ad networks supporting keyword targeting.

Updated Ad Network SDKs

  • Google Play Services to 10.0.1
  • Amazon to 5.8.1.1
  • LoopMe to 5.1.1
  • Millennial to 6.3.1
  • MoPub to 4.11.0
  • Smaato to 5.1.1
  • SmartAdServer to 6.6.2
  • UnityAds to 2.0.8

Version 2.19.12 (beta) - 2017-01-26

  • Further improvements for SmartAdServer fullscreen ads.

Version 2.19.11 (beta) - 2017-01-25

  • Brought back Permodo network with updated SDK (v 3.4.1).
  • Improved displaying of SmartAdServer interstitial ads.
  • Use Application context (as opposed to Activity context) when creating WebViews (to solve potential problem with Accessibility).

Version 2.18.15 - 2016-12-15

  • Fixed problem with ad config distribution when placement is created after config gets downloaded.

Version 2.19.10 (beta) - 2016-12-15

  • Fixed problem with ad config distribution when placement is created after config gets downloaded.

Version 2.18.14 - 2016-12-12

  • Added checking of placement name when placement is created- empty names are not allowed.

Version 2.19.9 (beta) - 2016-12-12

  • Added checking of placement name when placement is created- empty names are not allowed.

Version 2.19.8 (beta) - 2016-12-05

Updated Ad Network SDKs

  • SmartAdServer to 6.5.

Version 2.19.7 (beta) - 2016-12-02

  • Implemented keyword targeting for RevMob ads.

Version 2.19.6 (beta) - 2016-12-01

  • Added support for MoPub rewarded video ads. See the "AATKit 2.19 - notes.txt" file in beta package for updated Gradle dependency.

New ad network

  • RevMob (SDK version 9.2.3), supporting banners, static interstitials, fullscreen video and rewarded video ads.

Version 2.18.13 - 2016-11-17

  • Fixed handling of potential null pointer when accessing Google Advertising Id.

Version 2.19.5 (beta) - 2016-11-14

  • Added support for MoPub native ads. See their native ad guidelines here. See also the "AATKit 2.19 - notes.txt" file in beta package for updated Gradle dependency.
  • Fixed checking for location permissions to properly handle situations when permission is granted during runtime.
  • Added support for keyword targeting, see methods below:

New methods

  • setTargetingInfo(Map<String, List<String>> info) - Sets the targeting information for the application. Accepts targeting information in the form of key-list of values map. It will only be used for placements without special targeting information specified.
  • setTargetingInfo(int placementId, Map<String, List<String>> info) - Sets the targeting information for the given placement. Overrides general targeting information set for application.

Version 2.19.4 (beta) - 2016-10-25

  • Added support for DFP native ads. Please see the AATKit 2.19 - notes.txt file in beta package for updated instructions.

Updated Ad Network SDKs

  • MoPub to modular 4.10.0 version. Please see the AATKit 2.19 - notes.txt file in beta package for updated Gradle dependency.

Version 2.18.11 - 2016-10-18

  • Fixed potential crash in SmartAdServer fullscreen.

Updated Ad Network SDKs

  • SmartAdServer to 6.4.1.

Version 2.19.3 (beta) - 2016-10-06

  • Merged fix from stable 2.18.10.

Version 2.18.10 - 2016-10-06

Updated Ad Network SDKs

  • UnityAds to 2.0.5.

Version 2.19.2 (beta) - 2016-10-05

  • Merged fix from stable 2.18.9.

Version 2.18.9 - 2016-10-05

  • Updated library used by SmartStream.tv. If using Gradle, please see updated instructions.

Removed networks

  • Temporarily removed Permodo because of conflicting library version.

Version 2.19.1 (beta) - 2016-09-30

  • Merged fix from stable 2.18.8.

Version 2.18.8 - 2016-09-30

  • Fixed potential threading problem when reading of Google Advertising ID takes too much time.
  • This is the first stable release from 2.18 series- please see updated integration instructions.

Version 2.19.0 (beta) - 2016-09-28

  • Introduced new banner size, called MultiSizeBanner. See the"AATKit 2.19 - notes.txt" file provided with beta package for special integration instructions. See also the special demo app to see example implementation.

  • Extended the reporting to include rule-specific information.

New methods

  • delegate method public void aatkitHaveAdForPlacementWithBannerView(int placementId, BannerPlacementLayout bannerPlacementLayout) - called every time new ad is loaded for MultiSizeBanner placement. Please note that the aatkitHaveAd delegate method will NOT be called for MultiSizeBanner placement. The bannerPlacementLayout instance is simply a view of new loaded banner, having additional method described below.

  • bannerPlacementLayout.destroy() - needs to be called when the banner instance is no longer needed.

Version 2.18.7 (beta) - 2016-09-26

  • Changes from 2.16.12 (updated ad network SDKs).

Version 2.16.12 - 2016-09-26

Updated Ad Network SDKs:

  • SmartStream.tv to 1.4.7.
  • LoopMe to 5.0.

Version 2.18.6 (beta) - 2016-09-22

  • Fixed bug with processing initial rules.

Version 2.18.5 (beta) - 2016-09-13

  • Optimisations for short sessions.

New methods

  • boolean isTablet(Context context) - allows to check if AATKit recognises given device as tablet.

Version 2.18.4 (beta) - 2016-09-01

  • Fixed problem with SmartStream.tv dependencies. See "AATKit 2.18 - notes.txt" file attached to beta package for updated declarations.

Version 2.18.3 (beta) - 2016-08-31

  • Fixed potential problem with downloading server config.
  • Improved debug logs.

Updated Ad Network SDKs:

  • UnityAds to 2.0.2.

Version 2.18.2 (beta) - 2016-08-23

  • Improved adspace counting for manual banner reloads

New ad networks

  • Permodo- fullscreen

Version 2.18.1 (beta) - 2016-08-23

  • Android Manifest permission READ_PHONE_STATE is no longer required by standard integration.
  • Banner reloading mechanism has been optimized (both for automatic and manual reloading).

  • As according to OpenX documentation it requires READ_PHONE_STATE permission, it has been removed from standard integration. To use it, it must be added manually (both library project and .aar distributions are available in AATKit's package, within "optional" folder).

Changed methods

  • reloadPlacement(int placementId) - will not cause new banner to show more often than set banner refresh interval (default: 30s) - instead, it will set a timer to reload and show next ad when the refresh interval passes.

New ad network SDKs

  • PubMatic is available once again, in updated version 5.1.0.

Important notice about Google Play Services - As Google no longer supports library project distribution of Google Play Services, the builds provided with AATKit (for old Eclipse integration) should be treated as potentially unstable. Please consider moving to new build system.

Millennial SDK requires Android Support Library v4. It is also used by MoPub, but if you have removed MoPub library- please add Android Support Library v4 to your project separately.

Version 2.17.1 (beta) - 2016-08-08

Updated Ad Network SDKs:

  • Apprupt to 4.2.7.
  • AdColony now uses SDK separate to Apprupt (version of AdColony SDK - 2.3.6).

Version 2.17.0 (beta) - 2016-08-03

New and changed methods:

  • reloadPlacement(int placementId, boolean forceLoad) - passing "true" as forceLoad parameter allows to reload banner placement before standard reload time passes (30s by default).
  • reloadPlacement(int placementId) - will no longer allow you to reload banner placement before standard reload time passes (30s by default).

Deprecated methods:

  • enablePromo()
  • enablePromo(boolean onlyOnActivityChange)
  • disablePromo() Please see updated documentation for instructions on using Promo ads.

Removed methods:

  • void setPlacementSubID(int placementId, int subId)

Updated Ad Network SDKs:

  • Amazon to 5.7.2
  • Flurry to 6.4.2
  • Google Play Services to version 9.2.1 (see note below)
  • LoopMe to 5.0
  • Millennial to 6.3.0
  • MoPub to 4.7.1
  • Smaato now uses SDK integration. Version of SDK used: 5.0.6
  • SmartAdServer to 6.4
  • UnityAds to 1.5.8

Important notice about Google Play Services - As Google no longer supports library project distribution of Google Play Services, the builds provided with AATKit (for old Eclipse integration) should be treated as potentially unstable. Please consider moving to new build system.

Millennial SDK requires Android Support Library v4. It is also used by MoPub, but if you have removed MoPub library- please add Android Support Library v4 to your project separately.

Version 2.16.11 - 2016-08-02

  • Added missing aatkitPauseForAd and aatkitResumeAfterAd delegate notifications for native ads.

Version 2.16.10 - 2016-07-26

  • Brought back OpenX, updated to fixed version 3.2.5.

Version 2.16.9 - 2016-07-25

  • Fixed potential problem with adspaces counting when banner placement is reloaded manually.

Version 2.16.8 (internal beta) - 2016-07-19

  • Threading-related changes in ConfigDownloader

Version 2.16.7 - 2016-07-11

  • Improved Smaato integration for better ad targeting

Networks temporarily removed due to problems with their SDKs, causing warnings in Google Play :

  • OpenX
  • PubMatic

Version 2.16.6 - 2016-07-06

  • Fix bug from 2.16.5 with disabled ad networks

Version 2.16.5 - 2016-07-05

  • Added incentive earned callback for AppLovin video ads.

Updated ad network SDKs

  • AppLovin to 6.2.4

Version 2.16.4 - 2016-06-30

  • Fixed possible crash when too many native ads were loading in parallel.

Version 2.16.3 - 2016-06-21

  • Marged last changes from 2.15 version (updated PubMatic to 5.0.1).
  • The old method showPromo() is now deprecated, please use showPromo(boolean force) instead.

Version 2.15.26 - 2016-06-20

Updated ad network SDKs

  • PubMatic to 5.0.1. Please note that from this version PubMatic is no longer distributed as library project, but as two .jar files: pubmatic_banner_sdk.jar and pubmatic_common_sdk.jar

Version 2.16.2 (beta) - 2016-06-15

  • Added support for AdMob native ads. See here for special instructions on integrating AdMob native ads.
  • Added "Do not show again" option to debug-shake screen

Version 2.15.25 - 2016-05-16

  • Added incentive earned callback for SmartStream.tv video ads.

Updated ad network SDKs

  • SmartStream.tv to 1.4.5.

Version 2.15.24 - 2016-05-10

  • Added info about device type (phone/tablet) to debug screen.

Updated ad network SDKs

  • OpenX to special 3.2.3 addapptr-fix build

Version 2.15.23 - 2016-05-06

  • Added info about used package name to debug screen.

Updated ad network SDKs

  • MoPub to 4.6.1

Version 2.16.1 (beta) - 2016-05-05

  • Fixed potential null pointer in InMobi native ad.

Version 2.16.0 (beta) - 2016-04-29

New features

  • Again all networks are available after basic integration.
  • Rule caching is now enabled by default
  • "reloadPlacement" method will now return boolean value indicating if the call will cause the placement to reload- can be false if autoreloader is working for placement or when limit of native ads loading is reached.

Added support for native ads:

  • Flurry
  • Facebook Audience Network
  • InMobi

New methods:

  • allowing to get placement ID by its name:
    AATKit.getPlacementIdForName(placementName);
    
  • allowing to get debug info (the same that is displayed in debug-shake screen):
    AATKit.getDebugInfo();
    
  • Also two new "init" methods were introduced:
    AATKit.init(Application application, Delegate delegate, boolean enableRuleCaching, String initialRules)
    
    and
     AATKit.init(Application application, Delegate delegate, int testId)
    

Removed ad networks:

  • MobFox
  • AppLift
  • PlayHaven

Updated ad network SDKs

  • Apprupt to 4.2.4
  • AppLovin to 6.1.5
  • LoopMe to 4.7.0
  • MdotM to 3.6.2
  • SmartAdServer to 6.2.3
  • UnityAds to 1.5.6
  • GooglePlayServices to version 8487000

New ad networks

  • Flurry- banner, interstitial and native ads

Version 2.15.22 - 2016-04-05

  • Fixed Smaato banners for better response rate.

Version 2.15.21 - 2016-04-04

  • Fixed problem with MoPub dependency in Eclipse builds.

Version 2.15.20 - 2016-04-01

Updated ad network SDKs

  • MoPub to 4.5.1

Version 2.15.19 (beta) - 2016-03-22

  • Fixed problem with impression capping when fullscreen ad is closed just after being shown.
  • note - this version does not have changes from internal beta versions 2.15.17 and 2.15.18.

Version 2.15.18 (internal beta) - 2016-03-02

  • Fix cancelling of config download

Version 2.15.17 (internal beta) - 2016-02-10

  • Reorganized config downloading and parsing for better performance

Version 2.15.16 - 2016-02-04

Updated ad network SDKs

  • SmartStream.tv to 1.4.4

Version 2.15.15 - 2016-01-15

  • Fix some Smaato ads not displaying properly.

Version 2.15.14 (beta) - 2015-12-22

  • Randomized selection of ads with the same priority
  • Better SDK version reporting for the dashboard

Version 2.15.13 - 2015-12-22

  • Fix debug-shake for devices without accelerometer
  • Fix for potential PubMatic crash

Version 2.15.12 (beta) - 2015-12-07

  • Fix potential problem with creating placement after config download

Version 2.15.10 (beta) - 2015-11-23

  • Internal optimizations for plugin versions
  • General improvements in handling fullscreen ads

Version 2.15.8 - 2015-10-29

Updated ad network SDKs

  • Millennial to 6.1.

Version 2.15.7 - 2015-10-27

  • Fixed potential bug with config downloading when initial activity disappears too fast (range of seconds)
  • Improved handling of situations when fullscreen ad loads successfully, but cannot be shown (for example due to a problem with ad network SDK)
  • Improved AdColony error handling

Version 2.15.4 - 2015-10-20

  • Fixed bug with Smaato ads sometimes displaying incorrectly on Android versions Lollipop and newer.

Version 2.15.3 - 2015-10-7

Updated ad network SDKs

  • OpenX to 3.2.3.

Version 2.15.2 - 2015-10-5

New features

  • Added AATKit.hasAdForPlacement(int placementId) method, allowing to check if given placement has ad loaded.

Version 2.15.1 (beta) - 2015-09-14

New features

  • Starting with this version, by default not all ad networks are available after basic integration. To add more networks, please see the ”Integration of additional networks” part of instructions supplied with beta package.
  • It is no longer necessary to disable removed networks with "setNetworkEnabled(network, false)" after removing their library projects/jar's.

New ad networks

  • OpenX (v3.2.2)
  • PubMatic (v4.2.1)

Version 2.14.2 - 2015-09-14

  • Improved debug logs.

Version 2.14.1 (beta) - 2015-09-03

  • Changed the banner click fraud countermeasures to solve a potential problem when using only 1 ad network

Version 2.14.0 (beta) - 2015-08-26

New features

  • Enabling/disabling ad networks now work in runtime, not after obtaining new rules from server
  • Improvement in debug-shake screen- added information when new ad is currently loading for placement

  • Changes in AdNetwork enum:

    • RTB1 changed to Nexage
    • RTB2 changed to ADX
    • UNITY changed to UNITYADS
    • SMARTSTREAM changed to SMARTSTREAMTV

New ad networks

  • Amazon Ads (v5.6.20)
  • MoPub ads (v3.10.0)

Updated ad network SDKs

  • Google Play Services is updated to build 7895000, stripped down to minimum (only "ads", "common", "internal" and "dynamic" parts are left). If you use Google Play Services for anything more than ads, please use full version instead.
  • AppLovin to 6.0.1.
  • LoopMe to 4.3.0
  • SmartAdServer to 6.0.1
  • PlayHaven to 3.1.5
  • UnityAds to 1.4.7
  • MdotM to 3.5.1
  • Millennial to 6.0

Version 2.13.3 - 2015-08-14

New features

  • Improved adspace counting for interstitial ads.
  • Improved shake-motion detection for debug screen.

New ad networks

  • AdColony - with support for incentivised ads
  • LoopMe (v4.2.2) - with support for incentivised ads

Updated ad network SDKs

  • Apprupt - v4.0.4-2

Version 2.12.6 - 2015-06-22

New features

  • Support for rewarded/incentivised ads, added respective delegate method - aatkitUserEarnedIncentive(int placementId)
  • Improved shake debug screen - will now list also last shown interstitials

New ad networks

  • Unity Ads (v1.4.2) - with support for incentivised ads

Updated ad network SDKs

  • Google Play Services - to v7571000, stripped down to decrease number of methods (see here for more info)
  • Millennial - v5.4.0
  • InMobi - v4.5.5
  • GroupM/Smartstream.tv - v1.4.3
  • MobFox - v6.1.0
  • Apprupt - v3.5.1

Implementation changes

"Empty" ad network:

  • Fullscreen will now call aatkitPauseForAd(int placementId) and aatkitResumeAfterAd(int placementId) delegate methods

InMobi

  • Added support for incentivised ads

MdotM

  • Disabled banner ads - they were not reliable, will be re-enabled after fixed SDK is provided

Other fixes

  • Fixed disabling of debug screen

Updated