Android 信息流分析

概述

信息流分析功能,是百度移动统计新推出的统计功能,是针对用户在App中“信息列表”模块的行为分析。

MTJ会帮助应用统计所有的“列表控件”及其“信息元素”的展现、浏览、点击等行为。

使用该功能需要集成最新版(V3.9.0.3以上)的“应用分析(无埋点)”类型的SDK。

概念解释图:

控件举例

如上图的app结构中,MTJ会获取“列表”的展现次数、“每一条新闻”的展现次数、展现时长、点击次数等信息,通过信息流分析报表给您展现统计结果。

适用场景

  • Android中,信息流分析功能针对的“列表控件” 包括 ListView, GridView, RecyclerView 控件,例如 网易新闻的新闻列表;“信息元素”指列表的直接子控件,例如 网易新闻的具体新闻条目。
  • 如果您的app中有列表控件,无论是“新闻列表”、“商品列表”、“联系人列表”,只要是 ListView, GridView, RecyclerView 的控件类型,均可以被获取到。

集成步骤

  • 下载并集成MTJ最新版的“应用分析(无埋点)”类型的SDK您可以前往SDK中心下载对应的版本。集成参考可视化圈选集成:可视化圈选功能

  • 当您完成上述的“集成步骤”之后,SDK会自动开启信息流分析功能,整个集成只需要一行初始化代码。

测试步骤

  • 打开SDK调试开关,建议 开发时调用,正式上线前关闭,以免影响性能。打开调试开关代码:StatService.setDebugOn(true);

  • 当您完成了集成操作,启动app,正常浏览应用中的“列表”,浏览完成后退出app。

  • 再次启动app(kill之后重新打开、或放置后台30s之后重新打开),sdk将会把之前的信息流数据日志发送回MTJ服务器。

    可以通过 adb logcat -s BaiduMobStat 确认统计日志发送成功到服务器,logcat显示 Send log success即发送成功。

  • 登录MTJ官网,查看信息流分析报表的数据。由于MTJ服务器是以小时级处理报告,所以可能有一定时间的延迟,请耐心等待。

报表查看

  • 登录MTJ网站,并选择您的应用查看报告。
  • 选择页面顶部的“探索”tab。
  • 报表中相关指标解释可以在web中查看。

报表效果

MTJ将每一个列表定义为一个栏目,通过报表可以看到栏目的使用情况,以及栏目下每个信息元素的展现、使用情况。

(可选)其他个性化参数设置

  • 监控模式设置

    A) 接口声明:

    如果调用一行代码接入:StatService.autoTrace(…) API,默认会将模式设置为 TRACK_ALL(监控所有);如果您需要更改信息流监控模式,可以使用此API设置;否则不必调用此 API。

  1. /**
  2. * 设置列表类控件的曝光统计监控模式,共3种状态,TRACK_ALL(监控所有),TRACK_NONE(不监控),TRACK_SINGLE(监控指定列表);
  3. * 如果设置了TRACK_SINGLE,则需要调用 enableListTrack API 设置具体要监控的列表控件
  4. */
  5. public static void setFeedTrack(MtjConfig.FeedTrackStrategy strategy)

B)接口调用举例:

  1. StatService.setFeedTrack(MtjConfig.FeedTrackStrategy.TRACK_ALL);

C) 调用位置:

如果您需要设置监控模式,此API 务必在Application中调用,建议最先设置,然后调用其它接口

D) 调用场景:

  • 默认情况下,SDK采用第一种TRACK_ALL策略,会监控所有的列表浏览信息。

  • 如果您只想要监控个别列表信息,可以将策略设置为TRACK_SINGLE,此时SDK只会监控您代码中指定开启的列表。指定列表的接口,使用enableListTrackAPI 设置,下面会详细介绍。

  • 如果您不想监控任何列表信息,即不使用信息流监控功能,则可以将策略设置为TRACK_NONE。

  • 指定开启单个列表监控

    A) 接口声明:

  1. /**
  2. * 打开特定列表类控件的信息流统计,此设置仅在 TRACK_SINGLE 状态下生效
  3. *
  4. * @param view 列表控件,包括 ListView,GridView,RecyclerView 及继承的控件
  5. */
  6. public static void enableListTrack(View view)

