1.合规初始化
1.1 初始化接口
1、合规声明
由于工信部的合规要求应用在用户同意隐私政策前不可以获取任何个人信息,所以 Quick Tracking 修改初始化为以下操作:
您需要确保应用有《隐私政策》,并且在用户安装或首次启动应用时就弹出《隐私政策》取得用户同意。
您务必告知用户您选择Quick Tracking SDK服务,请在《隐私政策》中增加如下参考条款:
“我们的产品集成Quick Tracking SDK,Quick Tracking SDK需要收集您的OS/OSVERSION/MEMORY/MAC/CPU/TIMEZONE/LANGUAGE/RESOLUTION/设备厂商/设备型号以提供统计分析服务。”
2、合规初始化
为保证您的应用在集成【Quick Tracking】统计SDK之后,能够满足工信部相关合规要求,您应确保应用在用户阅读您的《隐私政策》并取得用户授权之后,才调用正式初始化函数初始化统计SDK,此时SDK才会真正采集设备信息并上报数据。反之,如果用户不同意《隐私政策》授权,则不能调用初始化函数。
/** 初始化Quick Tracking所有组件产品
* param参数需要使用QTForPCHelper提供的QT::Helper::QT_Serializable方法进行序列化
*/
QTFORPC_API QT_VOID initQTPC(QT_CSTR strAppKey, QT_CSTR strProcessName, QT_CSTR strTrackDomain, QT_MAP param);
参数 | 类型 | 描述 | 是否必填 |
strAppKey | const char * | QT为当前应用平台颁发的唯一标识。 | 是 |
strProcessName | const char * | 应用进程名称。 | 是 |
strTrackDomain | const char * | 上传日志的主域名收数地址。 | 是 |
param | const char * | 其他配置参数,传入的参数形式必须是map集合,再调用QT::Helper::QT_Serializable序列化。
| 否 |
示例:
QT_INTERFACE_PTR qtInterface = NULL;
try
{
qtInterface = loadQTDLL(L"QTForPC.dll");
if (!qtInterface)
{
fprintf(stderr, "Error loading dll: %lx\n", -1);
return -1;
}
std::map<string, string> param;
param["appVersion"] = "testVersion";
param["channel"] = "testChannel";
param["maxCacheDay"] = "60";
param["maxReportDataSize"] = "100";
std::string sparam;
QT::Helper::QT_Serializable(sparam, param);
qtInterface->initQTPC("appKey", "processname", "http://xxxxx", sparam.c_str());
......
}
catch (...)
{
return -1;
}
system("pause");
freeQTDLL(qtInterface);
1.2 Appkey获取
在初始化SDK时,需要填写参数Appkey。Appkey是在Quick Tracking中代表应用的唯一ID,在创建应用时生成,其获取或查看方法详见文档:应用管理。
2 日志打印
可通过QtConfigure.setLogEnabled(true)接口控制【Quick Tracking】LOG的输出。
// 日志打印
// LOG_PRINT_TYPE_NONE:无
// LOG_PRINT_TYPE_STDOUT:标准输出 stdout
// LOG_PRINT_TYPE_FILE:文件输出, 输出目录为 %appdata%/qtforpc/appkey/
QTFORPC_API QT_VOID setQTLog(QT_CSTR strAppKey, QT_CSTR strProcessName, LOG_PRINT_TYPE type);
参数 | 类型 | 描述 | 是否必填 |
strAppKey | const char * | QT为当前应用平台颁发的唯一标识。 | 是 |
strProcessName | const char * | 应用进程名称。 | 是 |
type | enum LOG_PRINT_TYPE | 日志输出方式。
| 是 |
注意:
需先调用setQTLog接口开启日志功能,再完成initQTPC接口调用。
示例:
//日志打印
qtInterface->setQTLog("appKey", "processname", LOG_PRINT_TYPE::LOG_PRINT_TYPE_FILE);
//初始化
qtInterface->initQTPC("appKey", "processname", "http://xxxxx", sparam.c_str());
3 日志发送策略
Quick Tracking Windows SDK默认事件上报策略为:
正常请求日志聚合上报,默认300条,可通过初始化接口initQTPC中的maxReportDataSize参数设置聚合大小。
请求日志间隔3s发送