# mPaaS SDK
mPaaS架构应用如何使用SDK采集数据
## Android端
将SDK中的aar文件拷贝到`portal`和`bundle`工程的`libs`文件夹中,`portal`为`implementation`,`bundle`为`compileOnly`
```
portal:implementation fileTree(dir: 'libs', include: ['*.aar'])
bundle:compileOnly fileTree(dir: 'libs', include: ['*.aar'])
```
>[info]mPaaS SDK 依赖于 AnalysysAgent ,这个版本号其实是指的 AnalysysAgent 版本需要4.5.4及以上版本
在`portal`工程中添加`provider`
```
<provider
android:name="com.analysys.database.AnsContentProvider"
android:authorities="[应用包名].AnsContentProvider"
android:enabled="true"
android:exported="false"
tools:replace="android:authorities"/>
```
将全埋点插件添加到`portal`和`bundle`工程中
```
项目根build.gradle:
dependencies {
...
classpath 'cn.com.analysys:analysys-allgro-plugin:1.1.2'
}
项目模块build.gradle:
apply plugin: 'com.analysys.android.plugin'
```
在 `LauncherActivityAgent` 的`preInit`函数中初始化方舟sdk
```
@Override
public void preInit() {
super.preInit();
// 初始化方舟sdk
initAnalysys();
// 如果使用了H5容器,需要调用此接口初始化Hybrid相关功能
AnalysysMpaas.init();
}
public static final int DEBUG_MODE = 2;
public static final String APP_KEY = "heatmaptest0916";
public static final String UPLOAD_URL = "http://192.168.220.105:8089";
private static final String SOCKET_URL = "ws://192.168.220.105:9091";
private static final String CONFIG_URL = "http://192.168.220.105:8089";
private void initAnalysys() {
Context ctx = getApplicationContext();
AnalysysAgent.setDebugMode(ctx, DEBUG_MODE);
// 设置 debug 模式,值:0、1、2
AnalysysConfig config = new AnalysysConfig();
// 设置key(目前使用电商demo的key)
config.setAppKey(APP_KEY);
// 设置渠道
config.setChannel("AnalysysDemo");
// 设置追踪新用户的首次属性
config.setAutoProfile(true);
// 设置使用AES加密
config.setEncryptType(EncryptEnum.AES);
// 设置服务器时间校验
config.setAllowTimeCheck(true);
// 时间最大允许偏差为5分钟
config.setMaxDiffTimeInterval(5 * 60);
// 开启渠道归因
config.setAutoInstallation(true);
// 热图数据采集(默认关闭)
config.setAutoHeatMap(true);
// pageView自动上报总开关(默认开启)
config.setAutoTrackPageView(true);
// fragment-pageView自动上报开关(默认关闭)
config.setAutoTrackFragmentPageView(true);
// 点击自动上报开关(默认关闭)
config.setAutoTrackClick(true);
config.setAutoTrackCrash(true);
config.setAutoTrackDeviceId(true);
// 初始化
AnalysysAgent.init(ctx, config);
AnalysysAgent.setUploadNetworkType(AnalysysAgent.AnalysysNetworkType.AnalysysNetworkWIFI);
// 设置数据上传/更新地址
AnalysysAgent.setUploadURL(ctx, UPLOAD_URL);
// 设置 WebSocket 连接 Url
AnalysysAgent.setVisitorDebugURL(ctx, SOCKET_URL);
// 设置配置下发Url
AnalysysAgent.setVisitorConfigURL(ctx, CONFIG_URL);
}
```
## iOS端
在项目工程Podfile(示例配置如下)所在目录下`pod install`,安装ANSMpaasPlugin
```
source "https://code.aliyun.com/mpaas-public/podspecs.git"
source 'https://github.com/CocoaPods/Specs.git'
source 'https://github.com/analysys/ANSMpaasPlugin.git'
mPaaS_baseline '10.1.68' # 请将 x.x.x 替换成真实基线版本
mPaaS_version_code 22 # This line is maintained by MPaaS plugin automatically. Please don't modify.
platform :ios, '9.0'
target 'ANSMpaasPlugin_Example' do
remove_pod "mPaaS_MBProgressHud"
mPaaS_pod 'mPaaS_Nebula'
pod 'ANSMpaasPlugin'
pod 'AnalysysAgent'
end
```
>[info]mPaaS SDK 依赖于 AnalysysAgent ,这个版本号其实是指的 AnalysysAgent 版本需要4.5.4及以上版本
在`DTFrameworkInterface`分类(例如:DTFrameworkInterface+ANSMpaasPlugin_Example)中导入mPaaS SDK 及 iOS SDK
```
#import <AnalysysAgent/AnalysysAgent.h>
#import <ANSMpaasPlugin/AnalysysJsApi4EventList.h>
#import <ANSMpaasPlugin/AnalysysJsApi4Hybird.h>
#import <ANSMpaasPlugin/AnalysysJsApi4Property.h>
#import <ANSMpaasPlugin/AnalysysJsApi4Track.h>
@implementation DTFrameworkInterface (ANSMpaasPlugin_Example)
...
- (BOOL)shouldLogReportActive
{
return YES;
}
- (NSTimeInterval)logReportActiveMinInterval
{
return 1800;
}
- (BOOL)shouldLogStartupConsumption
{
return YES;
}
...
@end
```
在`DTFrameworkInterface`分类(例如:DTFrameworkInterface+ANSMpaasPlugin_Example)中 application:beforeDidFinishLaunchingWithOptions:方法内加载自定义插件配置
```
NSBundle *bundle = [NSBundle bundleForClass:[AnalysysJsApi4EventList class]];
NSString *pluginsJsapisPath = [bundle pathForResource:@"AnalysysWKWebPlugins.bundle/AnalysysWKWebConfig.plist" ofType:nil];
[MPNebulaAdapterInterface initNebulaWithCustomPresetApplistPath:presetApplistPath customPresetAppPackagePath:appPackagePath customPluginsJsapisPath:pluginsJsapisPath];
```
在`DTFrameworkInterface`分类(例如:DTFrameworkInterface+ANSMpaasPlugin_Example)中 application:afterDidFinishLaunchingWithOptions:方法内初始化`AnalysysAgent`
```
// 部分设置在SDK初始化前设置
[AnalysysAgent setAutomaticCollection:YES];
[AnalysysAgent setAutomaticHeatmap:YES];
[AnalysysAgent setAutoTrackClick:YES];
AnalysysConfig.appKey = @"heatmaptest0916";
AnalysysConfig.channel = @"App Store";
AnalysysConfig.autoProfile = YES;
AnalysysConfig.autoTrackCrash = NO;
AnalysysConfig.autoInstallation = YES;
AnalysysConfig.autoTrackDeviceId = YES;
AnalysysConfig.encryptType = AnalysysEncryptAESCBC128;
AnalysysConfig.allowTimeCheck = YES;
AnalysysConfig.maxDiffTimeInterval = 5 * 60;
[AnalysysAgent startWithConfig:AnalysysConfig];
#if DEBUG
[AnalysysAgent setDebugMode:AnalysysDebugButTrack];
#else
[AnalysysAgent setDebugMode:AnalysysDebugOff];
#endif
[AnalysysAgent setUploadURL:@"http://192.168.220.105:8089"];
#if DEBUG
[AnalysysAgent setVisitorDebugURL:@"ws://192.168.220.105:9091"];
#endif
[AnalysysAgent setVisitorConfigURL:@"http://192.168.220.105:8089"];
//H5容器配置
// 定制容器
[MPNebulaAdapterInterface shareInstance].nebulaVeiwControllerClass = [H5WebViewController class]; //设置H5容器基类
[MPNebulaAdapterInterface shareInstance].nebulaWebViewClass = [H5WKWebView class];
[MPNebulaAdapterInterface shareInstance].nebulaUserAgent = @"mPaaS/Portal";//设置H5容器UserAgent
[MPNebulaAdapterInterface shareInstance].nebulaUseWKArbitrary = YES; //开启 WKWebview
[MPNebulaAdapterInterface shareInstance].nebulaCommonResourceAppList = @[@"77777777"];// 设置全局资源包
[MPNebulaAdapterInterface shareInstance].nebulaNeedVerify = NO; // 关闭离线包验签,正式版本请开启验签
// 更新离线包
[[MPNebulaAdapterInterface shareInstance] requestAllNebulaApps:^(NSDictionary *data, NSError *error) {
NSLog(@"[mpaas] nebula rpc data :%@", data);
}];
```
## Web/H5端
根据JS SDK文档集成JS SDK。[《JS SDK标准版》](js/js.md)
集成JS mPaas通信模块SDK,为iOS端使用mPaas框架H5容器且使用Hybrid模式时,通过自定义 JSAPI方式进行JS SDK与iOS SDK之间通信。H5页面中需集成JS SDK与该插件。
Android端H5容器内H5页面无需集成该插件。
```javascript
//1.同步集成
//将以下JS代码添加到接入JS SDK代码的上方。
//将AnalysysAgent_MPAAS.min.js文件访问地址替换到script标签中的src位置
<script type="text/javascript" src="/*设置为非ES6mPaas通信模块SDK实际存放地址*/"></script>
...
//集成JS SDK
//2.ES6集成
//如为自行下载SDK。将以下代码添加至集成JS SDK代码位置即可。
//将AnalysysAgent_MPAAS.es6.min.js文件存放地址替换到import后的引入文件地址
import '设置为ES6mPaas通信模块SDK实际存放地址'
...//其他SDK代码
//如为npm获取SDK。将以下代码添加至集成JS SDK代码位置即可
import 'ans-javascript-sdk/sdk/AnalysysAgent_MPAAS.es6.min.js'
//3.CommonJS 规范集成
//将以下代码添加至集成JS SDK代码位置上方即可
require('ans-javascript-sdk/sdk/AnalysysAgent_MPAAS.amd.min.js')
//4.AMD 规范集成(以 RequireJS 为例)
//获取AnalysysAgent_MPAAS.amd.min.js,
//假设该文件放到与 require.js 同一目录中将以下代码添加至集成JS SDK代码位置上方即可
requirejs('./AnalysysAgent_MPAAS.amd.min.js')
```
>[info]mPaaS SDK 依赖于 AnalysysAgent ,这个版本号其实是指的 AnalysysAgent 版本需要4.5.4及以上版本
- 产品简介
- 快速上手
- Step 1 安装部署
- Step 2 激活系统创建项目
- Step 3 开启您的分析旅程
- 1. 集成 SDK
- 2. 可视化埋点
- 3. 创建分析模型
- 附:埋点方案设计
- 附:数据分析思路
- 产品更新日志
- V5.5 新增LTV分析功能等
- V5.3 UI 升级、分布分析重构、维度表动态更新、细节优化等
- V5.2 新增归因分析、消息中心、重构埋点方案、优化看数据体验……
- V5.1.0317 体验优化& Bug修复
- V5.1 升级可视化埋点、增强权限控制……
- Part I 产品功能说明
- 名词解释
- 指标说明
- 看板
- 5.3.3 看板 UI 重构
- 分析
- 事件分析
- 渠道分析
- 渠道相关名词解释
- 来源识别规则
- 搜索引擎
- 社交媒体
- 小程序场景值
- Session 分析
- Session 规则
- 实时分析
- 留存分析
- 转化漏斗
- 智能路径
- 归因分析
- 热图分析
- Web/H5 热图
- APP 热图
- 分布分析
- 间隔分析
- 属性分析
- LTV 分析
- 多主体分析
- 自定义查询
- 用户
- 用户分群
- 用户探查
- 用户标签
- 标签体系应用概览
- 标签体系
- 标签生命周期管理
- 标签加工
- 如何自定义SQL创建标签
- 单用户档案
- 运营
- 广告跟踪
- 微信小程序渠道追踪
- 预置广告媒介和渠道
- App 推广监测(Beta版本)
- 电子邮件(即将下线)
- 短信(即将下线)
- 消息通知(即将下线)
- 项目管理
- 项目概览
- 项目角色管理
- 项目成员管理
- 数据接入管理
- 埋点方案
- 可视化埋点
- 集成SDK接入数据
- 数据验证
- 用户数据导入
- 微信小程序全埋点事件定义
- 元数据管理
- 元事件
- 虚拟事件
- 事件属性
- 用户属性
- Session 管理
- 页面组管理
- 维度表
- 服务集成配置
- 监控告警
- 智能监控
- 自定义监控
- 平台管理
- 企业概览
- 项目管理
- 成员管理
- 安全设置
- 企业设置
- 日志管理
- 帐号设置
- Part II 技术文档
- 技术接入准备工作
- 部署环境检测工具
- 数据模型
- 数据格式
- 预置事件和属性
- App预置事件/属性
- JS 预置事件/属性
- 如何准确识别用户
- 如何设计埋点方案
- 分平台上报数据 vs 跨平台打通
- SDK 指南
- Android SDK
- 快速集成
- 全埋点模块
- 消息推送模块
- Android Hybrid模式
- SDK Gradle集成方式
- 多渠道打包
- 易观小工具
- 合规相关
- iOS SDK
- 快速集成
- 全埋点介绍
- iOS Hybrid模式
- 消息推送模块
- JS SDK
- 快速集成
- JS SDK基础版
- JS SDK插件
- uni-app SDK
- 快速集成
- 打包原生APP
- 开启移动端全埋点
- uni-app SDK标准版
- 微信小程序 SDK
- 快速集成
- 微信小程序标准版
- 微信小程序插件版
- 微信小程序通用框架版
- 支付宝小程序 SDK
- 支付宝小程序标准版
- 支付宝小程序通用框架版
- 字节跳动小程序 SDK
- 字节跳动小程序标准版
- 字节跳动小程序通用框架版
- 百度小程序 SDK
- 百度小程序标准版
- 百度小程序通用框架版
- 钉钉小程序 SDK
- 钉钉小程序标准版
- 钉钉小程序通用框架版
- QQ小程序 SDK
- QQ小程序标准版
- QQ小程序通用框架版
- 快应用 SDK
- 华为WeCode小程序
- WeCode SDK 标准版
- WeCode SDK插件
- PhoneGap SDK
- mPaaS SDK
- ReactNative SDK
- Flutter SDK
- Java SDK
- Python SDK
- PHP SDK
- C++ SDK
- C# SDK
- Node JS SDK
- Lua SDK
- Golang SDK
- SDK FAQ
- identify与alias的区别
- 爬虫数据如何识别?
- 页面停留如何获取时间?
- 如果获取SDK及更新日志
- 代码埋点和无埋点有什么区别
- Web页面中发现丢失某一个事件
- 自研 SDK 注意事项
- 页面时长统计功能
- 飞书小程序 SDK
- 飞书小程序标准版
- 飞书小程序通用框架版
- Unreal Engine SDK
- 数据验证
- 客户端埋点验证
- Debug 数据验证
- 数据入库验证
- 数据导入
- 接口导入
- JAVA工具包
- 标准json文件导入
- csv格式导入
- 数据导入FAQ
- 数据导出
- JAVA工具包
- 事件数据导出
- 用户数据导出
- 直接从Kafka中消费数据
- 使用程序访问数据库
- 脚本工具
- API
- 分析API
- 事件分析
- 留存分析
- 自定义查询
- 转化漏斗
- 属性分析
- Session分析
- 渠道分析
- 分布分析
- 用户API
- 分群查询
- 用户档案
- 分群管理
- 管理API
- 权限管理
- 元数据管理
- 埋点方案管理
- 维度表管理
- 运营API
- 广告跟踪
- APP推广监测
- 平台管理API
- 项目管理
- 成员管理
- 第三方登录
- OAuth2.0登录
- LDAP登录
- GDPR 合规
- Part III 常见问题
- License 许可
- 产品试用及采购
- 参与贡献