Android SDK release notes
Version history of the TrueEngage Android SDK, newest first, with package coordinates, minimum SDK requirements and changes in each release.
Every version of the Android SDK, newest first. For setup, see Android SDK.
1.0.0 — 1 November 2026
| Package | Requirements |
|---|---|
io.trueengage:trueengage-android:1.0.0 |
minSdk 23 · compileSdk 35 · Kotlin with JVM 17 target |
What's new
- First stable release. No API breaks: everything that worked in the previous release works unchanged. Includes the SDK Logger.
0.10.0 — 1 November 2026
| Package | Requirements |
|---|---|
io.trueengage:trueengage-android:0.10.0 |
minSdk 23 · compileSdk 35 · Kotlin with JVM 17 target |
What's new
- SDK logger. Start a session in Developers > SDK Logger, scan the QR code or type the code, and the app's TrueEngage log lines appear in the console while the session lasts. It works with test and live keys; a live session is limited to info level and 30 minutes. Lines are scrubbed on the device before they are sent (emails, phone-like numbers, tokens, app keys), and the device shows a Toast when a session starts and ends. Add an intent-filter for your app's own URL scheme so the QR code can open the app, or pass the code to
TrueEngage.startLoggerSession(code). - Kill switch.
TEConfig.remoteLogger = false(defaulttrue) refuses pairing entirely, for a release build that must never log remotely.
0.9.0 — 30 October 2026
| Package | Requirements |
|---|---|
io.trueengage:trueengage-android:0.9.0 |
minSdk 23 · compileSdk 35 · Kotlin with JVM 17 target |
What's new
- Styled push text. A push can show bold, italic, underline, line breaks and coloured text in its title and message, including the expanded text. The SDK checks the markup against the same allow-list as the server, so links, images and scripts are never shown. If the styled text is missing or unusable, the notification shows the plain title and message, which are also what the click payload, callbacks and inbox carry. No code change needed. iOS and Web show plain text. → Push notifications
- Bottom sheets and full-width images. In-app messages support the
bottom_sheetlayout, full-width images and tappable images. → Create an in-app message
0.8.1 — 24 October 2026
| Package | Requirements |
|---|---|
io.trueengage:trueengage-android:0.8.1 |
minSdk 23 · compileSdk 35 · Kotlin with JVM 17 target |
What's new
- Ad identifiers cleared. When the user limits ad tracking, the advertising id is reset, you pass
nulltosetAdvertisingIdentifier()orsetFirebaseAppInstanceId(), or you calloptOut("tracking")oroptOut(), the SDK tells TrueEngage to delete the stored id. A reset sends the clear and the new id together. Sent only for ids the SDK reported earlier. No code change needed. → When ad identifiers are cleared
Improvements
- Opt-out clear is not lost. It is queued before the opt-out takes effect, survives
flushOnOptOut = false, and the background flush sends it even while opted out.reset()keeps a pending clear.
0.8.0 — 22 October 2026
| Package | Requirements |
|---|---|
io.trueengage:trueengage-android:0.8.0 |
minSdk 23 · compileSdk 35 · Kotlin with JVM 17 target |
What's new
- Ad click capture. When a link that opens the app, or the install referrer, carries
utm_*,gclid,gbraid,wbraid,gad_source,gad_campaignid,fbclidorfbp, the SDK records one touch. A link with none of them records nothing. Stops while tracking is opted out. → See where each user came from - Firebase id for GA4.
setFirebaseAppInstanceId(id)adds your Firebase app instance id to later touches, so GA4 can match app events. → Send events to Google Analytics 4 - Advertising id. The SDK reads the Google advertising id only if your manifest declares
com.google.android.gms.permission.AD_IDand the user has not limited ad tracking. It clears a stored id when the user limits tracking or opts out. → See where each user came from - Web install links. A Play Store link built by the Web SDK
storeLinkkeeps its campaign values in the install referrer, so the install keeps its source. - Play referrers. An install referrer that contains
te_anonplus ad parameters now emits$acquisition. It was previously dropped. - Release order. Install touches from smart links are matched by TrueEngage, so ship this version after the matching server release.
Improvements
- Reserved event.
$acquisitionis sent by the SDK only.track()rejects it.
0.7.0 — 21 October 2026
| Package | Requirements |
|---|---|
io.trueengage:trueengage-android:0.7.0 |
minSdk 23 · compileSdk 35 · Kotlin with JVM 17 target |
What's new
- In-app messages. Modals, banners, cards and bottom sheets built in the console are fetched after
initialize()and shown when their event or screen trigger fires. Self-handled campaigns are not drawn: you receive the message and show it yourself. → In-app campaigns - Cards feed.
TrueEngage.cardsgives you a persistent inbox of cards with a synchronous unread count, and mark read, clicked and dismissed actions. You draw the UI. Opting out of in-app stops fetching, showing and stats. - Verified identity.
identify(id, attrs, token),setIdentityTokenandsetIdentityTokenProvidersend a signed token your backend issues, so messages and cards with personal data reach only proven users. → Verify your users - Session caps. In-app session caps now persist across process restarts.
0.6.0 — 19 October 2026
| Package | Requirements |
|---|---|
io.trueengage:trueengage-android:0.6.0 |
minSdk 23 · compileSdk 35 · Kotlin with JVM 17 target |
What's new
- Push action buttons. Buttons from a template show as notification actions. A tap records
Push Clickedwith the button id and label, and opens the button link. → Push notifications - Push sound. A template sound plays a file in
res/raw. → Push notifications
Fixes
- Push payloads. A JSON null in the push data is treated as missing, so such a push no longer fails. Build of 21 October.
0.5.0 — 18 October 2026
| Package | Requirements |
|---|---|
io.trueengage:trueengage-android:0.5.0 |
minSdk 23 · compileSdk 35 · Kotlin with JVM 17 target |
What's new
- Referral links.
createLinkmakes a short smart link for in-app content. It needs in-app links turned on in Smart Links settings. → Links API and webhooks - Referrer on deep links.
onDeepLinkcarries the referrer when the opened link was created in an app. → Links API and webhooks
0.4.0 — 18 October 2026
| Package | Requirements |
|---|---|
io.trueengage:trueengage-android:0.4.0 |
minSdk 23 · compileSdk 35 · Kotlin with JVM 17 target |
What's new
- Deep links.
handleIntentand theonDeepLinklistener hand your app the screen a link points to. → Deep links and deferred deep links - Deferred deep links. The first launch after an install is matched to the click that led to it, using the Play install referrer. → Deep links and deferred deep links
0.3.0 — 13 October 2026
| Package | Requirements |
|---|---|
io.trueengage:trueengage-android:0.3.0 |
minSdk 23 · compileSdk 35 · Kotlin with JVM 17 target |
What's new
- Opt-in device location.
requestLocationPermission()asks for location andupdateLocation()reads and syncs a fix now. The SDK turns a fix into a city and region on the device and sends them with your events, so users on mobile networks get a real city. → Device location - Location settings.
TEConfig.locationPrompt(manualby default, orauto) andlocationRefreshHours(default 4) control when the SDK asks and how often it refreshes. → Device location - Carrier code. Every batch now carries the SIM or network operator code (
deviceMccMnc) when the device reports one. → Device location - Location permission events. The SDK records
Location Permission GrantedandLocation Permission Deniedwhen the user decides, and again if they change the choice in Settings. It does not record them for apps that never declared the permission. → Device location
Improvements
- Your app declares the permission. The library does not add
ACCESS_FINE_LOCATIONto your manifest, so apps that don't use location don't inherit the permission or the Google Play disclosure. → Device location - Push images load safely. Push images are limited in download time and size and are decoded at the size they are shown, so large images no longer risk running a low-memory device out of memory. A push whose image can't load still shows without it. Build of 14 October. → Push notifications
Fixes
- Package and runtime versions match. The published package version could differ from the version the code reported. They are now the same, so one version string always means one build. Build of 14 October.
0.2.0 — 11 October 2026
| Package | Requirements |
|---|---|
io.trueengage:trueengage-android:0.2.0 |
minSdk 23 · compileSdk 35 · Kotlin with JVM 17 target |
What's new
- Country from the device. Each batch includes
deviceCountry, read from the registered network, then the SIM, then the device locale. The server uses it when the request address is a VPN, a proxy or a carrier address in another state. It needs no new permission and shows no prompt. → Device location setRegion(). A typed setter for the user's state or province, next tosetCityandsetCountryCode. Set it when your app knows better than the network. → Events and identity
This version does not read the device's location. Location arrives, opt-in, in 0.3.0.
0.1.0 — 19 September 2026
| Package | Requirements |
|---|---|
io.trueengage:trueengage-android:0.1.0 |
minSdk 23 · compileSdk 35 · Kotlin with JVM 17 target |
What's new
- Event tracking. Events are stored in a durable queue and sent in ordered, compressed batches with retries and background flushing. → Events and identity
- Identity. Anonymous users,
identify,logoutandreset, and user attributes with typed setters for email, phone, name and more. → Events and identity - Sessions and automatic events. 30-minute sessions with
App Opened,Session Started,Session Ended,App Installed,App UpdatedandScreen Viewed. → Events and identity - Push notifications. FCM token registration, the notification permission request, and
Push Received,Push ClickedandPush Dismissedevents. → Push notifications - Remote config. Settings fetched hourly and cached on the device, including a switch to block named events. → Android SDK
- Consent.
optOutandoptInper scope, persisted across launches, andoptOutByDefault. → Consent - Debugging.
enableValidation()anddebugInfo(). → Android SDK
Improvements
Added on 9 October 2026, still reported as 0.1.0:
- Push receipts with another push library. A broadcast receiver records
Push Receivedfor every TrueEngage push even when another library's messaging service handles the message. It only records and never shows a notification. → Push notifications trackPushClicked(data). Record taps yourself when your app shows or routes the notification. Receipts and clicks are recorded once per message. → Push notificationsdisplay = false. Pass it toPushHandler.handleto record a push without showing it. → Push notifications
Was this page helpful?