用法
Google Analytics的封装,适用于命令行、Web和Flutter应用。
用于Web应用
要将此库用作Web应用,请导入usage_html.dart库并
实例化AnalyticsHtml类。
用于Flutter应用
Flutter应用程序可以使用此库的AnalyticsIO版本。他们需要在构造函数中
指定文档目录,以便告诉库在哪里
保存分析偏好设置
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());
...
}
用于命令行应用
要将此库用作命令行应用,请导入usage_io.dart库
并实例化AnalyticsIO类。
请注意,对于CLI应用,usage库将异步发送分析ping。
这很有用,因为它通常不会阻塞应用。但它有一个
副作用,即未完成的异步请求将阻塞VM的终止,直到该请求完成。
因此,对于短期的CLI工具,ping
Google Analytics可能会导致该工具在终止前暂停几秒钟。
这通常是不希望的 - 收集分析信息不应
对工具的UX产生负面影响。
一种解决方案是使用分析对象上的waitForLastPing({Duration timeout})方法。
这将等待所有未完成的分析请求
完成,或直到指定的时间间隔过去。因此,CLI应用可以执行
类似的操作
await analytics.waitForLastPing(timeout: new Duration(milliseconds: 200));
analytics.close();
或者
await analytics.waitForLastPing(timeout: new Duration(milliseconds: 200));
exit(0);
使用API
导入包(在此示例中,我们使用dart:io版本)
import 'package:usage/usage_io.dart';
并调用一些分析代码
final String UA = ...;
Analytics ga = new AnalyticsIO(UA, 'ga_test', '3.0');
ga.analyticsOpt = AnalyticsOpt.optIn;
ga.sendScreenView('home');
ga.sendException('foo exception');
ga.sendScreenView('files');
ga.sendTiming('writeTime', 100);
ga.sendTiming('readTime', 20);
我们何时发送分析数据?
您可以以选择加入或选择退出的方式使用此库。默认情况下,
选择退出 - 除非用户明确选择退出,否则数据将发送到Google Analytics。
可以通过更改
Analytics.analyticsOpt字段的值来调整模式。
选择退出 在选择退出模式下,如果用户未明确选择退出收集
分析,usage库将发送usage数据。
选择加入 在选择加入模式下,除非用户明确选择加入
收集,否则不会发送任何数据。这包括屏幕浏览量、事件、计时信息和异常。
其他信息
对于这两个类,您需要提供Google Analytics跟踪ID、
应用程序名称和应用程序版本。
注意: 此库旨在与Google Analytics应用程序/
移动应用风格的跟踪ID(而不是网站风格的跟踪ID)一起使用。
有关更多信息,请参阅Google Analytics Measurement Protocol
政策.
贡献
可以使用pub run test运行测试。