菜单

Unity SDK

一、说明

1.功能概述

应用的文案或者运营策略更新经常需要通过发版解决,为了减少开发者频繁更新应用版本,热力引擎推出参数下发功能,通过参数下发可以随时远程调整应用中的参数值实现应用内容更新

2.适用范围

本文档适用于使用 Unity 来开发的移动端 APP 或产品。 本文档适用于 Android 5.0 及以上的安卓系统,及 iOS 11.0 及以上的 iOS 系统.  

3.SDK 下载

  • 最新 SDK 版本为:V1.2.9.2
  • 如果开发者要使用参数下发功能,需要去Unity SDK 集成文档中下载带有参数下发功能的SDK压缩包

二、接入SDK

由于参数下发SDK属于热力引擎SDK的一个插件,开发者在接入参数下发SDK时不需要再进行配置,只需要将参数下发SDK对应的桥文件以及源文件导入到项目即可,具体可参考Unity SDK集成文档

三、SDK 方法说明

1.初始化 SDK

参数下发SDK作为热力引擎SDK的一个插件,参数下发SDK初始化依赖于热力引擎SDK的初始化方法,具体初始化方法参考Unity SDK集成文档中热力引擎SDK初始化方法


方法示例

public static void initSeSdk(string appKey, SEConfig seConfig, RCConfig rcConfig)

参数说明

参数名称参数含义参数类型是否必传
appKey应用的appKey,需要联系商务人员从热力引擎后台获取string
seConfig热力引擎SDK配置项SEConfig
rcConfig热力引擎参数下发SDK配置项RCConfig

SEConfig参数说明

参数名称参数含义参数类型是否必传
isDebug是否开启 Debug 模式,默认为关闭状态bool
customUrl自定义URLstring
isGDPRArea是否为GDPR区域,默认为falsebool

RCConfig参数说明

参数名称参数含义参数类型是否必传
enable是否启用参数下发SDK,默认为关闭状态,必传字段bool
mergeTypeSDK配置合并策略,默认情况下服务端配置跟本地缓存配置合并,具体释义参考下方参数解释,可选字段SERCMergeType
pollingInterval轮询间隔时间(单位:分),区间:30分钟-24小时,默认为30分钟int
customIDProperties自定义ID,跟用户在后台设置的使用自定义ID匹配对应Dictionary<string, object>
customIDEventProperties自定义ID事件属性值,跟用户在后台设置的使用自定义ID事件属性值匹配对应,可选字段Dictionary<string, object>
customIDUserProperties自定义ID用户属性值,跟用户在后台设置的使用自定义ID用户属性值匹配对应,可选字段Dictionary<string, object>
customIDEventProperties自定义ID设备属性值,跟用户在后台设置的使用自定义ID设备属性值匹配对应,可选字段Dictionary<string, object>

mergeType(合并策略)介绍

参数名称参数含义
SERCMergeTypeUserapp首次启动或版本更新时, 使用服务端配置跟用户默认配置合并,此方法可以清除本地缓存配置
SERCMergeTypeDefault使用服务端配置跟用户本地已有缓存配置合并,参数下发SDK默认合并策略

注:开发者使用参数下发SDK需要通过API预置一份默认配置配置到App中,SDK使用该默认配置用来兜底,具体方法参考设置默认配置

调用示例


SEConfig seConfig = new SEConfig();
seConfig.logEnabled = true;
seConfig.customUrl = "开发者自定义url";
seConfig.isGDPRArea = true;
seConfig.isDebugModel = true;

RCConfig rcConfig = new RCConfig();
rcConfig.enable = true;
rcConfig.mergeType = SERCMergeType.SERCMergeTypeUser;
Dictionary<string, object> customIDProperties = new Dictionary<string, object>();
customIDProperties.Add("id_key1", "id_value1");
customIDProperties.Add("id_key2", "id_value2");
rcConfig.customIDProperties = customIDProperties;
Dictionary<string, object> customIDEventProperties = new Dictionary<string, object>();
customIDEventProperties.Add("event_key1", "event_value1");
customIDEventProperties.Add("event_key2", "event_value2");
rcConfig.customIDEventProperties = customIDEventProperties;
Dictionary<string, object> customIDUserProperties = new Dictionary<string, object>();
customIDUserProperties.Add("user_key1", "user_value1");
customIDUserProperties.Add("user_key2", "user_value2");
rcConfig.customIDUserProperties = customIDUserProperties;
Dictionary<string, object> customIDDeviceProperties = new Dictionary<string, object>();
customIDDeviceProperties.Add("device_key1", "device_value1");
customIDDeviceProperties.Add("device_key2", "device_value2");
rcConfig.customIDDeviceProperties = customIDDeviceProperties;

