12/12/2024 11:37:56
事件上报模块
一、概述
事件上报,包括自定义事件、应用安装、应用卸载等。
支持的渠道有:
二、接入向导
2.1 上报渠道初始化
1)功能描述
初始化上报的渠道列表,多个渠道用逗号分隔,比如"Adjust,AppsFlyer,Beacon,TDM"。
2)接口声明
public static bool Init(string channels)
public static bool Init(const string &channels)
3)入参说明
参数名称 | 参数类型 | 说明 |
---|---|---|
channels | string | 渠道,上报的渠道,多个渠道用逗号分隔 |
4)示例代码
string channels = "Beacon,Adjust,AppsFlyer,TDM";
MSDKReport.Init(channels);
string channels = "Beacon,Adjust,AppsFlyer,TDM";
MSDKReport::Init(channels);
2.2 上报事件
1)功能描述
上报自定义事件。
2)接口声明
public static void ReportEvent(string eventName, Dictionary<string, string> paramsDic,string spChannels="", bool isRealTime=true)
public static void ReportEvent(const string &eventName, std::map<std::string, std::string> params, const string &spChannel = "", bool isRealTime = true)
3)入参说明
参数名称 | 参数类型 | 说明 |
---|---|---|
eventName | string | 事件 1、Adjust 渠道上报时,必须填写 EventToken,详情请参考 Adjust渠道-获取事件Token(ID)说明 2、FireBase 渠道上报时,必须以字母字符开头,详情请参考 Firebase说明 3、Appsflyer 渠道上报时,长度需要限制在 45 个字符以内 4、TDM 渠道上报时,EventName 只能是字母、数字、下划线,不能有其他特殊字符;TDM 表名(insight_srcid_logid_eventName)总长不能超过 64 字符 ,否则会导致事件落地失败。如有疑问,可咨询:TDM助手 |
params | map | 事件所需参数 |
spChannel | string | 指定单个渠道,若无可填空字符表示上报全部渠道 |
isRealTime | bool | 是否实时上报(仅 Beacon 渠道支持) true:开启;false:关闭 |
extraJson | string | 扩展信息,必须是 JSON 结构 仅 Adjust 渠道上报关注此参数,若使用 Adjust partner parameter 则需使用此参数。代码示例:"{\"isPartnerParameters\":true}"。如果此字段为空,或者设置false,则上报参数则会被设置到 Adjust 的 callback_params 中 |
4)示例代码
Dictionary<string, string> paramsDic = new Dictionary<string, string>();
paramsDic.Add("k1", "v1");
paramsDic.Add("k2", "v2");
paramsDic.Add("k3", "v3");
MSDKReport.ReportEvent("MSDK_EVENT_TEST", paramsDic, "", true);
std::map<std::string, std::string> paramsDic;
paramsDic["k1"] = "v1";
paramsDic["k2"] = "v2";
paramsDic["k3"] = "v3";
if ([self.channelSelected isEqual:@"Adjust"]) {
MSDKJsonWriter writer;
writer.StartJsonConvert();
writer.convert("isPartnerParameters", false);
writer.EndJsonConvert();
MSDKReport::ReportEvent("aymqbd", paramsDic, self.spChannels.UTF8String, true, writer.GetJsonString().c_str());
}
else {
MSDKReport::ReportEvent("MSDK_EVENT_TEST", paramsDic, "", true);
}
2.3 二进制上报
上报二进制文件,该功能仅 TDM 渠道 支持。
2.4 设置pushToken
1)功能描述
设置 Firebase 的 push token 用于卸载跟踪功能,目前 Adjust 和 AppsFlyer 支持。
2)接口声明
public static void SetPushToken (string pushToken)
void MSDKReport::SetPushToken(const String &pushToken)
3)入参说明
参数名称 | 参数类型 | 说明 |
---|---|---|
pushToken | string | Firebase的token |
4)示例代码
MSDKReport.SetPushToken ("c72it0O-cmQ:APA91bGLNTzEinXfbzJvy55kC5fkpC2pchN_cvY1lh2MpbD6ptGzKkFJh0UhwveUVG8qokUV6NR7WavhFDpLuAwMdBdRvbSsegIFLETfv7z5knReouFxsVg32goTBPLYfKjkAKhKHdfu");
MSDKReport::SetPushToken ("c72it0O-cmQ:APA91bGLNTzEinXfbzJvy55kC5fkpC2pchN_cvY1lh2MpbD6ptGzKkFJh0UhwveUVG8qokUV6NR7WavhFDpLuAwMdBdRvbSsegIFLETfv7z5knReouFxsVg32goTBPLYfKjkAKhKHdfu");
2.5 数据上报动态开关
该功能支持 Firebase、AppsFlyer、Adjust、Facebook(Facebook 渠道从 MSDK 5.36 版本开始支持) 渠道。
1)功能描述
动态开关数据上报能力。
2)接口声明
public static void EnablePluginReport(string channels = "", bool enable = true);
void MSDKReport::EnablePluginReport(const String &channels = "", bool enable = true);
3)入参说明
参数名称 | 参数类型 | 说明 |
---|---|---|
channels | string | 渠道,上报的渠道,多个渠道用逗号分隔 |
enable | bool | 是否需要开启渠道的数据上报功能 true:开启;false:关闭 |
4)示例代码
string channels = "Firebase";
MSDKReport.EnablePluginReport(channels, true);
string channels = "Firebase";
MSDKReport::EnablePluginReport(channels, true);
[warning] 若游戏需要在用户同意前关闭数据收集功能,需要添加以下配置。
Firebase 渠道
Android: 在应用的 AndroidManifest.xml 的 application 标记中将 firebase_analytics_collection_enabled 的值设置为 false。例如:
<meta-data android:name="firebase_analytics_collection_enabled" android:value="false" />
iOS: 在应用的 info.plist 文件中,将 FIREBASE_ANALYTICS_COLLECTION_ENABLED 的值设置为 NO(布尔值)。例如:
<key>FIREBASE_ANALYTICS_COLLECTION_ENABLED</key> <false/>
AppsFlyer、Adjust 渠道
在配置文件 MSDKConfig.ini 中配置 MSDK_DEFAULT_DISABLE_REPORT_LIST。例如:
MSDK_DEFAULT_DISABLE_REPORT_LIST = AppsFlyer,Adjust
AppsFlyer 重启上报不是即时的,在业务重新进入前台或重新开始进程后才会生效。
2.6 获取 Firebase 的 instanceID (V5.16)
1)功能描述
获取 Firebase 的 instanceID(仅支持 Firebase)。
2)示例代码
通过 MSDKExtend 的方式来获取,如下:
// 添加 Extend 的回调
MSDKExtend.ExtendRetEvent += mExtendCallBack.OnExtendRetEvent;
// 调用 getInstanceIDAsync
MSDKExtend.Invoke ("Firebase", "getInstanceIDAsync", "");
// 在 Extend 的回调中获取结果,结果在 extendRet.extraJson 中,json格式如下:{"instanceID":"xxxxxxx"}
public void OnExtendRetEvent (MSDKExtendRet extendRet)
{
string methodTag = extendRet.ExtendMethodName;
mCurrentTestMgr.ShowLogInNewLine (methodTag + Tools.Instance.GetRetString(extendRet));
}
// 设置 Extend 回调
MSDKExtend::SetExtendObserver(new MyExtendObserver());
// 调用 getInstanceIDAsync
MSDKExtend::Invoke("Firebase", "getInstanceIDAsync", "");
// 回调中获取结果, 结果在 extendRet.extraJson 中,json格式如下:{"instanceID":"xxxxxxx"}
class MyExtendObserver : public GCloud::MSDK::MSDKExtendObserver {
public:
void OnExtendNotify(const MSDKExtendRet &extendRet) {
handleCallback(extendRet, extendRet.methodNameID);
};
};
2.7 获取 Firebase 的 instanceID(仅支持 Firebase)
重要:此章节提及的 GetInstanceID 接口从 MSDKV5.16 开始废弃,请使用 2.5 章节提及的 getInstanceIDAsync 获取 InstanceID1)功能描述
获取 Firebase 的 instanceID(仅支持 Firebase)。
2)接口声明
public static string GetInstanceID(string channel)
std::string GetInstanceID(const String &channel);
3)入参说明
参数名称 | 参数类型 | 说明 |
---|---|---|
channel | string | 渠道名,这里填写(Firebase) |
4)示例代码
string instanceID = MSDKReport.GetInstanceID(channel );
std::string instanceID = MSDKReport::GetInstanceID(channel);
All rights reserved.