我是标题
  • 介绍
  • 产品使用指南
    • 新手入门
      • 神策分析是什么
      • 神策分析能做什么
      • 神策分析怎么解决问题
      • 神策分析的数据来源
    • 功能介绍
      • 基本概念
        • 行为分析常用名词
        • 神策分析相关名词
        • 基础指标配置说明
        • 属性筛选条件说明
      • 分析模块
        • 事件分析
        • Session 分析
        • 漏斗分析
        • 留存分析
        • 分布分析
        • 归因分析
        • 用户路径分析
        • 网页热力分析
        • APP 点击分析
        • 间隔分析
        • 用户属性分析
        • 搜索用户
        • 用户分群
          • 用户分群(1.14 版本)
          • 用户分群
          • 用户分群(1.13 之前版本)
        • 用户行为序列
        • 书签及数据概览
          • 数据概览(1.11 之前版本)
          • 概览分组
          • 渠道对比组件使用说明
          • 预置概览
        • 自定义查询
      • 辅助功能
        • 事件分类
        • 查询抽样
        • 权限管理
          • 角色权限与账号(1.14 版本)
        • 预警管理
        • 元数据管理
        • 可视化全埋点
        • 维度字典
        • 正则表达式
        • 推荐分享
        • 小版本升级
        • 掌上神策分析
  • 技术指南
    • 数据采集
      • 数据模型
      • 数据格式
      • 调试模式
        • 调试模式动态配置
      • 数据校验
      • 导入实时查看
        • 导入实时查看(新版本)
        • 导入实时查看(老版本)
      • 埋点管理
      • 多项目
      • 如何准确的标识用户
      • 新增用户及首日首次标记
    • 快速接入指南
      • 接入前准备(全员阅读)
      • 如何准确的标识用户 (全员阅读)
      • 事件设计 (需求方阅读)
      • SDK 采集数据 (开发必读)
        • JavaScript 快速使用
        • 微信小程序快速使用
        • Android 快速使用
        • iOS 快速使用
        • Java 快速使用
      • 数据校验(测试必读)
    • 客户端 SDK
      • C++ SDK
      • 微信小程序 SDK
        • 微信小程序 SDK 历史版
        • 微信小程序 SDK 标准版
        • 微信小程序 SDK 插件版
        • 微信小程序 SDK 自定义全埋点版
      • 支付宝小程序 SDK
      • 百度小程序 SDK
      • JavaScript SDK
        • 常见问题
        • 全埋点(AutoTrack)
        • 点击图(HeatMap)
        • 单页面
        • 关闭页面发数据
      • Android SDK
        • 常见问题
        • 全埋点(AutoTrack)
        • 点击图(HeatMap)
      • iOS SDK
        • 常见问题
        • 全埋点(AutoTrack)
        • 点击图(HeatMap)
      • 打通 App 与 H5
      • App 第三方框架
        • React Native(Android & iOS)
        • Flutter(Android & iOS)
        • Weex(iOS)
        • Weex(Android)
        • 第三方 H5 页面嵌入 js(iOS)
        • 第三方 H5 页面嵌入 js(Android)
      • APICloud SDK
    • 服务端 SDK
      • C SDK
        • C SDK Demo
      • CSharp SDK
      • Java SDK
        • Java SDK Demo
      • Python SDK
      • PHP SDK
      • Ruby SDK
      • Golang SDK
      • Node SDK
    • 公共属性
    • 渠道追踪
      • App 渠道追踪
      • Web 渠道追踪
      • 小程序渠道追踪
      • 渠道对接
      • 渠道链接管理
    • 数据导入
      • BatchImporter
      • LogAgent
        • LogAgent 场景使用示例
      • FormatImporter
      • HdfsImporter
      • 数据导入常见问题
    • 数据导出
      • 查询 API
      • 订阅实时数据
      • 使用 JDBC 进行数据访问
      • 数据迁移
    • 辅助工具
      • 数据清理工具使用说明
      • 多项目管理工具使用说明
      • 元数据创建工具使用说明
      • 环境检测工具使用说明
    • 高级功能
      • 数据接入 API
      • App 消息推送
      • 虚拟属性和维度表
      • 数据预处理模块
      • 服务转发配置
      • 使用 HTTPS 的数据接入
      • API
        • 查询 API
        • 功能 API
          • 分群 API(1.12 及之前版本)
          • 分群 API(1.13 版本)
          • 分群 API(1.14 版本)
          • 埋点统计 API(1.11 及之前版本)
          • 埋点统计 API(1.12 及之后版本)
      • 第三方登录
      • 数据归档
  • 最佳实践
    • 功能应用示例
      • 事件分析
      • 漏斗分析
      • 留存分析
      • 分布分析
      • 间隔分析
      • 用户分群
      • 自定义查询
      • 用户行为序列
    • 复杂分析场景
      • 定位商品销量变化原因
  • 常见问题
  • 产品更新日志
