unified_analytics
A package for logging analytics for all Dart and Flutter related tooling to Google Analytics.
8.0.17
6.7M downloads/mo
#95 most downloaded on pub.dev
dart-lang/tools
What this package is like to depend on
Last release 4 days ago
19 Aug 2026
Release timing varies
gaps range from 2 weeks to 5 months
Nearly every release is documented
notes for 48 of 52 stable releases
Nothing withdrawn
no release was ever pulled
3 years old
53 releases · first in 2023
7 releases in the last 12 months
see the full history below
Release timeline
53 releases · Mar 2023 to Aug 2026Releases
latest 53-
8.0.1719 Aug 2026Release notes
Open source →- Added optional agentPlugin parameter to the Event.dartMCPEvent constructor to identify agent plugin usage.
Release notes
Open source →- Added optional
agentPluginparameter to theEvent.dartMCPEventconstructor to identify agent plugin usage.
-
8.0.1616 Jul 2026Release notes
Open source →- Added
Event.packageSkillsEventto track events from package:skills. - Run
dart format.
- Added
-
8.0.1517 Jun 2026Release notes
Open source →- Added IDE and plugin information to
Event.serverSession. - Discard any
ExceptionorErrorthrown while reading or writing analytics logs. - Added
agentparameter toAnalyticsconstructors to track the AI coding assistant/agent executing the tool.
Release notes
Open source →- Added IDE and plugin information to
Event.serverSession. - Discard any
ExceptionorErrorthrown while reading or writing analytics logs. - Added
agentparameter toAnalyticsconstructors to track the AI coding assistant/agent executing the tool.
- Added IDE and plugin information to
-
8.0.1402 Apr 2026 -
8.0.1209 Mar 2026Release notes
Open source →- Require Dart 3.10
- Added
successindicator andlabeltoEvent.flutterTrackAndroidDependencies
-
8.0.1110 Feb 2026Release notes
Open source →- Added
Event.flutterTrackAndroidDependenciesto track android dependencies. - Deprecated
Event.flutterWasmDryRunin favor ofEvent.flutterWasmDryRunPackage. - Added
Event.pluginsto track new analyzer plugins - Added
DashEvent.ideEventto track IDE reported events.
- Added
-
8.0.1013 Dec 2025Release notes
Open source →- Added
Event.flutterWasmDryRunPackageto track dart2wasm dry run metrics from Flutter including public package information.
- Added
-
8.0.509 Jul 2025 -
8.0.409 Jul 2025Release notes
Open source →- Changed
Event.flutterWasmDryRunto track dart2wasm dry run metrics from Flutter.
- Changed
-
8.0.224 Jun 2025 -
8.0.111 Apr 2025Release notes
Open source →- Added
Event.flutterInjectDarwinPluginsevent for plugins injected into an iOS/macOS project.
- Added
-
7.0.204 Apr 2025Release notes
Open source →- Allow
LogStatsFileto contain more granular event types (specificallyproperty_editorevents).
- Allow
-
7.0.127 Nov 2024Release notes
Open source →- Fixed
UnsupportedErrorthrown when Event.exception is called without providing a value forargs.
- Fixed
-
7.0.008 Nov 2024Release notes
Open source →- Added a required parameter
screento theEvent.devtoolsEventconstructor. - Added an optional parameter
additionalMetricsto theEvent.devtoolsEventconstructor. - Added
CustomMetricsclass for unified_analytics clients to define custom event metrics. - Removed parameters
uiDurationMicros,rasterDurationMicros,shaderCompilationDurationMicros,traceEventCount,cpuSampleCount,cpuStackDepth,heapDiffObjectsBefore,heapDiffObjectsAfter,heapObjectsTotal,rootSetCount,rowCount,inspectorTreeControllerId,androidAppId,iosBundleIdfrom theEvent.devtoolsEventconstructor.
- Added a required parameter
-
6.1.621 Nov 2024Nothing published for this version
-
6.1.507 Nov 2024Release notes
Open source →- Remove any
dataentries with a null value in theEvent.exceptionconstructor.
- Remove any
-
6.1.402 Oct 2024Release notes
Open source →- Fix formatting and remove dependency on
package:intl. - Remove direct usage of
package:pathin favor ofpackage:file. - Added
androidAppIdandiosBundleIdto theEvent.devtoolsEventconstructor.
- Fix formatting and remove dependency on
-
6.1.310 Sep 2024Release notes
Open source →- Require Dart 3.4.
- Added
isWasmparameter to theEvent.devtoolsEventconstructor. - Added an optional parameter
datato theEvent.exceptionconstructor.
-
6.1.226 Jun 2024Release notes
Open source →- Avoid opening large telemetry log files to prevent out of memory errors.
-
6.1.105 Jun 2024Release notes
Open source →- Fixed bug where calling
Analytics.sendcould result in aFileSystemExceptionwhen unable to write to a log file.
- Fixed bug where calling
-
6.1.022 Apr 2024Release notes
Open source →- Added new event constructor
Event.devtoolsEventfor the single devtools event with a new enum valueDashEvent.devtoolsEvent
- Added new event constructor
-
6.0.002 Apr 2024Release notes
Open source →- Consolidate
Sessionfunctionality intoUserPropertyto prevent race condition crash where session logic crashed before initializingUserProperty - Get rid of
latevariables throughout implementation class,AnalyticsImpl - Any error events (
Event.analyticsException) encountered within package will be sent when invokingAnalytics.close; replacingErrorHandlerfunctionality - Exposing new method for
FakeAnalytics.sendPendingErrorEventsto send error events on command - Added
Event.fromJsonstatic method to generate instance ofEventfrom JSON - Remove unused parameters
measurementIdandapiSecretfrom theAnalytics.testconstructor - Remove
Analytics.testfactory constructor in favor ofAnalytics.fakestatic method to return aFakeAnalyticsinstance - Remove
FakeAnalyticsdefault constructor in favor ofAnalytics.fake
- Consolidate
-
5.8.815 Mar 2024 -
5.8.8+117 Apr 2024Nothing published for this version
-
5.8.8+227 Jun 2024Nothing published for this version
-
5.8.714 Mar 2024 -
5.8.614 Mar 2024Release notes
Open source →- Refactored session handler class to use the last modified timestamp as the last ping value to prevent writing to file with each send
- Bumping intl package to 0.19.0 to fix version solving issue with flutter_tools
-
5.8.528 Feb 2024 -
5.8.426 Feb 2024 -
5.8.321 Feb 2024 -
5.8.216 Feb 2024Release notes
Open source →- Added new event
Event.analyticsExceptionto track internal errors for this package - Redirecting the
Analytics.testfactory to return an instance ofFakeAnalytics - Exposing new helper function that can be used to parse the Dart SDK version
- Added new event
-
5.8.129 Jan 2024Release notes
Open source →- Refactor logic for
okToSendandshouldShowMessage - Check devtools config file for legacy opt out status
- Refactor logic for
-
5.8.011 Dec 2023Release notes
Open source →- Fix template string for consent message
- Add
enabledFeaturesto constructor to collect features enabled for each dash tool
-
5.8.0+121 Feb 2024Nothing published for this version
-
5.7.005 Dec 2023 -
5.6.026 Nov 2023 -
5.5.020 Nov 2023Release notes
Open source →- Edit to the
Event.flutterCommandResultconstructor to addcommandHasTerminal - Added timeout for
Analytics.setTelemetryto prevent the clients from hanging - Added the
Event.appleUsageEventconstructor - Added the
Event.exceptionconstructor
- Edit to the
-
5.4.013 Nov 2023 -
5.3.009 Nov 2023Release notes
Open source →- User property "host_os_version" added to provide detail version information about the host
- User property "locale" added to provide language related information
- User property "client_ide" (optional) added to provide the IDE used by the Dash tool using this package, if applicable
- Added the
Event.flutterCommandResultconstructor
-
5.2.003 Nov 2023 -
5.1.031 Oct 2023 -
5.0.024 Oct 2023Release notes
Open source →- Update to the latest version of
package:dart_flutter_team_lints - Using internal futures list to store send events
- Added the
Event.doctorValidatorResultconstructor
- Update to the latest version of
-
4.0.128 Sep 2023Release notes
Open source →- Adding constant for the NoOpAnalytics instance client ID to enable clients to reference it in tests
-
4.0.019 Sep 2023Release notes
Open source →- Enhanced
LogFileStatsdata to include information about flutter channel counts and tool counts - Added new method to suppress telemetry collection temporarily for current invocation via
analytics.suppressTelemetry() - Added
SurveyHandlerfeature toAnalyticsinstance to fetch available surveys from remote endpoint to display to users along with functionality to dismiss them - Surveys will be disabled for any users that have been opted out
- Shipping
FakeAnalyticsfor clients of this tool that need to ensure workflows are sending events in tests - Adding getter to
Analyticsinstance to fetch the client ID being sent to GA4
- Enhanced
-
3.0.023 Jun 2023Release notes
Open source →- Adds discovery API to find both a configuration and its location:
findPackageConfigAndFileandfindPackageConfigAndUri. - Removes support for the
.packagesfile.
The Dart SDK no longer supports that file, and no new.packagesfiles
will be generated.
Since the SDK requirement for this package is above 3.0.0,
no supporting SDK can use or generate.packages. - Simplifies API that no longer needs to support two separate files.
- Renamed
readAnyConfigFiletoreadConfigFile, and removed
thepreferNewestparameter. - Same for
readAnyConfigFileUriwhich becomesreadConfigFileUri. - Old functions still exists as deprecated, forwarding to the new
functions without thepreferNewestargument.
MakesPackageConfig,PackageandLanguageVersion@sealedclasses,
in preparation for making themfinalin a future update.
- Renamed
- Adds
PackageConfig.minVersionto complement.maxVersion.
Currently both are2.
Release notes
Open source →- Allow latest package versions for
fileandhttp - Introducing new
Eventclass that will standardize what event data can be sent with each event - Deprecating the
sendEventmethod in favor of thesendmethod
- Adds discovery API to find both a configuration and its location:
-
2.0.001 Jun 2023Release notes
Open source →- Refactoring
dateStamputility function to be defined inutils.dartinstead of having static methods inInitializerandConfigHandler - Remove the
pddFlagnow that the revisions to the PDD have been finalized to persist data in the log file and session json file - Opting out will now delete the contents of the CLIENT ID, session json, and log files; opting back in will regenerate them as events send
enableAssertsparameter added to constructors forAnalyticsto check body of POST request for Google Analytics 4 limitations- Now checking if write permissions are enabled for user's home directory, if not allowed,
NoOpAnalyticsreturned byAnalyticsfactory constructor
- Refactoring
-
1.1.017 Apr 2023Release notes
Open source →- Added a
okToSendgetter so that clients can easily and accurately check the state of the consent mechanism. - Initialize the config file with user opted out if user was opted out in legacy Flutter and Dart analytics
- Added a
-
1.0.104 Apr 2023Release notes
Open source →- Error handling on the
analytics.sendEvent(...)method to silently error out and return a500http status code to let tools using this package know Google Analytics did not receive the event (all successful requests will have a status code of2xxprovided by Google Analytics)
- Error handling on the
-
1.0.031 Mar 2023Release notes
Open source →- Error handling functionality added to prevent malformed session json data from causing a crash
- Creating a new analytics constructor to point to a test instance of Google Analytics for developers
- Align supported tool list with PDD
- Exposing a new instance method that will need to be invoked when a client has successfully shown the consent message to the user
clientShowedMessage() - Adding and incrementing a tool's version will automatically use the current consent message version instead of incrementing by 1
- Default constructor has disabled the usage of local log file and session json file until revisions have landed to the privacy document
-
0.1.215 Mar 2023Release notes
Open source →- Implemented fake Google Analytics Client for
Analytics.test(...)constructor; marked with visible for testing annotation
- Implemented fake Google Analytics Client for
-
0.1.110 Mar 2023Release notes
Open source →- Bumping intl package to 0.18.0 to fix version solving issue with flutter_tools
- LogFileStats includes more information about how many events are persisted and total count of how many times each event was sent
-
0.1.007 Mar 2023 -
0.1.0-dev07 Mar 2023 pre-releaseNothing published for this version