SolarEngine.Analytics.initSeSdk("开发者申请的appkey",seConfig, rcConfig);

2. 设置默认配置

参数下发SDK需要开发者预置一份默认配置到用户app中,方便参数下发SDK使用此默认配置进行兜底操作


方法示例

public void SetRemoteDefaultConfig(Dictionary<string, object>[] defaultConfig)

参数说明

参数名称参数含义参数类型是否必传
defaultConfig默认配置Dictionary<string, object>[]


调用示例

SESDKRemoteConfig remoteConfig = new SESDKRemoteConfig();
Dictionary<string, object> defaultConfigInt = new Dictionary<string, object>();
defaultConfigInt.Add("name", "int_test");
defaultConfigInt.Add("value", 2023);
defaultConfigInt.Add("type", 2);
Dictionary<string, object> defaultConfigString = new Dictionary<string, object>();
defaultConfigString.Add("name", "string_test");
defaultConfigString.Add("value", "string_value");
defaultConfigString.Add("type", 1);
Dictionary<string, object> defaultConfigBool = new Dictionary<string, object>();
defaultConfigBool.Add("name", "bool_test");
defaultConfigBool.Add("value", false);
defaultConfigBool.Add("type", 3);
Dictionary<string, object>[] defaultConfigArray  = new Dictionary<string, object>[]{defaultConfigInt, defaultConfigString, defaultConfigBool};
remoteConfig.SetRemoteDefaultConfig(defaultConfigArray);

3. 设置事件自定义属性

开发者可以为事件设置自定义属性,参数下发SDK在请求服务端配置时会带上该属性,用于服务端参数匹配


方法示例

public void SetRemoteConfigEventProperties(Dictionary<string, object> properties)

参数说明

参数名称参数含义参数类型是否必传
properties事件自定义属性Dictionary<string, object>

调用示例

SESDKRemoteConfig remoteConfig = new SESDKRemoteConfig();
Dictionary<string, object> eventProperties = new Dictionary<string, object>();
eventProperties.Add("event_pro1", "event_value1");
eventProperties.Add("event_pro2", "event_value2");
remoteConfig.SetRemoteConfigEventProperties(eventProperties);

注:给事件设置的自定义属性不支持开发者传入"_"下划线开头的key值,SDK会默认丢弃该条属性


4. 设置用户自定义属性

开发者可以为用户设置自定义属性,参数下发SDK在请求服务端配置时会带上该属性,用于服务端参数匹配


方法示例

public void SetRemoteConfigUserProperties(Dictionary<string, object> properties)

参数说明

参数名称参数含义参数类型是否必传
properties用户自定义属性Dictionary<string, object>

调用示例

SESDKRemoteConfig remoteConfig = new SESDKRemoteConfig();
Dictionary<string, object> userProperties = new Dictionary<string, object>();
userProperties.Add("user_pro1", "user_value1");
userProperties.Add("user_pro2", "user_value2");
remoteConfig.SetRemoteConfigUserProperties(userProperties);

注:给用户设置的自定义属性不支持开发者传入"_"下划线开头的key值,SDK会默认丢弃该条属性

5. 获取参数下发配置

参数下发SDK获取参数下发配置分为两种情况,一种是同步获取方法,通过此方法开发者可以直接获取返回结果。另一种是异步获取方法,返回结果需要等待回调完成才可以获取

注:通过同步或异步方式获取参数时,sdk 会触发上报用户命中试验的事件,所以获取参数的时机应该在用户到达试验场景时读取(获取参数代表用户到达试验场景,用户命中该参数对应的试验),请勿提前读取参数

5.1 同步获取参数下发配置

方法示例

public string FastFetchRemoteConfig(string key)

