digia_engage 1.16.0 copy "digia_engage: ^1.16.0" to clipboard
digia_engage: ^1.16.0 copied to clipboard

Flutter SDK for rendering server-driven UIs using JSON from Digia Studio. Supports dynamic layouts, state, actions, and custom widgets.

Changelog #

1.16.0 - 2026-08-07 #

New Features #

  • Debug component recording — debug builds can open Digia's debug settings, record pages, anchors, and slots seen at runtime, and review the captured sessions before curating them in the Engage dashboard.
  • Screen-scoped campaigns — campaigns can target named screens and render only while the host app is on a matching screen; campaigns without screen targeting remain available everywhere.
  • Configurable nudge close buttons — nudge campaigns can configure the close button's margins, background and icon colors, icon size, and touch target while preserving compatibility defaults when fields are absent.
  • Responsive inline story media — inline story cards can configure their aspect ratio and each story item can choose separate fits for its thumbnail and full-screen media; unsupported video fits fall back safely and letterboxed media is rendered over black.

Improvements #

  • Responsive nudge dialogs — dialog campaigns can use the full available window, honor an authored safe-area choice, and apply narrow width fractions consistently to both the surface and its content.

Bug Fixes #

  • DotLottie animation loading — Lottie nudges now decode .lottie bundles reliably, including animation selection and archive image paths that contain leading slashes.

1.15.0 - 2026-07-24 #

New Features #

  • Inline countdown card margin and padding — the countdown campaign's card now accepts a configurable outer margin and inner padding. Campaigns that don't configure them keep the previous fixed padding and no margin.

Bug Fixes #

  • Action variable interpolation — an action's own URL, deep link, share text, and copy text now interpolate {{ token }} campaign variables the same way the surface's visible copy already does, across every action-driven surface (guide buttons, story CTAs, carousel taps, countdown and banner taps, inline-slot deep links). Previously only the visible copy resolved variables; an action's own configured string passed through with the literal placeholder unresolved.

1.14.0 - 2026-07-23 #

New Features #

  • Full campaign font-weight range — dashboard-authored weights (100–900, numeric or named like semibold / extrabold) now render distinctly everywhere Digia renders text: guide/tooltip/spotlight titles and bodies, story item CTAs, survey text and CTAs, and nudge confirm-dialog text and buttons. Guide bodies also gained their own configurable weight, independent of the title's. Previously only 400/500/600/700 were distinguishable — any other authored weight was snapped to the nearest of those four.
  • Fully customizable guide buttons — each guide/tooltip/spotlight action button can set its own background color, text color, font size and weight, corner radius, padding, and margin, and choose one of four styles (fill, outline, text, elevated). Existing campaigns using the old style names (primary/secondary/ghost) keep rendering the same as before.
  • Configurable spotlight glow — a spotlight guide step can render a colored outline/glow around its highlighted target (color and width), instead of just a plain cutout.
  • Responsive inline carousel image sizing — an inline carousel can size its slides by aspect ratio, spanning the carousel's full width, instead of a fixed pixel height, and each slide can set its own image content fit (cover, contain, or fill). Carousels that only configure a fixed height keep their previous sizing.

Bug Fixes #

  • The survey upvote/downvote block is now single-select — choosing one option replaces the other, instead of both being selectable at once.

1.13.0 - 2026-07-23 #

New Features #

  • Typed host action handlers — a host app now provides DigiaConfig.actionHandlers (a DigiaActionHandlers with optional customKV, deepLink, and openURL callbacks) to own how deep-link, web-URL, and the new Custom KV actions are handled, and can also swap any of them at runtime via Digia.setCustomKVHandler, Digia.setDeepLinkHandler, and Digia.setOpenURLHandler. A registered handler fully owns its action; without a link handler the SDK falls back to Flutter's URL launcher; Custom KV has no fallback. This replaces the previous onAction interceptor.
  • Richer campaign action flows — inline carousel items, story items and their CTAs, and guide buttons can now run a full ordered onClick action flow (open URL / deep link, share, copy, dismiss, next, previous, and host-owned Custom KV), with campaign variables interpolated at tap time. Previously these surfaces could only run a single deep link or CTA. Existing single-action campaigns continue to work unchanged.
  • Inline countdown campaigns — a new SDK-owned inline campaign type that renders a countdown-to-deadline offer card: an active state (title, subtitle, optional image) counting down to a deadline, and an expired state (title, subtitle, optional body image, body text, and CTA) shown once the deadline passes, each with its own tap-action flow. Deadlines are ISO-8601 expressions; a value with no timezone offset is interpreted in India Standard Time (UTC+05:30). Surfaced through a DigiaSlot.
  • Inline banner campaigns — a new inline image-banner campaign type: a single image with configurable content fit, aspect ratio or fixed height, corner radius, and margins, plus a tap-action flow. Surfaced through a DigiaSlot.
  • Nudge video aspect ratio — nudge video content can specify an aspect ratio, which sizes the video frame; when set, the player preserves the source video's own ratio and letterboxes within the frame instead of stretching. Without one, the previous fixed-height behavior is unchanged.

Improvements #

  • An engage action flow is now resilient to a single failing step: if one action (a host handler or an SDK default) throws, the remaining actions in the flow still run, instead of the whole flow aborting.

1.12.0 - 2026-07-18 #

New Features #

  • Story overlay controls — inline story overlays can show dashboard-configured close and mute controls (visibility, icon color, background color, size) over the full-screen story viewer; the mute control only appears on video items. A story can also be configured to start all of its videos muted or audible by default, and once the viewer changes the audio state, that choice persists for the rest of the story session.

