Flutter SDK Library for GrowingIO Flutter Plugin.

GrowingIO Flutter SDK 提供了 无埋点SDK埋点SDK 两个版本:

  • 埋点SDK 只自动采集用户访问事件,需要开发同学调用相应埋点 API 采集埋点事件;
  • 无埋点SDK 具备 埋点SDK 的所有功能,同时具备自动采集基本用户行为事件,如页面访问,点击事件等。

该仓库为埋点仓库和无埋点仓库的基础库。

GrowingIO简介

GrowingIO

GrowingIO(北京易数科技有限公司)是基于用户行为数据的增长平台,国内领先的数据运营解决方案供应商。为产品、运营、市场、数据团队及管理者等,提供客户数据平台、获客分析、产品分析、智能运营等产品和咨询服务,帮助企业在数据化升级的路上,提升数据驱动能力,实现更好的增长。
GrowingIO 专注于零售、电商、金融、酒旅航司、教育、内容社区、B2B等行业,成立以来,服务上千家企业级客户,获得迪奥、安踏、喜茶、招商仁和人寿、上汽集团、东航、春航、首旅如家、陌陌、滴滴、爱奇艺、新东方等客户的青睐。

集成文档

Flutter SDK 集成文档

改进

点击事件

事件的无埋点事件可以通过为 App 设置全局 Listener 的方式来实现,比如runApp(GrowingAutotrackerWidget(child: MyApp())。 在 GrowingAutotrackerWidget 中为 MyApp 包裹 Listener,监听所有的点击事件,然后通过 GrowingAutotrackertrackClickEvent 方法来发送事件。

@override
  Widget build(BuildContext context) {
    return Listener(
      behavior: HitTestBehavior.translucent,
      onPointerDown: _onPointerDown,
      onPointerUp: _onPointerUp,
      child: widget.child,
    );
  }

页面事件

现在 4.0 新版本需要手动设置页面才能发送页面事件,所以通过代理 state 的方式,要客户自行决定需要发送页面事件的页面。

mixin GrowingPageStateMixin<T extends StatefulWidget> on State<T> {
  @override
  void didChangeDependencies() {
    super.didChangeDependencies();
    GrowingPageProvider.getInstance().handleElementCreate(context as Element, alias, attributes);
  }

  @override
  void dispose() {
    super.dispose();
    GrowingPageProvider.getInstance().removeDisposeElement(context as Element);
  }

  @protected
  Map<String, dynamic>? get attributes => null;

  @protected
  String get alias;
}

控件路径

通过编译注入的方式,控件的路径能够辨别是否是用户创建的还是系统控件自带的,从而能够区分是否需要发送控件路径。 但是普通的通过代码获取控件路径是无法区分的,无法优化。

Libraries

growingio_autotracker_interface
GrowingAnalytics @author cpacm 2022/12/29 Copyright (C) 2023 Beijing Yishu Technology Co., Ltd.
growingio_inject_annotation
growingio_inject_impl
GrowingAnalytics @author cpacm 2022/12/12 Copyright (C) 2023 Beijing Yishu Technology Co., Ltd.