参数说明

参数名称参数含义参数类型是否必传
key参数下发key,跟用户在后台配置参数key对应string


返回值:返回key对应的value值,类型为string


调用示例

SESDKRemoteConfig remoteConfig = new SESDKRemoteConfig();
//获取参数下发的方法返回值为string类型,需要开发者根据自己的业务配置进行属性转换,此处以bool类型为例
string result = remoteConfig.FastFetchRemoteConfig("key");
bool boolResult = bool.Parse(result);


5.2 同步获取所有参数下发配置

方法示例

public Dictionary<string, object> FastFetchRemoteConfig()


返回值:返回所有参数下发配置的值,类型为Dictionary<string, object>

调用示例

SESDKRemoteConfig remoteConfig = new SESDKRemoteConfig();
Dictionary<string,object> result = remoteConfig.FastFetchRemoteConfig()

5.3 异步获取参数下发配置

方法示例

public void AsyncFetchRemoteConfig(string key, FetchRemoteConfigCallback callback)


参数说明

参数名称参数含义参数类型是否必传
key参数下发key,跟用户在后台配置参数key对应string
callback参数下发异步回调FetchRemoteConfigCallback

调用示例

private void onFetchRemoteConfigCallback(string result) {
    //异步获取参数下发的回调为string类型,需要开发者根据自己的业务配置进行属性转换,此处以bool类型为例
    bool boolResult = bool.Parse(result);
}

SESDKRemoteConfig remoteConfig = new SESDKRemoteConfig();
remoteConfig.AsyncFetchRemoteConfig("key", onFetchRemoteConfigCallback);


5.4 异步获取所有参数下发配置

方法示例

public void AsyncFetchRemoteConfig(FetchAllRemoteConfigCallback callback)

参数说明

参数名称参数含义参数类型是否必传
callback参数下发异步回调FetchAllRemoteConfigCallback

调用示例

private void onFetchAllRemoteConfigCallback(Dictionary<string, object> result) {
    //result:异步获取到的所有在线参数配置
}

SESDKRemoteConfig remoteConfig = new SESDKRemoteConfig();
remoteConfig.AsyncFetchRemoteConfig(onFetchAllRemoteConfigCallback);

SDK 更新记录


2024-11-21 1.2.9.2

基于Android 1.2.9.1 iOS 1.2.9.2


2024-11-07 1.2.9.1

基于Android 1.2.9.1 iOS 1.2.9.1


2024-9-23 1.2.8.3

基于Android 1.2.8.3 iOS 1.2.8.2

•Android:优化在线参数逻辑


2024-2-4 1.2.7.0

基于Android 1.2.7.0 iOS 1.2.7.0

•Android:优化在线参数分流逻辑


2023-12-28 1.2.6.1

基于Android 1.2.6.1 iOS 1.2.6.1

•Android:优化在线参数SDK获取所有参数回调方法


2023-12-14 1.2.6.0

基于Android 1.2.6.0 iOS 1.2.6.0

•iOS&Android:在线参数SDK支持同步获取所有在线参数配置

•iOS&Android:在线参数SDK支持异步获取所有在线参数配置


2023-04-26 1.0.3.0

基于Android 1.0.3.0  iOS 1.0.3.0

  • iOS&Android:SDK日志功能优化


2023-03-30 1.0.2.0

基于Android 1.0.2.0  iOS 1.0.2.0

  • iOS&Android:优化、兼容debug模式


2023-03-29 1.0.1.2

基于Android 1.0.1.2  iOS 1.0.1.0

  • Android:参数下发模块功能优化


2023-03-23 1.0.1.1

基于Android 1.0.0.1  iOS 1.0.0.1

  • Android:优化参数下发模块数据格式


2023-03-20 1.0.1.0

基于Android 1.0.1.0  iOS 1.0.1.0

  • iOS&Android:参数下发模块支持AB测试功能


2023-03-10 1.0.0.1

基于Android 1.0.0.1  iOS 1.0.0.1

  • iOS&Android:参数下发添加日志打点


2023-02-08 1.0.0.0

基于Android 1.0.0.0  iOS 1.0.0.0

  • iOS&Android:参数下发SDK初版



最近修改: 2024-11-21Powered by