Powered by GitBook
On this page
  • 1. 事件设计表(示例)
  • 2. 集成 SDK
  • 3. 埋点示例
  • 3.1 追踪事件
  • 3.2 设置用户属性
  • 3.3 匿名 ID 和登录 ID 关联
  • 3.4 调试查看埋点数据

Was this helpful?

  1. 技术指南
  2. 快速接入指南
  3. SDK 采集数据 (开发必读)

Android 快速使用

Previous微信小程序快速使用NextiOS 快速使用

Last updated 6 years ago

Was this helpful?

在使用前,请先阅读的介绍。

更多参数接口信息介绍可前往 。

1. 事件设计表(示例)

事件设计表一般是由神策分析师和你们对接的同事,针对具体业务需求一起梳理的需要做埋点的 Excel 表。 神策分析系统宏观上有两张表,事件表(events)用于记录用户的行为事件,比如 App 启动,App 浏览页面;用户表(users)用于保存用户相关的一些信息,比如个人资料。

事件和用户属性设计

事件表(events)

用户表(users)

事件名(带 $ 符号的为神策预置事件,开启全埋点自动采集)

事件属性

用户属性

App 启动事件( $AppStart )

预置事件属性

邮箱( email )

App 退出事件( $AppEnd )

预置事件属性

App 浏览页面事件( $AppViewScreen )

预置事件属性

App 元素点击事件( $AppClick )

预置事件属性

搜索事件( search )

搜索关键词( searchKeyWord )

2. 集成 SDK

事件显示名

事件名

事件描述

App 启动事件

$AppStart

App 启动时触发

App 退出事件

$AppEnd

SDK 在 2.0.3 版本加入了 30 秒的 session 机制,App 退到后台 30 秒的时候,才会触发退出事件, 之后再启动 App,才会触发启动事件

App 浏览页面事件

$AppViewScreen

Activity onResume 时触发(如果开启了 Fragment 浏览页面事件,Fragment 处于用户可见时触发)

App 元素点击事件

$AppClick

控件被点击时触发

在程序的入口 Application 的 onCreate() 中调用 SensorsDataAPI.sharedInstance() 初始化 SDK。 SDK 可以自动采集一些用户行为,如 App 启动、退出、浏览页面、控件点击等。初始化 SDK 后,可以通过 enableAutoTrack 方法打开自动采集。

import android.app.Application;
import android.content.Context;
import android.content.pm.ApplicationInfo;
import android.content.pm.PackageInfo;
import android.content.pm.PackageManager;
import com.sensorsdata.analytics.android.sdk.SensorsDataAPI;
import com.sensorsdata.analytics.android.sdk.SAConfigOptions;
import org.json.JSONObject;
import java.util.ArrayList;
import java.util.List;

public class App extends Application {

    // debug 模式的数据接收地址 (测试,测试项目)
    final static String SA_SERVER_URL_DEBUG = "【测试项目】数据接收地址";

    // release 模式的数据接收地址(发版,正式项目)
    final static String SA_SERVER_URL_RELEASE = "【正式项目】数据接收地址";


    @Override
    public void onCreate() {
        super.onCreate();
        // 在 Application 的 onCreate 初始化 SDK
        initSensorsDataSDK(this);
    }

