AATKit Android Integration
Release Notes
  • Start
    • Setup
      • Maven
      • Prerequisites
      • Google Family Safe Apps
    • Initialization
    • Consent
      • General Handling
      • Managed Consent
        • Google CMP
        • Sourcepoint CMP
        • SFBX (AppConsent) CMP
      • Vendor Consent
      • Simple Consent
    • Plugins documentation
    • Additional Information
  • Formats
    • Introduction
    • Banner
      • Auto Load Banner
      • Multi-Size Auto Load Banner
      • Banner Cache
      • Infeed Banner
      • Sticky Banner
      • Multi-Size Banner
    • Fullscreen (Interstitial)
    • AppOpen (Google)
    • Rewarded Video
      • Server-Side Verification (SSV)
    • Native Ad
      • Basic Integration
      • Network Specifics
        • Native Ads: Google
        • Native Ads: ApplovinMax
        • Native Ads: Bluestack
        • Native Ads: FacebookAudienceNetwork
        • Native Ads: Huawei
  • Ad Networks
    • Customize Ad Networks
    • Google Mobile Ads SDK
    • AppLovinMax Ad Review
    • AppNexus special settings
    • FeedAd Shutter Colour and Disabling Spinner
    • Kidoz
  • Advanced
    • Targeting
      • Key-Value Targeting
      • User Targeting
      • Content Targeting URL
    • Frequency Capping
    • Advanced Listeners
      • Reports Delegate
      • Impression Listener (ILRD)
      • Statistics Listener
    • AATKit's Size
    • Ad Space and Fill Rate
    • Shake Debug
    • Child-directed Support
    • Geo Tracking
    • Disabling Ad Networks
    • Huawei Support
    • Creatives History
  • Other
    • AdMob Custom Events
    • Reference
      • Classes
        • AATKit
        • AATKitUserTargeting
        • CollapsibleBannerOptions
        • AATKitDebugScreenConfiguration
        • PlacementDebugInfo
        • AATKitDebugInfo
        • AATKitConfiguration
        • AATKitRuntimeConfiguration
        • ManagedConsent
        • VendorConsent
        • SimpleConsent
        • BannerConfiguration
        • BannerRequest
        • BannerCacheConfiguration
        • AATKitReward
        • NativeAdRating
        • AATKitImpression
        • PriceInfo
        • AdInfo
        • RewardedAdSSVInfo
        • PlacementHistoryInfo
        • AATKitAdNetworkOptions
          • SuperAwesomeOptions
          • FeedAdOptions
          • AppNexusOptions
          • AdMobOptions
          • DFPOptions
      • Interfaces
        • CacheStatusDelegate
        • AATKit.Delegate
        • BannerCache
        • BannerRequestCompletionListener
        • ManagedConsentDelegate
        • VendorConsentDelegate
        • Placement
        • StickyBannerPlacement
        • StickyBannerPlacementListener
        • MultiSizeBannerPlacement
        • MultiSizeBannerPlacementListener
        • InfeedBannerPlacement
        • InfeedBannerPlacementListener
        • BannerRequestDelegate
        • CacheDelegate
        • FullscreenPlacement
        • FullscreenPlacementListener
        • AppOpenAdPlacement
        • AppOpenPlacementListener
        • RewardedVideoPlacement
        • RewardedVideoPlacementListener
        • NativeAdPlacement
        • NativePlacementListener
        • NativeAdData
        • AutoLoadBannerPlacement
        • AutoLoadBannerPlacementListener
        • AutoLoadMultiSizeBannerPlacement
        • AutoLoadMultiSizeBannerPlacementListener
        • ReportsDelegate
        • ImpressionListener
        • StatisticsListener
      • Enumerations
        • AATKitGender
        • AdNetwork
        • ManagedConsentState
        • NonIABConsent
        • BannerPlacementSize
        • BannerSize
        • MediationType
        • ImpressionPricePrecisionType
  • Samples
Powered by GitBook
On this page
  • Get Consent (GDPR et al.)
  • Rule Skipping (Skipping of Certain Ad Networks if Consent Missing)
  • Retrieve Consent Opt-In Status
  • CCPA Handling
  1. Start
  2. Consent

General Handling

Introduction to consent handling

Last updated 1 month ago

Get Consent (GDPR et al.)

Apps (more precisely: their publishers and third-party library vendors) have to get consent from the users for serving personalized ads in order to comply with data protection laws such as GDPR. Applications also have to provide a button for the user to be able to change the consent settings. AATKit provides three ways of handling user consent:

Managed Consent

