用法

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运行测试。

GitHub

https://github.com/dart-lang/usage