Skip to content

Axeptio SDK 1.2.0

Choose a tag to compare

@axeptio-bot axeptio-bot released this 04 Oct 11:41
· 2 commits to master since this release

Added

  • Host events: AxeptioSDK.setEventListener(AxeptioEventListener?) / removeEventListener(), with onConsentFlowClosed(), onConsentsUpdated() and onError(AxeptioError), delivered on the main thread. onError reports consent sync give-ups (ConsentSyncFailed), configuration, vendor-list and user-token failures, and unexpected internal errors.
  • Configuration fields from the Axeptio back office: askNewConsent, the TCF purposes and stacks a configuration selects, and the consent lifetime (expirationTtlDays).
  • Re-prompt and consent lifetime like the web CMPs: a new CMP version asks for a new consent only when the configuration says so, and each consent keeps the lifetime it was saved with.

Changed

  • TCF accept-all consents every purpose and special feature of the TCF catalog and puts every purpose but 1 and 3-6 under legitimate interest, like the web CMP and the iOS SDK. The consent screens list the configured purposes and stacks.
  • TCF vendor details follow the iOS SDK: storage duration, the legitimate-interest link in the consent language, data categories without unnamed ids, and the small vendor icon first.
  • Analytics events match the iOS SDK: sorted preferences, millisecond timestamps, a browser-like user agent, and retries 10 s apart. Events are tagged with the flow the configuration resolved to, and the queue is kept out of Auto Backup.
  • Network: only network errors and 5xx responses are retried; the user-token request is retried like on iOS.
  • Permissions: a permission the user denied twice (or for good outside the SDK) offers the app's settings; Android 16 body sensors go through Health Connect.

Fixed

  • IAB TCF keys: IABTCF_CmpSdkID / IABTCF_gdprApplies are written as soon as a TCF configuration resolves, and every IABTCF_* key is cleared under a Brands configuration. getTcfTcString returns no TC string while its encode is pending.
  • Consent records: a consent read never returns another configuration's record during a configuration switch; the user token and configId are kept per SDK environment; an offline TCF consent whose encode gives up is reported once and retried at the next launch.
  • Pinned configuration: a pinned configId decides the flow, like on iOS; offline vendor lists are only reused for the configuration they were fetched for.
  • Screens: unsaved choices on the details screens survive a rotation; a double tap submits a decision once; the TCF first-layer cards show without standard-info; the vendor count is bold in every locale.
  • Re-initialization: shutdown() then initialize() builds a fresh SDK graph, and host events of a shut-down instance are dropped.