---
code: flutter_sdk_autotrack
name: "自动采集"
wikiToken: FEltw8wLjizkqikfz9QcedJnnte
parentWikiToken: CNPfwkQYaiYn4Wkkbqac8cBwnUh
updateTime: 1764557625000
sourceUrl: https://docs-v2.thinkingdata.cn/?version=v5.0&lan=zh-CN&code=flutter_sdk_autotrack
---
# 自动采集

### 一、开启自动采集事件

您可以调用 `enableAutoTrack` 并传入一个 `TDAutoTrackEventType` 类型来开启自动采集。当前支持六种：

- `ta_app_start`: 应用进入前台，对应类型为`TDAutoTrackEventType.APP_START`
- `ta_app_end`: 应用进入后台，对应类型为 `TDAutoTrackEventType.APP_END`
- `ta_app_install`: 安装后首次打开应用，对应类型为 `TDAutoTrackEventType.APP_INSTALL`
- `ta_app_crash`: 出现未捕获异常导致应用闪退，对应类型为 `TDAutoTrackEventType.APP_CRASH`
- `ta_app_view`：APP 在使用Navigator路由跳转时触发，对应类型为`TDAutoTrackEventType.APP_VIEW_SCREEN`
- `ta_app_click`：APP 控件点击事件将会在用户点击控件时触发，对应类型为`TDAutoTrackEventType.APP_CLICK`
关于自动采集事件，需要注意：

1. 自动采集事件是在 native SDK 中实现的，因此动态公共属性目前无法在自动采集事件中添加。
1. 如果您需要设置访客 ID，或者公共属性，请在开启自动采集事件之前完成设置。
开启自动采集示例：

```
TDAnalytics.enableAutoTrack(TDAutoTrackEventType.APP_START |
    TDAutoTrackEventType.APP_END |
    TDAutoTrackEventType.APP_INSTALL |
    TDAutoTrackEventType.APP_CRASH｜*
*    TDAutoTrackEventType.APP_CLICK｜*
*    TDAutoTrackEventType.APP_VIEW_SCREEN);
```

### 二、详细介绍

#### 2.1 浏览页面事件

APP 在使用Navigator路由跳转时触发，详细的事件介绍如下：

- 事件名：ta_app_view
- 预置属性：
`#screen_name`：字符串型，页面名称

`#title`：字符串型，页面标题

`#referrer`：字符串型，前向地址

- 开启步骤：
- 添加全局监听，在MaterialApp下增加navigatorObservers
```
import 'package:thinking_analytics/autotrack/td_page_view.dart';

void main() => runApp(new MaterialApp(
    navigatorObservers: TDNavigatorObserver.*wrap*([]), home: MyApp()));
```

- 调用*enableAutoTrack开启，示例代码如下：*
```
TDAnalytics.*enableAutoTrack*(TDAutoTrackEventType.*APP_VIEW_SCREEN*,
    autoTrackEventProperties: {
      "test_property": "test_property_value"
    },
    autoTrackPageConfig: TDAutoTrackConfig(
      pageConfigs: [
        TDAutoTrackPageConfig<Page1>(
          screenName: "Page1",
          title: "第一个页面",
        ),
        TDAutoTrackPageConfig<Page2>(
          screenName: "Page2",
          title: "第二个页面",
          ignore: false,
          properties: {
            "multi_property": "multi_property_value"
          },
        )
      ],
));
```

autoTrackEventProperties：设置自动采集的公共属性

autoTrackPageConfig：页面浏览相关的配置信息，可以自定义每一个页面的title和screenName，ignore是是否需要忽略这个页面的采集，properties是该页面的自定义属性

<!-- unsupported block: 19 -->

需要尽早开启，否则第一个页面的生命周期已过，采集不到第一个页面的浏览事件

#### 2.1 元素点击事件

APP 控件点击事件将会在用户点击控件时触发

- 事件名：ta_app_click
- 预置属性：
`#screen_name`：字符串型，页面名称

`#title`：字符串型，页面标题

`#element_type`：字符串型，元素类型

`#element_content`：字符串型，元素内容

- 开启步骤
```
TDAnalytics.*enableAutoTrack*(TDAutoTrackEventType.*APP_CLICK*);
```

- 控件自定义属性
通过设置TDElementKey来自定义属性

- 第一个参数：元素ID，对应属性#element_id
- properties：自定义属性
- isIgnore：是否忽略该控件自动采集事件
```
import 'package:thinking_analytics/autotrack/td_autotrack_config.dart';

ElevatedButton(
    key: TDElementKey("元素ID", properties: {"key": "value"},isIgnore: true),
    onPressed: () {},
    child: Text(
      "按钮2",
      style: TextStyle(fontSize: 14),
    )),
```

### 三、设置自定义采集事件公共属性

可以调`setAutoTrackProperties`设置或者更新自定义属性

```
TDAnalytics.*enableAutoTrack*(TDAutoTrackEventType.*APP_START*,
    autoTrackEventProperties: {
  'auto_test': 'stu',
  'auto_arr': [1, 2, 3],
  'auto_obj': {'obj_test': 'xxx'}
});
```
