12/12/2024 11:37:56

事件上报模块

一、概述

事件上报,包括自定义事件、应用安装、应用卸载等。

支持的渠道有:

  1. Adjust
  2. AppsFlyer
  3. Beacon
  4. TDM
  5. Facebook
  6. Firebase

二、接入向导

2.1 上报渠道初始化

1)功能描述

初始化上报的渠道列表,多个渠道用逗号分隔,比如"Adjust,AppsFlyer,Beacon,TDM"。

2)接口声明

C#
C++
public static bool Init(string channels)
public static bool Init(const string &channels)

3)入参说明

参数名称 参数类型 说明
channels string 渠道,上报的渠道,多个渠道用逗号分隔

4)示例代码

C#
C++
string channels = "Beacon,Adjust,AppsFlyer,TDM";
MSDKReport.Init(channels);
string channels = "Beacon,Adjust,AppsFlyer,TDM";
MSDKReport::Init(channels);

2.2 上报事件

1)功能描述

上报自定义事件。

2)接口声明

C#
C++
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)示例代码

C#
C++
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)接口声明

C#
C++
public static void SetPushToken (string pushToken)
void MSDKReport::SetPushToken(const String &pushToken)

3)入参说明

参数名称 参数类型 说明
pushToken string Firebase的token

4)示例代码

C#
C++
MSDKReport.SetPushToken ("c72it0O-cmQ:APA91bGLNTzEinXfbzJvy55kC5fkpC2pchN_cvY1lh2MpbD6ptGzKkFJh0UhwveUVG8qokUV6NR7WavhFDpLuAwMdBdRvbSsegIFLETfv7z5knReouFxsVg32goTBPLYfKjkAKhKHdfu");
MSDKReport::SetPushToken ("c72it0O-cmQ:APA91bGLNTzEinXfbzJvy55kC5fkpC2pchN_cvY1lh2MpbD6ptGzKkFJh0UhwveUVG8qokUV6NR7WavhFDpLuAwMdBdRvbSsegIFLETfv7z5knReouFxsVg32goTBPLYfKjkAKhKHdfu");

2.5 数据上报动态开关

该功能支持 Firebase、AppsFlyer、Adjust、Facebook(Facebook 渠道从 MSDK 5.36 版本开始支持) 渠道。

1)功能描述

动态开关数据上报能力。

2)接口声明

C#
C++
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)示例代码

C#
C++
string channels = "Firebase";
MSDKReport.EnablePluginReport(channels, true);
string channels = "Firebase";
MSDKReport::EnablePluginReport(channels, true);

[warning] 若游戏需要在用户同意前关闭数据收集功能,需要添加以下配置。

  1. 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/>
    
  2. 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 的方式来获取,如下:

C#
C++
// 添加 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 获取 InstanceID

1)功能描述

获取 Firebase 的 instanceID(仅支持 Firebase)。

2)接口声明

C#
C++
public static string GetInstanceID(string channel)
std::string GetInstanceID(const String &channel);

3)入参说明

参数名称 参数类型 说明
channel string 渠道名,这里填写(Firebase)

4)示例代码

C#
C++
string instanceID = MSDKReport.GetInstanceID(channel );
std::string instanceID = MSDKReport::GetInstanceID(channel);



Copyright © 2024 MSDK.
All rights reserved.

results matching ""

    No results matching ""