Bug Fixes #

  • Bottom-sheet nudges no longer leave a gap below the sheet on devices with a bottom safe-area inset.
  • Guide and Spotlight colors that specify an alpha channel (e.g. #80112233) now correctly combine that alpha with the component's own opacity, instead of the alpha being overwritten and ignored.
  • Survey welcome CTA taps, inline carousel item taps, and inline story opens now forward an engagement signal to connected CEP platforms (WebEngage, CleverTap, MoEngage), matching how other surfaces already behave. Previously these three surfaces only recorded the click in Digia's own analytics.

1.11.0 - 2026-07-14 #

New Features #

  • Single-image story previews — a story campaign can now render inline as one campaign-level cover image instead of the circular story strip; tapping it opens the story viewer at the first item. The image supports a BlurHash loading placeholder, content fit (cover/contain/fill), aspect ratio or fixed height, corner radius, and per-side padding. Campaigns that don't configure it — or configure it incompletely — keep rendering the story strip.
  • Story image content fit — each story item can choose how its image fills the full-screen viewer (cover, contain, or fill). Previously every image was cropped to cover.
  • Carousel item spacing and corner radius — inline carousels can set the gap between slides and the corner radius of each slide's image.
  • Clear inline content — new Digia.clearInlineContent([...]) and Digia.clearAllInlineContent() APIs remove loaded carousels and stories by placement key, or all of them at once. Inline content was previously retained for the life of the app session, so a signed-out user's content could linger across an account switch.

Improvements #

  • Analytics events that fail to send are now retried more reliably: the attempt count is persisted, so it survives an app restart instead of resetting; retries are capped at 10 attempts and back off exponentially up to two minutes with random jitter; and newly queued events no longer trigger an early send ahead of an already-scheduled retry.
  • Analytics logging now honors the log level set in DigiaConfig — routine retry chatter is verbose-only, and permanent event drops are surfaced as warnings. Previously analytics logged only in debug builds and ignored the configured level.
  • Guide outside-tap behavior is now either next (the default — advance, or dismiss after the last step) or nothing (scrim taps are inert). The dismiss value and the tooltip sticky flag have been removed.
  • Inline carousels always span the full available width; the per-campaign width override has been removed.

Bug Fixes #

  • Analytics events are no longer silently discarded when the server replies with a 4xx or a response the SDK can't parse — those batches are now retried like any other failure. Only events the server explicitly rejects are dropped.
  • The default maximum analytics batch size is lowered from 200 to 100 events; 200-event batches were failing on the backend.
  • Carousel images no longer rebuild and re-fetch on every rotation of the carousel, in both inline carousels and carousel nudges.
  • Completed segments in the story progress bar now render filled in the indicator's active color instead of a separate grey. The completedColor configuration value has been removed — completed segments follow activeColor.

1.10.0 - 2026-07-08 #

New Features #

  • Destructive button confirmation — buttons can be marked destructive; tapping one shows a confirm dialog (custom title/message/labels, message optional) before the action runs, styled in a fixed danger red.
  • Image loading placeholders — nudges, surveys, and inline carousels show a BlurHash preview while images load, instead of a blank box. Dashboard already auto-computes the hash, so no CMS-side burden.
  • In-App Review action — new CTA action type triggers the native "rate this app" prompt.
  • Linear progress bar — new nudge component, direct-percent or computed-range mode (e.g. "spent 700 of 1000").
  • Guides auto-dismiss on navigation — a guide no longer lingers on screen, orphaned, if the user navigates away mid-guide.

Improvements #

  • Video nudges: mute support wired end-to-end; playback failures now show "Couldn't load video" instead of a raw error dump.
  • Surveys: removed a hardcoded 480px max-height cap on question cards — content sizes naturally now.
  • Analytics events batched less frequently, in larger batches (flush interval 5s→30s, batch size 10→50) — fewer network calls.

Bug Fixes #

  • Guarded against a nudge occasionally re-presenting itself (and double-recording an impression) when unrelated inline-slot state changed.

1.9.0 - 2026-06-30 #

  • Text widget in Nudges now supports Rich Text.
  • Bug fixes in ToolTip/Spotlight arrow position and color.

1.8.0 - 2026-06-25 #

  • Lottie now supports Content Fit & Aspect Ratio

Changed #

  • Fixed click tracking issues

1.1.2 - 2026-04-18 #

Changed #

  • Fixed deduplication of inline impressions

1.1.1 - 2026-04-02 #

Changed #

  • Fixed FontAwesomeFlutter issues

1.1.0 - 2026-03-27 #

Changed #

  • Improved payload handling: inline campaigns now use type: inline + placementKey instead of command: SHOW_INLINE + placementId
  • Payloads missing both type and command are now dropped with a warning instead of silently ignored
  • DigiaSlot lookup updated to use placementKey
  • DigiaSlot and DigiaHost now handle render errors gracefully: collapse to SizedBox.shrink() in production, show an inline error box with console log in debug mode

1.0.0 - 2026-03-18 #

Added #

  • Initial stable release of the Digia Engage SDK

1.0.0-beta.2 - 2026-03-11 #

Added #

  • Inline support for DigiaSlot

1.0.0-beta.1 - 2026-03-11 #

Added #

  • Initial beta release
  • UI framework for custom UI from engagement platform
  • Public API exports for easy integration