    /**
     * 初始化 SDK 、设置公共属性、开启自动采集
     */
    private void initSensorsDataSDK(Context context) {
        try {
            // 初始化 SDK
            SensorsDataAPI.sharedInstance(this,new SAConfigOptions(isDebugMode(this)?SA_SERVER_URL_DEBUG:SA_SERVER_URL_RELEASE));

            // 初始化SDK后,获取应用名称设置为公共属性
            JSONObject properties = new JSONObject();
            properties.put("app_name", getAppName(context));
            SensorsDataAPI.sharedInstance().registerSuperProperties(properties);

            // 打开自动采集, 并指定追踪哪些 AutoTrack 事件
            List<SensorsDataAPI.AutoTrackEventType> eventTypeList = new ArrayList<>();
            // $AppStart
            eventTypeList.add(SensorsDataAPI.AutoTrackEventType.APP_START);
            // $AppEnd
            eventTypeList.add(SensorsDataAPI.AutoTrackEventType.APP_END);
            // $AppViewScreen
            eventTypeList.add(SensorsDataAPI.AutoTrackEventType.APP_VIEW_SCREEN);
            // $AppClick
            eventTypeList.add(SensorsDataAPI.AutoTrackEventType.APP_CLICK);
            SensorsDataAPI.sharedInstance().enableAutoTrack(eventTypeList);

        } catch (Exception e) {
            e.printStackTrace();
        }
    }

    /**
     * @param context App 的 Context
     *                获取应用程序名称
     */
    public static String getAppName(Context context) {
        try {
            PackageManager packageManager = context.getPackageManager();
            PackageInfo packageInfo = packageManager.getPackageInfo(context.getPackageName(), 0);
            int labelRes = packageInfo.applicationInfo.labelRes;
            return context.getResources().getString(labelRes);
        } catch (PackageManager.NameNotFoundException e) {
            e.printStackTrace();
            return null;
        }
    }

    /**
     * @param context App 的 Context
     * @return debug return true,release return false
     * 用于判断是 debug 包,还是 relase 包
     */
    public static boolean isDebugMode(Context context) {
        try {
            ApplicationInfo info = context.getApplicationInfo();
            return (info.flags & ApplicationInfo.FLAG_DEBUGGABLE) != 0;
        } catch (Exception e) {
            e.printStackTrace();
            return false;
        }
    }
}

数据接收地址 server_url 获取方式

3. 埋点示例

3.1 追踪事件

可以通过 track() 方法追踪用户行为事件,并为事件添加自定义属性(触发的事件会存储到神策分析系统的 events 表中)。

    try {
        JSONObject properties = new JSONObject();
        properties.put("searchKeyWord", "神策数据");// 搜索关键字
        // 记录搜索(search )事件
        SensorsDataAPI.sharedInstance().track("search", properties);
    } catch (JSONException e) {
        e.printStackTrace();
    }

3.2 设置用户属性

为了更准确地提供针对人群的分析服务,可以使用神策分析 SDK 的 profileSet() 等方法设置用户属性,如年龄、性别等。用户可以在留存分析、分布分析等功能中,使用用户属性作为过滤条件,精确分析特定人群的指标。 (设置的用户属性会存储到神策分析系统的 users 表中)

    try {
        JSONObject properties = new JSONObject();
        properties.put("email", "xxx@xxx.xx");
        // 设置用户的 email
        SensorsDataAPI.sharedInstance().profileSet(properties);
    } catch (JSONException e) {
        e.printStackTrace();
    }

3.3 匿名 ID 和登录 ID 关联

成功关联设备 ID 和登录 ID 之后,用户在该设备 ID 上或该登录 ID 下的行为就会贯通,被认为是一个神策 ID 发生的。在进行事件、漏斗、留存等用户相关分析时也会算作一个用户。

关联设备 ID 和登录 ID 的方法虽然实现了更准确的用户追踪,但是也会增加埋点接入的复杂度。所以一般来说,我们建议只有当同时满足以下条件时,才考虑进行 ID 关联:

  1. 需要贯通一个用户在一个设备上注册前后的行为。

  2. 需要贯通一个注册用户在不同设备上登录之后的行为

