Index: packages/usage/readme.md |
diff --git a/packages/usage/readme.md b/packages/usage/readme.md |
index 63a365a6f7489cf603c9431a6bd914b93f2d96ea..931f91f678f08686d874e88e0743b05f4cdddf36 100644 |
--- a/packages/usage/readme.md |
+++ b/packages/usage/readme.md |
@@ -1,8 +1,8 @@ |
# usage |
-`usage` is a wrapper around Google Analytics for both command-line apps and web |
-apps. |
+`usage` is a wrapper around Google Analytics for command-line, web, and Flutter apps. |
+[](https://pub.dartlang.org/packages/usage) |
[](https://travis-ci.org/dart-lang/usage) |
[](https://coveralls.io/r/dart-lang/usage?branch=master) |
@@ -11,6 +11,28 @@ apps. |
To use this library as a web app, import the `usage_html.dart` library and |
instantiate the `AnalyticsHtml` class. |
+When you are creating a new property at [google analytics](https://www.google.com/analytics/) |
+make sure to select the **mobile app** option, not the website option. |
+ |
+## For Flutter apps |
+ |
+Flutter applications can use the `AnalyticsIO` version of this library. They will need |
+to specify the documents directory in the constructor in order to tell the library where |
+to save the analytics preferences: |
+ |
+```dart |
+import 'package:flutter/services.dart'; |
+import 'package:usage/usage_io.dart'; |
+ |
+void main() { |
+ final String UA = ...; |
+ |
+ Analytics ga = new AnalyticsIO(UA, 'ga_test', '3.0', |
+ documentsDirectory: PathProvider.getApplicationDocumentsDirectory()); |
+ ... |
+} |
+``` |
+ |
## For command-line apps |
To use this library as a command-line app, import the `usage_io.dart` library |
@@ -30,9 +52,15 @@ have completed, or until the specified duration has elapsed. So, CLI apps can do |
something like: |
```dart |
-analytics.waitForLastPing(timeout: new Duration(milliseconds: 500)).then((_) { |
- exit(0); |
-}); |
+await analytics.waitForLastPing(timeout: new Duration(milliseconds: 200)); |
+analytics.close(); |
+``` |
+ |
+or: |
+ |
+```dart |
+await analytics.waitForLastPing(timeout: new Duration(milliseconds: 200)); |
+exit(0); |
``` |
## Using the API |
@@ -48,7 +76,7 @@ And call some analytics code: |
```dart |
final String UA = ...; |
-Analytics ga = new AnalyticsIO(UA, 'ga_test', '1.0'); |
+Analytics ga = new AnalyticsIO(UA, 'ga_test', '3.0'); |
ga.optIn = true; |
ga.sendScreenView('home'); |
@@ -61,21 +89,17 @@ ga.sendTiming('readTime', 20); |
## When do we send analytics data? |
-We use an opt-in method for sending analytics information. There are essentially |
-three states for when we send information: |
- |
-*Sending screen views* If the user has not opted in, the library will only send |
-information about screen views. This allows tools to do things like version |
-checks, but does not send any additional information. |
+You can use this library in an opt-in manner or an opt-out one. It defaults to |
+opt-out - data will be sent to Google Analytics unless the user explicitly |
+opts-out. The mode can be adjusted by changing the value of the |
+`Analytics.analyticsOpt` field. |
-*Opt-in* If the user opts-in to analytics collection the library sends all |
-requested analytics info. This includes screen views, events, timing |
-information, and exceptions. |
+*Opt-out* In opt-out mode, if the user does not explicitly opt-out of collecting |
+analytics (`Analytics.enabled = false`), the usage library will send usage data. |
-*Opt-ing out* In order to not send analytics information, either do not call the |
-analytics methods, or create and use the `AnalyticsMock` class. This provides |
-an instance you can use in place of a real analytics object but each analytics |
-method is a no-op. |
+*Opt-in* In opt-in mode, no data will be sent until the user explicitly opt-in |
+to collection (`Analytics.enabled = true`). This includes screen views, events, |
+timing information, and exceptions. |
## Other info |
@@ -92,6 +116,10 @@ mobile app style tracking IDs (as opposed to the web site style tracking IDs). |
For more information, please see the Google Analytics Measurement Protocol |
[Policy](https://developers.google.com/analytics/devguides/collection/protocol/policy). |
+## Contributing |
+ |
+Tests can be run using `pub run test`. |
+ |
## Issues and bugs |
Please file reports on the |