If you plan to use an compliant (CMP) that Gravite has already adapted, and you don’t want to care about their specific APIs, you should consider using the . The Managed Consent will also take care of automatically passing user consent to non IAB compliant ad networks that you use with AATKit. Also, it supports automatic detection of non GDPR locations and related handling of the CMP. Currently, the following CMPs are adapted:

Default Consent

If you are using your own consent management platform (CMP) that is not implemented by Gravite, you can simply omit passing any consent data to us. AATKit will automatically handle the TCF or CCPA consent strings, if available, from SharedPreferences. Additionally, AATKit will read and respond to the non-IAB vendor consent string as part of its default behavior, as long as your CMP works with specification (stores special string under IABTCF_AddtlConsent).

Vendor Consent

If you plan to use an compliant (CMP) that Gravite has not yet adapted, or you want to create your own GDPR-compliant consent management and explicitly want to manage consents for different ad networks/vendors, you should consider using the - specifically to pass consent to ad networks not complying with the IAB TCF (if you want to use those).

Simple Consent

If you don’t plan to use an compliant (CMP), or you want to create your own GDPR-compliant consent management but don’t want to explicitly consent for different ad networks/vendors, you can consider using . It will just manage one single consent value that is relevant for all respective ad networks/vendors.

For more general information about data protection topics, please consider visiting .

Rule Skipping (Skipping of Certain Ad Networks if Consent Missing)

  • Certain ad networks don't deliver ads if user consent wasn't granted. In order to speed up mediation, those networks can be skipped within the mediation.

  • This feature is disabled by default.

  • If enabled AATKit skips mediation rules for ad networks in case the user didn't grant consent for them.

  • Purpose: enable faster ad loading by skipping networks without consent which typically do not serve ads at all or very poorly paid ones.

  • To enable rule skipping:

AATKitConfiguration configuration = new AATKitConfiguration(this);
...
configuration.setShouldSkipRules(true);
...
AATKit.init(configuration);
val configuration = AATKitConfiguration(this)
...
configuration.isShouldSkipRules = true
...
AATKit.init(configuration)

Default list of networks to be skipped

By default, the following ad networks will be skipped when they have no consent and rule skipping is enabled:

  • Digital Turbine (ADCOLONY)

  • Admob

  • AdX

  • Amazon HB

  • Xandr (APPNEXUS)

  • Criteo SDK

  • Google AdManager (DFP)

  • Google AdManager (Direct) (DFPDIRECT)

  • Inmobi

  • Ogury

  • Verve (PUBNATIVE)

  • Magnite (RUBICON)

  • smaato

  • Teads

  • Equativ (SMARTAD)

  • Equativ (Direct) (SMARTADSERVERDIRECT)

  • YOC

  • FeedAd

  • Tappx

  • Mintegral

Modifying list of networks to be skipped

If rule skipping is enabled, by default AATKit will use the above default set of networks to be skipped if they have no consent. To change this default set and skip rules only for specific ad networks:

AATKitConfiguration configuration = new AATKitConfiguration(this);
configuration.setShouldSkipRules(true);
Consent consent = new SimpleConsent(NonIABConsent.OBTAINED);
// Skip rules only for SmartAd and Smaato
Set<AdNetwork> networksToBeSkipped = new HashSet<>();
networksToBeSkipped.add(AdNetwork.SMARTAD);
networksToBeSkipped.add(AdNetwork.SMAATO);
consent.setNoConsentNetworkStopSet(networksToBeSkipped);
configuration.setConsent(consent);
AATKit.init(configuration);
val configuration = AATKitConfiguration(this)
configuration.isShouldSkipRules = true
val consent: Consent = SimpleConsent(NonIABConsent.OBTAINED)
// Skip rules only for SmartAd and Smaato
consent.setNoConsentNetworkStopSet(setOf(AdNetwork.SMARTAD, AdNetwork.SMAATO))
configuration.consent = consent
AATKit.init(configuration)

Retrieve Consent Opt-In Status

To check if consent is OptIn or not, use the following API:

boolean isConsentOptIn = AATKit.isConsentOptIn();
val isConsentOptIn = AATKit.isConsentOptIn()

CCPA Handling

AATKit now supports CCPA only if the CCPA consent string is found. AATKit will read and react automatically to the CCPA string changes in SharedPreferences.

If both TCF and CCPA are present the TCF takes precedence.

This API only returns meaningful information after AATKit was successfully initialized (and did download its mediation rules from the backend (If you want to observe this, see )).

IAB TCF
Consent Management Platform
Managed Consent
Google
Sourcepoint
SFBX (AppConsent)
Google's Additional Consent
IAB TCF
Consent Management Platform
Vendor Consent
IAB TCF
Consent Management Platform
Simple Consent
Gravite Landing Page
AATKit.Delegate