11/08/2024 16:35:54
TDM 渠道说明
一、概述
面向游戏/应用等各类客户端提供采集上报通道以及一整套完整的大数据解决方案,以解决游戏/应用等各类客户端自建数据采集上报难题。TDM 官方地址为 http://docs.tdm.woa.com/ (需内网访问)。
二、开发者平台配置
2.1 获取 TDM_SRC_ID
作为游戏/应用中提供数据上报通道的公共组件。TDM-SDK 可满足 APP 中所有 SDK(包括游戏/应用本身)的数据上报需求。为区分上报的数据来源于哪个 SDK或游戏/应用 等情况,TDM-SDK 引入了 SrcId 的概念 。获取详情如下所述。
1、接入独立的TDM-SDK
通过 TDM 官网 -> 控制台 -> 应用接入处,填写应用信息后获取。
2、接入GCloud-MSDK集成的TDM-SDK
通过 MSDKConfig.ini 文件中 TDM_SRC_ID(SrcId)值获取(GCloud 下载 MSDK-TDM 时会将 TDM_SRC_ID(SrcId) 及对应值,自动打入 MSDKConfig.ini 文件中)。
注意: GCloud 自动打入的 TDM_SRC_ID(SrcId),不支持将 TDM-SDK 上报的数据入库至 TDW。如有数据入库至 TDW 的需求,需参照“1、接入独立的TDM-SDK”所述的方法获取,并修改 MSDKConfig.ini 文件中的 TDM_SRC_ID 值。
2.2 上报数据入库至TDW
接入业务,需前往 TDM 官网->控制台->数据表管理 中新增数据表。客户端上报与此处创建的表一致时,数据会自动入库至 TDW。且新增数据表后,TDM 后台会对上报后的数据进行合规检查。其中,所有未经审核的数据,将无法接入数据仓库。未经审核或审核不通过的数据,客户端虽然可以正常上报,但会被丢弃,无法被存储和应用。
三、 Android工程配置
3.1 在 AndroidManifest.xml 中新增权限和配置
Unity工程:
Assets/Plugins/Android/gcloudsdk-gcloudcore/AndroidManifest.xml
UnrealEngine工程:
GCloudCore/Source/GCloudCoreLib/Android/GCloudCore/AndroidManifest.xml
1)权限说明
权限 | 说明 |
---|---|
INTERNET | 【必填】获取网络权限 |
ACCESS_NETWORK_STATE | 【必填】获取网络状态 |
//权限配置示例
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
2)通用配置
配置项 | 说明 |
---|---|
AppId | 【必填】填写从 GCloud官网 注册生成的GameID |
TGEMIT_ROUTER_ADDRESS_FORMAL | 【必填】正式环境域名 (1)TDM1.8及后续版本: 海外需要填写为 https://sg.tdatamaster.com:8013/tdm/v1/route 国内业务需要填写为 https://hc.tdm.qq.com:8013/tdm/v1/route (2)TDM1.8之前的版本: 海外需要填写为 tsg.tdatamaster.com 国内需要填写为 c.tdm.qq.com (3)独立部署业务正式环境域名请联系 TDM助手 确认 |
TGEMIT_ROUTER_ADDRESS_TEST | 【必填】测试环境域名 (1)TDM1.8及后续版本,需要填写为 https://htest.tdm.qq.com:8013/tdm/v1/route (2)TDM1.8之前的版本,需要填写为 test.tdm.qq.com |
Test | 【选填】环境配置,true-测试环境,false-正式环境。不填时,默认为正式环境 |
LogLevel | 【选填】日志级别配置,0-Debug,1-Info,2-Warning,3-Error,4-None。缺省值为2-Warning |
AppChannel | 【选填】发布渠道,自定义即可 |
APPKEY_DENGTA | 【选填】灯塔Appkey,用于生成设备 ID(QIMEI),已提供默认值000001ZG9U3Z6L9O,可根据实际修改 |
<!--必填配置-->
<meta-data android:name="GCloud.TDM.AppId" android:value="@string/tdm_AppId" />
<meta-data android:name="GCloud.TDM.TGEMIT_ROUTER_ADDRESS_FORMAL" android:value="@string/RouterAddressFormal" />
<meta-data android:name="GCloud.TDM.TGEMIT_ROUTER_ADDRESS_TEST" android:value="@string/RouterAddressTest" />
<!--其他配置-->
<!--<meta-data android:name="GCloud.TDM.Test" android:value="true" />-->
<!--<meta-data android:name="GCloud.TDM.LogLevel" android:value="1" />-->
<!--<meta-data android:name="GCloud.TDM.AppChannel" android:value="@string/tdm_AppChannel" />-->
<!--<meta-data android:name="GCloud.TDM.APPKEY_DENGTA" android:value="@string/tdm_APPKEY_DENGTA" />-->
<!--必填配置-->
<meta-data android:name="GCloud.TDM.AppId" android:value="@string/tdm_AppId" />
<meta-data android:name="GCloud.TDM.TGEMIT_ROUTER_ADDRESS_FORMAL" android:value="@string/RouterAddressFormal" />
<meta-data android:name="GCloud.TDM.TGEMIT_ROUTER_ADDRESS_TEST" android:value="@string/RouterAddressTest" />
<!--其他配置-->
<!--<meta-data android:name="GCloud.TDM.Test" android:value="true" />-->
<!--<meta-data android:name="GCloud.TDM.AppChannel" android:value="@string/tdm_AppChannel" />-->
<!--<meta-data android:name="GCloud.TDM.TGEMIT_ROUTER_TCP_PORT_TEST" android:value="@string/RouterAddressTestTcp" />-->
<!--<meta-data android:name="GCloud.TDM.TGEMIT_ROUTER_UDP_PORT_TEST" android:value="@string/RouterAddressTestUdp" />-->
<!--<meta-data android:name="GCloud.TDM.TGEMIT_ROUTER_TCP_PORT_FORMAL" android:value="@string/RouterAddressFormalTcp" />-->
<!--<meta-data android:name="GCloud.TDM.TGEMIT_ROUTER_UDP_PORT_FORMAL" android:value="@string/RouterAddressFormalUdp" />-->
<!--<meta-data android:name="GCloud.TDM.Protocol" android:value="@string/tdm_Protocol" />-->
注意:
1.【切记!发布上线前需要从测试环境转到正式环境!】
2.TDM 相关配置需要配置在 AndroidManifest.xml 中的 Application 节点下。
3.TDM 配置项 Value 值均为 string 类型,建议游戏配置在 /res/values/string.xml 中。
4.当应用安装包在不同渠道发布时,用户需要修改 AppChannel 为对应的渠道号(应用自定义),用以在统计时区分渠道。如果该配置项未修改,TDM 则按相同渠道号进行数据统计。如果已经在飞鹰上打入了渠道号,此处不配置默认使用打入的渠道号。
3.2 TDM_SRC_ID 配置
在工程文件 assets/MSDKConfig.ini 中添加配置
[TDM 调试配置]
MSDK_DEBUG = 1
MSDK_DEBUG_CHANNEL = TDM
[TDM 渠道配置]
TDM_SRC_ID = {YOUR_TDM_SRC_ID}
注意:
1.{YOUR_TDM_SRC_ID}
下载GcloudSDK时会默认填写Gcloud侧的GameID,如果有接入TDM渠道上报数据,需要填写从TDM官网获取的srcid;
2.{MSDK_DEBUG}
1 表示打开调试模式,0 表示关闭调试模式;
3.{MSDK_DEBUG_CHANNEL}
此开关设置为 TDM,表示开启 TDM 调试,仅当{MSDK_DEBUG}
为1时,此开关生效,在同一配置文件中;
3.3 混淆配置
1)去腾讯化版本
-keep class com.tdatamaster.tdm.** {*;}
-keep class com.tdatamaster.** {*;}
2)国内版本
-keep class com.tencent.tdmbeacon.** { *; }
-keep class com.tencent.tdmqmsp.** { *; }
-keep class com.tdatamaster.tdm.** {*;}
-keep class com.tdatamaster.** {*;}
-dontwarn okhttp3.*
-keep class com.tencent.tdm.** {*;}
-dontwarn com.tencent.gatherer.core.internal.provider.**
-keep class com.tencent.gatherer.core.GathererCloudResp{*;}
-keep class com.tencent.gatherer.core.GathererCloudReq{*;}
-keep class com.tencent.gatherer.core.GathererCloudConfigItem{*;}
-keep class com.tencent.turingfd.sdk.ams.gt.TNative$aa { public *; }
-keep class com.tencent.turingfd.sdk.ams.gt.TNative$aa$bb { public *; }
四、 iOS工程配置
4.1 新增相关配置
Unity工程:
Assets/GCloudSDK/Editor/GCloudCore/XUPorter/Mods/GCloudCoreFrameworks.projmods
UnrealEngine工程:
项目设置->平台->iOS, 在 Additional Plist Data(Config/DefaultEngine.ini) 中配置
1)通用配置
配置项 | 说明 |
---|---|
AppId | 【必填】填写从 GCloud官网 注册生成的GameID |
TGEMIT_ROUTER_ADDRESS_FORMAL | 【必填】正式环境域名 (1)TDM1.8及后续版本: 海外需要填写为 https://sg.tdatamaster.com:8013/tdm/v1/route 国内业务需要填写为 https://hc.tdm.qq.com:8013/tdm/v1/route (2)TDM1.8之前的版本: 海外需要填写为 tsg.tdatamaster.com 国内需要填写为 c.tdm.qq.com (3)独立部署业务正式环境域名请联系 TDM助手 确认 |
TGEMIT_ROUTER_ADDRESS_TEST | 【必填】测试环境域名 (1)TDM1.8及后续版本,需要填写为 https://htest.tdm.qq.com:8013/tdm/v1/route (2)TDM1.8之前的版本,需要填写为 test.tdm.qq.com |
Test | 【选填】环境配置,true-测试环境,false-正式环境。不填时,默认为正式环境 |
LogLevel | 【选填】日志级别配置,0-Debug,1-Info,2-Warning,3-Error,4-None。缺省值为2-Warning |
AppChannel | 【选填】发布渠道,自定义即可 |
<key>TDM</key>
<dict>
//必填
<key>AppId</key>
<string>XXXX</string>
<key>TGEMIT_ROUTER_ADDRESS_FORMAL</key>
<string>https://sg.tdatamaster.com:8013/tdm/v1/route</string>
<key>TGEMIT_ROUTER_ADDRESS_TEST</key>
<string>https://htest.tdm.qq.com:8013/tdm/v1/route</string>
//其他配置
<key>Test</key>
<true/>
<key>LogLevel</key>
<integer>1</integer>
<key>AppChannel</key>
<string>XXXX</string>
</dict>
<dict>
//必填
<key>TGEMIT_ROUTER_ADDRESS_FORMAL</key>
<string>tsg.tdatamaster.com</string>
<key>TGEMIT_ROUTER_ADDRESS_TEST</key>
<string>test.tdm.qq.com</string>
//其他配置
<key>TGEMIT_ROUTER_TCP_PORT_FORMAL</key>
<string>XXXX</string>
<key>TGEMIT_ROUTER_UDP_PORT_FORMAL</key>
<string>XXXX</string>
<key>TGEMIT_ROUTER_TCP_PORT_TEST</key>
<string>XXXX</string>
<key>TGEMIT_ROUTER_UDP_PORT_TEST</key>
<string>XXXX</string>
<key>TDM</key>
<dict>
//必填
<key>AppId</key>
<string>XXX</string>
//其他配置
<key>Test</key>
<true/>
<key>AppChannel</key>
<string>XXXX</string>
<key>Protocol</key>
<string>XXXX</string>
</dict>
</dict>
注意:
1.【切记!发布上线前需要从测试环境转到正式环境!】
2.系统库依赖说明:需要添加 libc++.tbd、libsqlite3.0.tbd、UIKit.framework、 Foundation.framework、CoreTelephony.framework(获取网络状态)、 SystemConfiguration.framework、libz.tbd、AdSupport.framework、libresolv.tbd(TDM 1.11 及后续版本新增)。
3.当应用安装包在不同渠道发布时,用户需要修改 AppChannel 为对应的渠道号(应用自定义),用以在统计时区分渠道。如果该配置项未修改,TDM 则按相同渠道号进行数据统计。如果已经在飞鹰上打入了渠道号,此处未配置时会默认使用打入的渠道号。
4.2 TDM_SRC_ID 配置
在工程中找到 MSDKAppSetting.bundle/MSDKConfig.ini 文件,增加如下配置
[TDM 调试配置]
MSDK_DEBUG = 1
MSDK_DEBUG_CHANNEL = TDM
[TDM 渠道配置]
TDM_SRC_ID = {YOUR_TDM_SRC_ID}
注意:
1.{YOUR_TDM_SRC_ID}
下载GcloudSDK时会默认填写Gcloud侧的GameID,如果有接入TDM渠道上报数据,需要填写从TDM官网获取的srcid;
2.{MSDK_DEBUG}
1 表示打开调试模式,0 表示关闭调试模式;
3.{MSDK_DEBUG_CHANNEL}
此开关设置为 TDM,表示开启 TDM 调试,仅当{MSDK_DEBUG}
为1时,此开关生效,在同一配置文件中;
五、数据上报
5.1 key-value 自定义事件上报
1)功能描述
key-value 自定义事件上报与 Report 模块中 ReportEvent 上报方式一样。
注意:
1.上报 key-value 自定义事件时,不要使用 MSDKReportFile、MSDKReportBinary 关键字作为 key; 2.key-value 自定义事件上报和二进制上报不可以在同一次上报事件中进行,需要分两次调用。
5.2 二进制上报
1)功能描述
二进制方式上报大量的数据信息,最大不超过 900 KB。调用方式还是 ReportEvent 接口,只在 EventName 中 MSDK 封装了两种入参方式,一种是文件地址,一种是二进制数组。
2)示例代码
文件地址方式
C#C++string filePath = getFilePath ("launch_640x960.png"); Dictionary<string, string> paramsDic = new Dictionary<string, string> (); // 文件地址方式时 “MSDKReportFile” 为固定参数,不可修改 paramsDic.Add ("MSDKReportFile", filePath); // 文件地址方式时 “Report-File” 参数,可自定义 MSDKReport.ReportEvent ("Report-File", paramsDic, "", true);
std::string filePath = getFilePath(); std::map<std::string, std::string>params; // 文件地址方式时 “MSDKReportFile” 为固定参数,不可修改 params.insert(std::make_pair("MSDKReportFile", filePath.UTF8String)); // 文件地址方式时 “Report-File” 参数,可自定义 MSDKReport::ReportEvent("Report-File", params);
二进制数据方式
C#C++byte [] data = getBytes(); string dataStr = System.Text.Encoding.UTF8.GetString (data); ; Dictionary<string, string> paramsDic = new Dictionary<string, string> (); // 二进制数据方式时 “MSDKReportBinary” 为固定参数,不可修改 paramsDic.Add ("MSDKReportBinary", dataStr); // 二进制数据方式时 “Report-Binary” 参数,可自定义 mReportTestMgr.mTestModuleReport.ReportEvent ("Report-Binary", paramsDic, "", true);
std::string localDefaultConfig = getFileByteToString() ; std::map<std::string, std::string>params; // 二进制数据方式时 “MSDKReportBinary” 为固定参数,不可修改 params.insert(std::make_pair("MSDKReportBinary", localDefaultConfig)); // 二进制数据方式时 “Report-Binary” 参数,可自定义 MSDKReport::ReportEvent("Report-Binary", params);
[info] 由于每次在调用二进制数据上报接口时会开启一个线程,因此不推荐接入方频繁调用二进制上报接口。
5.3 TDM 日志级别设置
TDM 日志级别设置接口,详见 GCloudSDK日志说明 中的4.TDM 说明。
六、海外接入特性介绍
6.1 加密敏感信息
1、TDM1.8 之前版本
1)从 TDM-SDK 中将 encrypt.json 文件找出
2)将 encrypt.json 文件放在 Android 的 assets 根目录下 / iOS 的根目录下(解压 IPA 后有此文件即可)
2、TDM1.8 及后续版本
1)在 AndroidManifest.xml 中通过 GCloud.TDM.EncryptDeviceInfo 配置
//加密字段配置,如果有多个字段需要加密,用,隔开
<meta-data android:name="GCloud.TDM.EncryptDeviceInfo" android:value="@string/EncryptDeviceInfo" />
2)在 info.plist 中通过 TDM.EncryptDeviceInfo 配置
<key>TDM</key>
<dict>
<key>EncryptDeviceInfo</key>
<array>
<string>DeviceID</string>
<string>carrier</string>
<string>UUID</string>
</array>
</dict>
3、如何查询“TDM自动上报的加密字段”?
前往 LogX-游戏TGlog日志实时检索平台,观察上报的数据中 i_uuid 和 i_carrier 字段是否被加密。查询详情如下所述。
说明 | 文档中字段 | 数据库中字段 | logx字段 |
---|---|---|---|
设备ID | KDeviceID | device_id | device_id/i_uuid |
物理地址 | kMacAddr | mac_addr | mac_addr |
电信运营商标识 | kCarrier | i_carrier | i_carrier |
用户应用名称 | kUserAppNames | app_names | app_names |
注意:
1.device_id 和 mac_addr TDM 内部启动事件( Srcid=1 ,Eventid=101)才会上报;
2.app_names,只有TDM内部扩展事件( Srcid=1 ,Eventid=104)才会上报;
3.将上述敏感信息加密后,从 TDM 服务端拉取到的字段是加密状态,如 device_id=DfsuKKJ2f2o1vWxnlNgWu0Ap7VyMWaX6W7gzLD+uuYJEJjvlG8lsUGFuwBSoBO6Z& app_names=as4rY4uiFwk+RCfrVlibMln/BDF0X5G7WaGFikWzmqo。需联系 TDM助手 复原加密信息,验证是否加密正确;
七、查询上报数据
7.1 测试环境
1)自定义事件上报
(1)查询地址:LogX平台
(2)权限申请:申请“TDM国内测试”业务权限。
(3)查询方法:通过选择上报时间、“TDM国内测试”业务及填写关键字进行查询上报数据,如下图所示。
2)二进制上报
(1)下载工具及使用说明:腾讯云COS桌面端
(2)腾讯云COS桌面端秘钥登陆信息,请联系 TDM助手 获取。
注意:
1.腾讯云COS桌面端中,TDM上报数据只保留3天;
2.查询二进制上报内容,文件路径命名规则为 {srcid}/{app_id}/{eventname}/{yyyy-MM-dd}/{uuid时间戳};
7.2 正式环境
1)自定义事件上报
(1)查询地址:LogX平台
(2)权限申请:申请“TDM国内正式”/"TDM新加坡正式"业务权限。
(3)查询方法:通过选择上报时间、“TDM国内正式”/"TDM新加坡正式”业务及填写关键字进行查询上报数据,如下图所示。
2)二进制上报
请联系 TDM 助手指引查询。
注意: 切到正式环境后,请确保 GCloudCoreFrameworks 中 TDM 的 Test 配置为 false 正式环境。
八、常见问题
8.1 TDM版本升级指引
1、TDM 版本与 MSDK 版本对应关系可参考 SDK版本关系说明表 。
2、TDM 版本升级指引可参考 TDM更新日志 —> 版本更新指引。
注意: 例如从 TDM1.9 升级至 TDM1.11,需要看 TDM1.10 和 TDM1.11 两部分内容。
8.2 查看TDM版本号
可参考 查看TDM版本号 。
8.3 LogX平台 查询数据,没有找到当前业务
LogX 平台数据查询,这里业务选择不是针对具体业务的,是针对 TDM 环境选择,业务侧可以根据实际需求申请权限,如:TDM国内测试、TDM国内正式、TDM新加坡正式 等。
8.4 数据入库问题
All rights reserved.