B) 接口调用举例:

  1. StatService.enableListTrack(listView);

C) 调用位置:

在对应的列表控件加载展现之前(建议是页面 onCreate 中),调用enableListTrack接口,将列表设置为需要监控对象。

D) 调用场景:

  • 在TRACK_SINGLE模式下,只有调用enableListTrack的列表,会被监控。

  • 在其他两种模式下,enableListTrack API 无效。

  • 列表名称设置

    A) 接口声明:

  1. /**
  2. * 设置列表名称,支持列表 ListView,GridView,RecyclerView 及继承的控件;如果通过api 设置了名称,最终信息流统计使用设置名称;
  3. * 否则使用默认名称,即页面名作为列表名
  4. *
  5. * @param view 列表控件,ListView,GridView,RecyclerView 及其子控件
  6. * @param name 列表控件自定义名
  7. */
  8. public static void setListName(View view, String name)

B) 接口调用举例:

  1. StatService.setListName(listView, "新闻列表");

C) 调用位置: 在对应的列表控件加载展现之前,调用setListName接口,设置列表的名称。

D) 调用场景:

  • 设置的列表名称后,该列表将会以这个listName作为识别名称,在MTJ报表中展现。

  • 默认情况下,MTJ会自动识别列表名称,大部分情况下是列表所在页面的title。如果您觉得名称不准确、或者要设置自己的识别名称,可以通过此API进行手动设置。

  • 注意:如果您多个列表设置为相同的名称,则MTJ将识别为同一个列表,进行统计。

  • 举例说明,如果您的app中,在不同页面下都有“商品列表”控件要区分统计,则可以通过设置listName分别为“商品列表_1”、“商品列表_2”等格式进行区分。

  • 内容元素Title设置

    A) 接口声明:

  1. /**
  2. * 设置列表具体条目内容,支持列表 ListView,GridView,RecyclerView 及其继承控件的 直接子控件;如果通过api 设置了内容title,
  3. * 最终信息流统计使用设置名称;否则使用根据规则获取到的名称,默认选取字体最大元素内容作为内容title
  4. *
  5. * @param view 列表控件的直接子控件,ListView,GridView,RecyclerView 及继承的控件的 直接子控件,如新闻列表的具体新闻条目
  6. * @param name 控件自定义内容title
  7. */
  8. public static void setContentTitle(View view, String name)

B) 接口调用举例:

  1. StatService.setContentTitle(itemView, "商品_百科全书");

C) 调用位置:

建议在列表条目展现前进行contentTitle 设置。注意Cell的重用机制,需要在不是目标cell时,进行重新调用API设置。

D) 调用场景

  • 设置的Title后,该Cell元素将会以这个Title作为识别名称,在MTJ的报表中展现。

  • 默认情况下,SDK会自动识别cell中的文字Title,即以Cell元素中字体最大的控件文字为标题。

  • 当您觉得识别不准确、或者不想用该title进行统计时,可以在列表条目展现之前,调用API设置自定义的Title。

  • 内容元素contentId设置(目前不在报表中展现)

    A) 接口声明:

  1. /**
  2. * 设置列表具体条目内容id,支持 ListView,GridView,RecyclerView 及其继承控件的 直接子控件;内容id 未来可以支持导出
  3. *
  4. * @param view 列表控件的直接子控件,ListView,GridView,RecyclerView 及继承控件的 直接子控件,如新闻列表的具体新闻条
  5. * @param id 控件自定义内容id
  6. */
  7. public static void setContentId(View view, String id)

B) 接口调用举例:

  1. StatService.setContentId(itemview, "id_006");

C) 调用位置:

建议在列表条目展现前进行contentId 设置。注意Cell的重用机制,需要在不是目标cell时,进行重新调用API设置。

D) 调用场景:

  • 默认情况下,每一个元素列表条目的contentId信息是空的。

  • 如果您希望统计自己业务系统中,这条信息的id,可以通过此API进行设置。