---
agentTools:
  siteIndex: https://documentation.bloomreach.com/llms.txt
  projectIndex: https://documentation.bloomreach.com/engagement/llms.txt
---

# Release 1.316

**TL;DR:** This release adds smart triggers for showing weblayers based on real visitor behavior, and brings performance and reliability updates to the Android and iOS SDKs.<br /><br />**Release date:** 19.8. - 24.8.2026

<HTMLBlock>{`
<a href="https://visit.bloomreach.com/customer-communication-preferences"
   target="_blank"
   style="
     display: inline-block;
     background-color: #ffd501;
     color: #000000;
     padding: 12px 28px;
     border: none;
     border-radius: 8px;
     text-decoration: none;
     font-size: 16px;
     font-weight: bold;
     cursor: pointer;
     text-align: center;
   ">
   Subscribe to release notes
</a>
`}</HTMLBlock>

## Smart triggers: Evaluate real-time engagement before you show a weblayer

[Smart triggering](https://documentation.bloomreach.com/engagement/docs/smart-triggering-in-weblayers) lets you show a weblayer based on how a visitor is actually engaging with the page, not just when it loads.&#x20;

### What's new

Add up to four conditions in the weblayer's Settings tab; the Web SDK evaluates them directly in the browser, so the weblayer appears the instant a visitor qualifies.

* **Time and activity signals**: trigger on active time on page, total time on page, idle time, or click count to gauge how engaged a visitor really is.
* **Scroll and content signals**: trigger once a visitor scrolls past a point on the page, or when a specific section (such as your reviews) comes into view.
* **Intent signals**: catch visitors who are about to leave with exit intent, or reach people returning to a tab they left open with visitor returned.
* **Combine conditions for sharper targeting**: pair signals, for example exit intent with a minimum active time, to reach visitors who show genuine interest, not everyone who glances toward the address bar.

Smart triggering replaces guesswork about page-load timing with triggers based on what a visitor is doing right now, so your weblayers reach the right person at the right moment.

### Learn more

[Set up conditions](https://documentation.bloomreach.com/engagement/docs/configure-smart-triggering) and see worked examples.

## Mobile SDK updates

### Android SDK

Faster in-app content loading and easier log access with our latest [Android SDK 5.3.0](https://documentation.bloomreach.com/engagement/docs/android-sdk-release-notes) release:

* **SDK logging:** Adds the `LoggerCallback` API to observe SDK logs.
* **Content fetch efficiency:** Adds ETag support for in-app content block and message fetching to cut redundant requests, and speeds up loading with HTML normalizer optimizations and fetch deduplication.
* **Dedicated storage:** Migrates SDK persistence out of the app's default `SharedPreferences` into dedicated SDK storage, with automatic migration from legacy data.
* **In-app message fixes:** Fixes the close button's size and colors on rich-style messages, and broken deep and universal links in carousels.
* **Stability fixes:** Fixes event listeners running before SDK initialization completes, and the `integrationRouteMap` warning not firing when `anonymize()` inherits `StreamConfig`.

### iOS SDK

Smoother in-app messages and content blocks with our latest [iOS SDK 4.3.0](https://documentation.bloomreach.com/engagement/docs/ios-sdk-release-notes) release:

* **Content fetch efficiency:** Adds conditional revalidation (ETag) for in-app content blocks and a new `StaticInAppContentBlockView.load()` method to refresh placeholders on demand, and speeds up HTML and image rendering while lowering memory use.
* **Close button consistency:** Moves the rich in-app message close button to a consistent top-right position, with updated default styling and icon fallback.
* **Push token deprecation:** Deprecates `trackPushToken(_ token: String?)` in favor of a new non-optional `trackPushToken(_ token: String)`.
* **Cache and carousel fixes:** Prevents cache collisions between apps by including the app ID in cached file names, and smooths out a content block carousel flicker on first load.
* **Push notification fixes:** Fixes animated GIFs and WebP images not animating, and a missed or duplicate `notification_state` event.
* **Threading fixes:** Fixes the `flushData` and `anonymize` callbacks not always triggering on the main thread, a memory leak and main-thread network call in image loading, and a main-thread network call in the App Inbox fallback.
* **Documentation:** Documents `Exponea.shared.customerCookie` and adds a troubleshooting note for the close button position change.