NewYour coding agent can read the release notes before it upgrades.Set up the MCP server →
pub.dev
A common platform interface for the Attriax plugin.
Last release 2 months ago
15 Jul 2026
Ships fairly regularly
a new release about every 2 weeks
Nearly every release is documented
notes for 8 of 8 stable releases
Nothing withdrawn
no release was ever pulled
5 months old
8 releases · first in 2026
One column per month.
Expanded the federated contract to the full engine surface so platform implementations can host the shared native engine rather than a Dart one.
doNotSell / usPrivacy config fields and a setCcpaConsent platform method.flush() on the platform contract, backing the new public Attriax.flush().json_serializable DTOs instead of hand-built maps. The wire shape is unchanged.attriaxSdkPackageVersion metadata to 0.6.0.Breaking: AttriaxConfig now requires projectToken; the deprecated appToken constructor alias and getter were removed.
package:attriax_flutter/attriax.dart that re-exports everything from attriax_flutter.dart (the old import remains a supported alias).isBot and botDetectedVia in the device context (WebDriver, headless/zero-size screen, and known bot user agents).Europe/ (French Guiana, Guadeloupe, Saint-Martin, Martinique, Saint-Barthélemy, Mayotte, Réunion).init() now rejects an empty projectToken, a non-positive maxQueueSize, and negative flush/ATT-timeout durations with an ArgumentError.validateReceipt(...) now takes a single required String receipt plus test, provider, environment, productId, and transactionId; the previous per-store fields (originalTransactionId, store, packageName, purchaseToken, receiptData, signedPayload, receiptSignature) were removed, and receipt must be non-empty.deepLinks.recordDeepLink(...) now requires uri; the optional linkPath parameter was removed.AttriaxConfig now requires projectToken; the deprecated appToken constructor alias and getter were removed.Attriax.init({bool? enabled}) no longer accepts an enabled argument; use tracking.enabled before or after init() to control event delivery.recordEvent, recordPurchase, recordRefund, recordAdRevenue, recordAdEvent, recordPageView, recordError, setUser, setUserProperty, setUserProperties, clearUserProperties) now return void (fire-and-forget) instead of Future<void>.Retry-After, instead of being re-flushed with no spacing; a Retry-After of 0 or negative also falls back to backoff rather than an immediate retry.408 (Request Timeout) and 425 (Too Early) in addition to 429 and all 5xx.recordDeepLink) is now time-bounded (30s) and throws TimeoutException if it does not complete, instead of hanging indefinitely while offline; the underlying request still follows the normal queue/retry policy.referrer.getLatestDeepLinkReferrer() now returns null immediately when no deep link has been handled yet, instead of waiting for the next deep-link event.null) instead of surfacing a delivery error from the referrer getters.AttriaxConfig now requires projectToken; the deprecated appToken constructor alias and getter were removed from the shared config.attriaxSdkPackageVersion metadata to 0.5.0.Breaking: removed the deprecated GDPR auto-detection toggle from the shared Flutter AttriaxConfig.
AttriaxConfig.0.4.1.attriax.tracking as the focused Flutter facade for custom events, page views, revenue, ads, uninstall-token registration, user identity, and manual er
attriax.tracking as the focused Flutter facade for custom events, page views, revenue, ads, uninstall-token registration, user identity, and manual error reporting.anonymousTracking on AttriaxConfig, runtime attriax.tracking.anonymousTrackingEnabled, and attriax.consent.gdpr.requestDataErasure() for GDPR-erasure flows.example-rich/ so the publishable package example can stay integration-focused.example-gdpr/ app for manual GDPR consent, anonymous-tracking, and data-erasure QA.Attriax; use attriax.tracking.* instead.attriax.eventsEnabled to attriax.tracking.enabled.attriax.deepLinks.createDynamicLink(...) and attriax.deepLinks.recordDeepLink(...).attriax.consent.att.getTrackingAuthorizationStatus() and attriax.consent.att.requestTrackingAuthorization().anonymousTracking: false to keep that work in memory until consent allows identified delivery.validateReceipt(...) stays on the root Attriax entrypoint and remains available even when tracking is disabled or GDPR consent is still pending.example-rich/.anonymousTracking on the shared config and runtime types used by the main Flutter SDK and federated implementations.attriax_flutter 0.4.0.0.4.0.Regulation-scoped GDPR consent APIs under attriax.consent.gdpr, including local and remote needsConsent() checks, explicit category decisions, setNotR
attriax.consent.gdpr, including local and remote needsConsent() checks, explicit category decisions, setNotRequired(), and reset().attriax_api_client package.0.3.0 for the GDPR consent release.attriax.skan runtime support for Apple platforms, including conversion-value updates, server-driven SKAdNetwork schema/state handling, and shared anal
attriax.skan runtime support for Apple platforms, including conversion-value updates, server-driven SKAdNetwork schema/state handling, and shared analytics key exports for aligning app events with dashboard and SKAN rules.AttriaxDeepLinks.recordDeepLink() now resolves to AttriaxDeepLinkEvent? after browser and deferred handling instead of the lower-level AttriaxDeepLinkResolution? wrapper.AttriaxAnalyticsEventKeys and AttriaxAnalyticsParamKeys exports for the shared event vocabulary. Useful for SKAN conversion-value rules and consistent event naming across your app and the dashboard.attriax_api_client package now uses cleaner json_serializable transport models instead of the older built_value-based output.AttriaxResolvedUrlAction, AttriaxResolvedUrlOpenMode, and browser-action payloads on deep-link and referrer models so the SDK can follow backend-provided browser destinations.AttriaxSkanConfig, AttriaxSkanState, AttriaxSkanUpdateResult, and the related SKAdNetwork schema/value models used by the Apple-platform runtime.AttriaxPlatform.openBrowserUrl() and AttriaxPlatform.updateSkanConversionValue() hooks for federated implementations.AttriaxConfig now exposes automaticBrowserHandling and skan configuration for the main SDK runtime.Reinstall attribution and app-data-clear classification in the Flutter SDK app-open flow.
referrer facade with original-install, reinstall, session, and latest deep-link lookups.Attriax.installReferrer getter in favor of Attriax.referrer.* async methods.0.1.0 together.AttriaxInstallState and AttriaxDeepLinkReferrerDetails for reinstall-aware startup attribution and deep-link referrers.Attriax.referrer facade instead of Attriax.installReferrer.First public-ready Attriax Flutter SDK release
Your coding agent can read these notes before it upgrades. Set up the MCP server →