1 埋点验证方式
研发:IDE的控制台中,SDK输出上报日志
测试:QT后台提供“埋点验证”工具
业务:QT后台中,提供的“分析”模块可以搭建业务指标,需要验证计算结果是否符合业务逻辑
上述的具体操作如下。
1.1 IDE控制台输出埋点日志
1.1.1 Android
可通过UMConfigure.setLogEnabled(boolean)接口控制LOG的输出。
注意: App正式上线前请关闭SDK运行调试日志。避免无关Log输出。
日志开关
可以通过调用如下方法控制SDK运行调试日志是否输出,默认情况下SDK运行调试日志关闭。需要用户手动打开。
/**
* 设置组件化的Log开关
* 参数: boolean 默认为false,如需查看LOG设置为true
*/
UMConfigure.setLogEnabled(true);
注意: 如果查看初始化过程中的LOG,一定要在调用初始化方法前将LOG开关打开。
日志如下:
日志等级
日志分为四种等级,方便用户查看:
Error(打印SDK集成或运行时错误信息)。
Warn(打印SDK警告信息)。
Info(打印SDK提示信息)。
Debug(打印SDK调试信息)。
1.1.2 iOS
iOS中,日志模块为独立的插件,需要集成后才可以使用。
日志插件导入
pod导入
pod 'UMCCommonLog'
本地导入
选择SDK功能组件并下载,解压.zip文件得到相应组件包(UMCommonLog.framework,UMCommonLog.bundle)。
2、XcodeFile —> Add Files to "Your Project",在弹出Panel选中所下载组件包->Add。(注:选中“Copy items if needed”)
日志开关
通过UMCommon.framwork的头文件UMConfigure.h接口API开启日志
接口:
/** 设置是否在console输出sdk的log信息.
@param bFlag 默认NO(不输出log); 设置为YES, 输出可供调试参考的log信息. 发布产品时必须设置为NO.
*/
+ (void)setLogEnabled:(BOOL)bFlag;
示例:
#import <UMCommon/UMCommon.h>
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
//开发者需要显式的调用此函数,日志系统才能工作
[UMCommonLogManager setUpUMCommonLogManager];
[UMConfigure setLogEnabled:YES];//设置打开日志
[UMConfigure setCustomDomain:@"https://www.umeng.com" standbyDomain:nil];//设置域名
[UMConfigure initWithAppkey:@"Your appkey" channel:@"App Store"];
}
日志如下:
日志等级
举例:如果用户传入的AppKey为空的话,打印日志如下图:
2018-02-08 20:19:44: 指当前的打印的时间;
UMengCommon: 指组件化SDK(UMCommon.framework)的名字;
<1.4.3>: 指组件化SDK(UMCommon.framework)的版本号;
(Error): 指日志等级是Error的日志;
[CIE10001]: 指日志的FAQ的代号,也可通过FAQ文档找到对应的解决方法;
用户传入的AppKey不合法,请到官网申请AppKey,以免影响自己App的统计数据。: 指提示开发者的错误信息,帮助开发者找到错误原因。
1.1.3 小程序
日志开关
aplus.aplus_queue.push({
action: 'aplus.setMetaInfo',
arguments: ['DEBUG', true]
});
进入IDE打开调试工具中的console选项,即可看到如下图所示的日志上报
1.1.4 Web
日志开关
aplus.aplus_queue.push({
action: 'aplus.setMetaInfo',
arguments: ['DEBUG', true]
});
日志如下:
1.2 QT后台“埋点验证”工具
埋点验证位置如下:
1.2.1 进入埋点验证
Android
配置唤起码
集成app时,在manifest.xml文件中找到响应android.intent.action.MAIN的activity(也就是应用可以被外部唤起的第一个Activity),加上如下代码,让应用能被指定连接scheme唤起。
<intent-filter>
<action android:name="android.intent.action.VIEW"/>
<category android:name="android.intent.category.DEFAULT" />
<category android:name="android.intent.category.BROWSABLE" />
<data android:scheme="atm.你的appkey" />
</intent-filter>
1、请使用单独intent-filter,和其他intent-filter并列,不要将上述代码填入其他intent-filter里; 2、请将“你的appkey”替换成你真实appkey,下同;
在模块中输入"atm.你的appkey",生成二维码,并使用浏览器扫描
用浏览器扫码后,会打开一个网页,点击“开始埋点测试(内网有效)”
点击后,埋点验证模块会自动跳转到下述页面
iOS
配置唤起码
添加您的 URL Scheme 到项目中,URL Scheme 位于项目设置 target -> 选项卡 Info - > URL Types。填入的scheme:atm.你的appkey。在AppDelegate中调用函数[MobClick handleUrl:url]来接收 URL
- (BOOL)application:(UIApplication *)application openURL:(nonnull NSURL *)url options:(nonnull NSDictionary<UIApplicationOpenURLOptionsKey,id> *)options
{
if ([MobClick handleUrl:url]) {
return YES;
}
return YES;
}
在模块中输入"atm.你的appkey",生成二维码,并使用浏览器扫描
用浏览器扫码后,会打开一个网页,点击“开始埋点测试(内网有效)”
点击后,埋点验证模块会自动跳转到下述页面
Web
将需要验证的网页链接填入输入框,点击“生成验证地址”
根据需求进行扫码/点击链接
点击pc端链接后,浏览器会打开新的tab,展示您输入的URL链接内容,您在这里“埋点触发点位”,返回“埋点验证”可以查看实时日志。
小程序
将页面上的“miniappDebugId”填写进“启动参数”
以微信小程序为例,在IDE里添加参数的示例如:
1.1. 首先请在此处选择「添加编译模式」;1.2. 添加以上代码至「启动参数」中;1.3. 点击确定。
1.2.2 日志验证
在app、mini或者qt生成的Web页面上触发点位,对应的日志就会显示在这里。具体哪些内容,看什么区域见《2 埋点验证内容》
2 埋点验证内容
2.1 埋点触发上报日志说明
埋点方案如下:
研发埋点后,触发一个事件类型为“点击”“曝光”“自定义”事件的日志如下:
{
用户账号;
设备ID;
系统属性;
全局属性;
事件:
{
事件编码;
事件属性;
客户端时间戳;
所在页面;
应用使用时长;//只有应用退出事件才有
}
}
触发一个事件类型为“页面浏览”事件的日志如下:
{
用户账号;
设备ID;
系统属性;
全局属性;
事件:
{
事件编码=“$$_page_start”或者“$$_page_end”
事件属性;
客户端时间戳;
所在页面=页面编码
页面访问时长;//只有页面退出事件才有
}
}
用户属性的上报,是使用一个事件类型为“自定义”事件的日志上报的:
{
用户账号;
设备ID;
系统属性;
全局属性;
事件:
{
事件编码=$$_user_profile
事件属性=用户属性
客户端时间戳;
}
}
2.2 用户账号&设备ID验证
这里会展示日志所携带的用户账号信息和设备ID信息
2.3 用户属性验证
上报一个事件编码为“$$_user_profile”的事件,其事件属性即为用户属性
2.5 全局属性验证
全局属性列下的即为全局属性,设置后每个事件都会携带,除非调用清空接口
2.5 页面事件验证
页面编码与事件编码相等,且和埋点方案一致,即为页面事件。其中:
app端的页面事件在页面退出时上报。
小程序端的页面事件,如果为自动埋点在页面退出时上报。如果为手动埋点在页面事件被调用时上报。
Web的页面事件的事件编码都为页面事件被调用时上报。
2.6 其他事件验证
事件编码与页面编码与埋点方案一致即可。
2.7 预置事件验证
预置事件的事件编码是固定,具体可见预置事件列表。