全埋点(AutoTrack)

1. 自定义页面信息

2. 开启 Fragment 页面浏览事件的自动采集

3. 通过代码 track 浏览页面事件

4. AlertDialog

5. 忽略某个页面或某些页面的事件

6. 忽略某个类型控件的点击事件

7. 忽略某个View的点击事件

8. 设置元素ID

9. 自定义元素属性

10. 注解 @SensorsDataIgnoreTrackAppViewScreen

11. 注解 @SensorsDataTrackViewOnClick

12. 注解 @SensorsDataTrackEvent

13. 开启 React Native 页面控件的自动采集

14. TODO

配置

1. 自定义页面信息($AppViewScreen)

对于 App 中的核心页面(Activity),我们提供了一个 接口 ScreenAutoTracker

当用户实现该接口时,SDK 会将 getTrackProperties 返回的属性(JSONObject类型)加入 $AppViewScreen 事件的属性中,作为用户访问该页面时的事件属性;SDK 会将 getScreenUrl 返回的字符串作为页面的 Url Scheme,记录在 $AppViewScreen 事件的 $url 属性中,并且当用户切换页面时,将前一个页面中的 Url Schema 作为当前页面的 $AppViewScreen 事件的 $referrer 属性。

例如:

2. 开启 Fragment 页面浏览事件的自动采集($AppViewScreen)

1.7.10 可以使用 trackFragmentAppViewScreen 方法开启 Fragment 页面浏览事件的自动采集:

开启了 Fragment 浏览页面的自动采集 ,可以通过注解 @SensorsDataIgnoreTrackAppViewScreen 忽略 Fragment 所在 Activity 的页面浏览事件;如果某些 Fragment 的页面浏览事件也不想采集,也可以通过此注解来忽略掉。

如果不想使用自动采集的 Fragment 浏览页面,可以通过代码埋点在 tab 切换 Fragment 时触发页面浏览事件:

3. 通过代码 track 浏览页面事件($AppViewScreen)

此方法用于 Activity 内 切换页面的时候调用,用于记录 $AppViewScreen 事件.

url :页面的 url, 记录到 $url 字段中(如果不需要此属性,可以传 null )。

properties :页面的属性。

注意:为保证记录到的 $AppViewScreen 事件和 Auto Track 采集的一致,页面的属性中 需要传入 $title(页面的title) 、$screen_name (页面的名称,即 包名.类名)字段。

v1.7.9 开始也可以使用下面方法来触发浏览页面事件:

4. AlertDialog

对于 AlertDialogandroid.app.AlertDialogandroid.support.v7.app.AlertDialog),需要给 Dialog 设置 OwnerActivity,才能采集到 AlertDialog 所属页面 (Activity) 的信息(属性:$screen_name$title)。

如果是调用dialog.show()显示dialog:

如果是调用builder.show()显示dialog

5. 忽略某个页面或某些页面的事件

如果想忽略某个或某些页面的事件($AppClick$AppViewScreen),可以使用如下方法:

6. 忽略某个类型控件的点击事件

如果想忽略某个控件类型及其子类控件的点击事件($AppClick),可以使用如下方法:

viewType 可以是 Android 常见的控件类型及自定义类型,如:CheckBoxRadioButtonButtonSwitchCompatSpinnerTextViewImageViewImageButtonSeekBarRatingBarRadioGroupExpandableListViewDialogListViewGridViewTabHost 等。

7. 忽略某个View的点击事件

如果要忽略某个 view 的点击事件($AppClick),比如某个 view 的点击事件对整个业务分析完全没有任何作用,或者自定义的密码输入键盘等,可以使用如下的方法忽略点击事件:

8. 设置元素ID

为了有效的区分页面元素 (view),SDK 默认使用 android:id 的值作为点击事件的 $element_id 属性,如果元素没有设置 android:id 属性,或者设置的不符合要求,可以使用如下方法设置元素 ID:

对于 Dialog,可以使用如下方法:

注意 setViewID 的优先级高于 android:id

9. 自定义元素属性

点击 view 时,如果在发送 $AppClick 事件时还需要添加其它属性,可以通过如下方法进行扩展:

当点击 view 后,发送 $AppClick 事件时,会把 properties 的内容带上。

注意:不要在 view 设置的点击函数内调用,ignoreView 、setViewID、setViewProperties 方法

  • 对于 ExpandableListView,可以通过 setViewProperties 方法对 item 所在的 view 设置扩展属性,也可以通过 Adapter 实现 SensorsExpandableListViewItemTrackProperties 接口来扩展属性。

  • 对于 ListViewGridView,可以通过 setViewProperties 方法对 item 所在的 view 设置扩展属性,也可以通过 Adapter 实现 SensorsAdapterViewItemTrackProperties 接口来扩展属性。

10. 注解 @SensorsDataIgnoreTrackAppViewScreen

忽略某个 Activity 或 Fragment 的页面浏览事件($AppViewScreen)

例如:忽略 DemoActivity 的页面浏览事件

11. 注解 @SensorsDataTrackViewOnClick

如果你是使用 android:onclick 属性给 View 添加点击处理函数,此时你可以在处理函数上使用 @SensorsDataTrackViewOnClick 注解,在该函数执行时,SDK 会发 $AppClick 事件。

例如:

XML:

处理函数:

12. 注解 @SensorsDataTrackEvent

对于一些简单的场景,比如当某一个方法执行时就 track 一个事件,可以在该方法上使用 @SensorsDataTrackEvent 注解。当该方法执行时,SDK 会 track 一个指定的事件。

例如:

这样,每当函数 someMethod() 执行时,SDK 就会 track 一个事件,其中事件名称为 someEventName,属性有:

13. 开启 React Native 页面控件的自动采集($AppClick

1.7.14 及以后的版本, 支持在初始化 SDK 之后,通过 enableReactNativeAutoTrack() 方法开启 RN 页面控件点击事件的自动采集。

14. TODO

  • EditText

  • Banner

Last updated

Was this helpful?