埋点验证详细指南

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开关打开。

日志如下:

image.png

日志等级

  • 日志分为四种等级,方便用户查看:

  • Error(打印SDK集成或运行时错误信息)。

  • Warn(打印SDK警告信息)。

  • Info(打印SDK提示信息)。

  • Debug(打印SDK调试信息)。

1.1.2 iOS

iOS中,日志模块为独立的插件,需要集成后才可以使用。

日志插件导入

pod导入

pod 'UMCCommonLog'

本地导入

  1. 选择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"];
}

日志如下:

image.png

日志等级

举例:如果用户传入的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选项,即可看到如下图所示的日志上报

image.png

1.1.4 Web

日志开关

aplus.aplus_queue.push({
  action: 'aplus.setMetaInfo',
  arguments: ['DEBUG', true]
});

日志如下:

image.png

1.2 QT后台“埋点验证”工具

埋点验证位置如下:image.png

1.2.1 进入埋点验证

Android

  1. 配置唤起码

集成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,下同;

  1. 在模块中输入"atm.你的appkey",生成二维码,并使用浏览器扫描

image.pngimage.pngimage.png
  1. 用浏览器扫码后,会打开一个网页,点击“开始埋点测试(内网有效)”

image.png
  1. 点击后,埋点验证模块会自动跳转到下述页面

image.png

iOS

  1. 配置唤起码

添加您的 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;
}

  1. 在模块中输入"atm.你的appkey",生成二维码,并使用浏览器扫描

image.pngimage.pngimage.png
  1. 用浏览器扫码后,会打开一个网页,点击“开始埋点测试(内网有效)”

image.png
  1. 点击后,埋点验证模块会自动跳转到下述页面

image.png

Web

  1. 将需要验证的网页链接填入输入框,点击“生成验证地址”

image.png
  1. 根据需求进行扫码/点击链接

image.png
  1. 点击pc端链接后,浏览器会打开新的tab,展示您输入的URL链接内容,您在这里“埋点触发点位”,返回“埋点验证”可以查看实时日志。image.png

小程序image.png

将页面上的“miniappDebugId”填写进“启动参数”

以微信小程序为例,在IDE里添加参数的示例如:

1.1. 首先请在此处选择「添加编译模式」;1.2. 添加以上代码至「启动参数」中;1.3. 点击确定。image.png

1.2.2 日志验证

在app、mini或者qt生成的Web页面上触发点位,对应的日志就会显示在这里。具体哪些内容,看什么区域见《2 埋点验证内容》

2 埋点验证内容

2.1 埋点触发上报日志说明

埋点方案如下:

image.png

研发埋点后,触发一个事件类型为“点击”“曝光”“自定义”事件的日志如下:

{
    用户账号;
    设备ID;
    系统属性;
    全局属性;
    事件:
    {
        事件编码;
        事件属性;
        客户端时间戳;
        所在页面;
        应用使用时长;//只有应用退出事件才有
    }
}

触发一个事件类型为“页面浏览”事件的日志如下:

{
    用户账号;
    设备ID;
    系统属性;
    全局属性;
    事件:
    {
        事件编码=“$$_page_start”或者“$$_page_end”
        事件属性;
        客户端时间戳;
        所在页面=页面编码
        页面访问时长;//只有页面退出事件才有
    }
}

用户属性的上报,是使用一个事件类型为“自定义”事件的日志上报的:

{
    用户账号;
    设备ID;
    系统属性;
    全局属性;
    事件:
    {
        事件编码=$$_user_profile
        事件属性=用户属性
        客户端时间戳;
    }
}

2.2 用户账号&设备ID验证image.png

这里会展示日志所携带的用户账号信息和设备ID信息

2.3 用户属性验证image.png

上报一个事件编码为“$$_user_profile”的事件,其事件属性即为用户属性

2.5 全局属性验证

全局属性列下的即为全局属性,设置后每个事件都会携带,除非调用清空接口

image.pngimage.png

2.5 页面事件验证

image.png

页面编码与事件编码相等,且和埋点方案一致,即为页面事件。其中:

  1. app端的页面事件在页面退出时上报。

  2. 小程序端的页面事件,如果为自动埋点在页面退出时上报。如果为手动埋点在页面事件被调用时上报。

  3. Web的页面事件的事件编码都为页面事件被调用时上报。

2.6 其他事件验证

事件编码与页面编码与埋点方案一致即可。

2.7 预置事件验证

预置事件的事件编码是固定,具体可见预置事件列表。