用户在登录前 ,SDK 会分配一个匿名 ID 来标识游客。当用户注册成功或登录成功时调用 login 方法,传入对应的登录 ID ;匿名 ID 会与对应的登录 ID 进行关联,关联成功之后视为同一个用户。 调用时机:注册成功、登录成功 、初始化 SDK(如果能获取到登录 ID)都需要调用 login 方法传入登录 ID。

注意:登录 ID 是指可以唯一标识一个用户的 ID,通常是业务数据库里的主键或其它唯一标识

//注册成功、登录成功、初始化SDK后  调用 login 传入登录 ID
SensorsDataAPI.sharedInstance().login("你们服务端分配给用户具体的登录 ID");

注意: 如果服务端做了埋点,需在用户注册/登录的时候将匿名 ID 传给服务端做用户 ID 关联。 可以通过 getAnonymousId 方法 获取 SDK 分配的 匿名 ID

//在用户注册或登录时,获取当前用户的匿名 ID 传给服务端
String AnonymousId=SensorsDataAPI.sharedInstance().getAnonymousId();

3.4 调试查看埋点数据

3.4.1 获取并配置 scheme

获取 scheme

使用 admin 账号,登录到神策分析相应的项目,点击右上角的账号,从「数据接入」页面获取 scheme 的值。

配置 scheme

在 AndroidManifest 中 MainActivity 的标签内,配置 scheme :

        <activity android:name=".SplashActivity">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>

        <activity android:name=".MainActivity">
            <!-- 在主 Activity 中配置 scheme-->
            <intent-filter>
                <action android:name="android.intent.action.VIEW" />
                <category android:name="android.intent.category.BROWSABLE" />
                <category android:name="android.intent.category.DEFAULT" />
                <data
                    android:host="debugmode"
                    android:scheme="您项目的 scheme 值" />
            </intent-filter>
        </activity>

3.4.2 用手机自带的浏览器扫码打开 App,选择调试模式

在神策分析 v1.13 及之后版本中点击「设置设备调试模式」打开二维码。

二维码位置:「神策分析」——「埋点」——「导入实时查看」——「Debug 数据」——「设置设备调试模式」

扫码打开 App 时,会弹出提示,选择想要切换的调试模式。

开启调试模式(导入数据):打开调试模式,校验数据,并将数据导入到神策分析中。

开启调试模式(不导入数据):打开调试模式,仅校验数据,但不进行数据导入,数据最终不会进入到数据库。

3.4.3 导入实时查看

开启调试模式后,神策分析会弹出下图页面,点击「开始刷新」可以查看当前设备的调试数据上报情况

3.4.4 查看本地日志

开启调试模式后,也可以通过 Android Studio Logcat 查看输出的 log(或者通过 enableLog 方法开启 SDK 日志),或用 adb logcat 查看日志。过滤日志关键字为:SA.,一个事件有两条日志。 日志中如果出现 track event 字段, 说明此事件已触发,如果出现 valid message 字段,说明数据已同步到服务端。

神策 SDK 提供了 的功能,可以帮您采集四类事件:

及以后的版本, SDK 调试模式默认为关闭状态,需在代码中配置 scheme 后,通过扫描神策分析「设置调试模式」的二维码开启调试模式; 开启调试模式只针对当前扫码打开的 App 有效,若 App 退到后台,杀掉(划掉) App 后,再次打开 App , SDK 的调试模式恢复为关闭状态。

及以后的版本, SDK 调试模式默认为关闭状态,需在代码中配置 scheme 后,通过扫描神策分析「设置调试模式」的二维码开启调试模式; 开启调试模式只针对当前扫码打开的 App 有效,若 App 退到后台,杀掉(划掉) App 后,再次打开 App , SDK 的调试模式恢复为关闭状态。

全埋点
如何准确的标识用户
3.0.4
数据模型
Android SDK 使用说明
1、事件设计表(示例)
2、集成 SDK
3、埋点示例
新书推荐《Android 全埋点解决方案》
3.0.4