advenue_sdk 1.4.1
advenue_sdk: ^1.4.1 copied to clipboard
Advenue MMP SDK for Flutter — attribution, install tracking, deep links, and consent, over the native iOS and Android SDKs.
1.4.1 #
Re-vendors Android SDK 1.3.1 (iOS SDK 1.4.0 unchanged):
- Android installs now carry the Play Integrity token, so they verify instead
of counting as unattested. Apps on
soft/enforceattestation mode start receiving real verdicts: check that their Google credential and Play package name are configured. - A slow App Set ID read can no longer cost the install its GAID.
1.4.0 #
Re-vendors iOS SDK 1.4.0 and Android SDK 1.3.0:
environment: AdvenueEnvironment.sandboxsends test traffic to the sandbox store (dashboard sandbox view, 14-day retention, 10,000 events per app per UTC day), never to reports, postbacks, Meta CAPI or billing. Needs a server that advertises thesandboxcapability on/health; against an older server the SDK keeps sandbox events on the device and logs why.Advenue.resetInstall(): Future<String?>(sandbox only) makes this device a new install without reinstalling the app: new device id, new install event; consent and the customer user id stay. Returns the new device id. In production it logsAdvenue: resetInstall() works only in sandbox.and returns null.forgetMe()during a reset wins (the erasure covers the device id, installation id, consent and user id); consent and the user id set while it runs are kept, and a deep link that arrives meanwhile goes to the new install.- iOS:
resolveDeferredDeepLink()always returned null without asking the server (iOS SDK defect); it now polls the conversion lookup. forgetMe()now also stops the SDK until the nextinitialize(an erased SDK already recorded nothing). The erasure is complete when it returns; consent or a user id set afterwards is still saved for the next start.
1.3.0 - 2026-10-12 #
Re-vendors iOS SDK 1.3.0 and Android SDK 1.2.0:
- iOS: the ATT status (
authorized/denied/restricted/not_determined) now rides every event asattStatus, seeded at initialize and refreshed with the IDFA on flush and foreground. - Disk space is no longer collected on either platform:
totalStorageGb/freeStorageGbare gone from the install's device info. The iOS SDK no longer calls Apple's required-reason disk-space API, so theDiskSpacerequired-reason declaration (which earlier privacy manifests were missing) is no longer needed. - Android: the all-zero GAID Google returns after an ad-personalization
opt-out is dropped, and the event carries
limitAdTracking=trueinstead.
1.2.1 #
Re-vendor the next iOS SDK: the per-flush identity refresh no longer blocks on the main thread, and the ATT wait ends on the wall clock. The ATT wait docs now say it only helps a prompt shown soon after launch.
1.2.0 #
Re-vendors iOS SDK 1.2.0 (Android SDK 1.1.1 unchanged):
- New
attConsentWaitingIntervalconfig (seconds, iOS only): waits for the ATT answer before the install is sent. Set it when the app prompts after onboarding; only enable it if the app actually prompts. - The native SDK re-reads the advertising identity after the ATT prompt and on every flush/foreground, so a granted permission reaches later events.
1.1.1 #
Re-vendors iOS SDK 1.1.1 and Android SDK 1.1.1:
- iOS: the device and advertising-identity collectors read
UIScreen,UIDeviceandUIApplicationon the main thread (they are main-actor isolated under Swift 6) instead of from background tasks. - Android: stamps
sdkVersion1.1.1 (license metadata only, no behavior change).
1.1.0 #
Re-vendors iOS SDK 1.1.0 and Android SDK 1.1.0:
- Deferred deep links work with a project API key. The native conversion
lookup sends
?platform=ios/?platform=androidon/sdk/conversion-data, so the server picks the listing the install was filed under. Before, a project key got403 scope_unsupportedandonDeepLinknever fired after a link install. - The install is stamped at first launch and sent ahead of the launch's
session_startand custom events. - A relaunch after the OS killed the app no longer splits the session or counts the dead time as active time.
- Each upload carries a per-attempt
sentAt, so the server can correct device clock skew. - Setup conditions (a locked Keychain or device, an unavailable cache) reach
onErroras what they are, not asIngestError(status: 0); a dead network is logged as a network error, not as HTTP 408. - Building inside the monorepo fails when the vendored natives are stale, instead of compiling an old SDK silently.
1.0.0 #
The public API is stable, so the package leaves 0.x (semver: 0.x means anything may change at any time).
- Native session fixes (re-vendored iOS and Android SDKs): a cold start on Android opens one session instead of two; a process woken into the background (push, WorkManager, background fetch) opens no session on either platform until the user actually opens the app.
AdvenueConfig.debug: the native SDKs log their start, every swallowed failure and each sent batch to Xcode's console / logcat, and every failure is also printed to the Dart console. Off by default.AdvenueConfig.allowInsecureHttp(test only): allows anhttp://endpoint, which the native SDKs otherwise refuse.- Native versions: iOS SDK 1.0.0, Android SDK 1.0.0.
0.1.0 #
- First release. Bridges to the native Advenue iOS and Android SDKs.