帮助中心 > 技术文档 > 服务端SDK > C# SDK > SDK接入

C# SDK接入流程主要分为两个步骤(两个文档)

1、SDK配置:将对应的SDK集成到您的产品项目中,然后进行初始化代码处理;
2、SDK接入:将需要上报的业务数据,按照SDK中对应的的方法进行数据上送。


1. 发送事件示例

//url配置采集上报地址URL(在线申请),获取步骤请查看如下【[采集上报地址获取] 链接
string url = "数据接收地址";
//1.初始化
HinaSdk hinaSdk = HinaSdk.Init(url, 1, true);

//2.注册全局属性
Dictionary<string, object> map1 = new Dictionary<string, object>();
map1.Add("H_os", "macos");
map1.Add("H_ip", "10.0.70.123");
hinaSdk.RegisterSuperProperties(map1);

//3.发送事件,未登录
string anonymousId = Guid.NewGuid().ToString();
Dictionary<string, object> map2 = new Dictionary<string, object>();
map2.Add("cat_name", "zhaoshang123");
map2.Add("pay_type", "online888");
map2.Add("pay_money", 25888);
long time1 = DateUtil.GetTimeStamp();
hinaSdk.SendEvent(anonymousId, "dotnet_test_event", map2, false, time1);

//4.登录后,发送事件
//4.1 登录
string accountId = "1220991856778869";
hinaSdk.BindId(accountId, anonymousId);

//4.2 登录后发送事件
Dictionary<string, object> map3 = new Dictionary<string, object>();
map3.Add("cat_name", "zhaoshang124");
map3.Add("pay_type", "online889");
map3.Add("pay_money", 25889);
long time2 = DateUtil.GetTimeStamp();
hinaSdk.SendEvent(accountId, "dotnet_test_event", map3, true, time2);

注意:
1、“数据接收地址”获取方式,请参考【采集上报地址获取
2、方法参数,详见【SDK接入

2. 设置用户ID

SDK 实例登录前使用匿名ID发送事件,登录后使用登录后ID发送事件,用户登录后,可以将登录ID和匿名ID绑定

/// <summary>
/// 绑定ID
/// </summary>
/// <param name="userUId">用户ID</param>
/// <param name="anonymousId">匿名ID</param>
public void BindId(string userUId, string anonymousId)

参数解释:

参数 默认值 说明
userUId string 登录ID
anonymousId string 匿名ID

3. 设置用户属性

3.1 设置用户属性

直接设置用户的属性,如果存在则覆盖

/// <summary>
/// 设置用户属性
/// </summary>
/// <param name="userUid">用户唯一标识</param>
/// <param name="data">用户属性</param>
public void UserSet(string userUid, Dictionary<string, object> data)

参数解释:

参数 默认值 说明
userUid string 用户ID
data Dictionary<string, object> 用户属性

样例:

// 设置用户属性
Dictionary<string, object> map = new Dictionary<string, object>();
map.Add("name", "zhangsan");
map.Add("age", 20);
map.Add("sex", "male");
hinaSdk.UserSet(ACCOUNT_ID, map);

3.2 固定初始值的属性

如果不存在则设置,存在就不设置

/// <summary>
/// 首次设置用户属性
/// </summary>
/// <param name="userUid">用户ID</param>
/// <param name="data">用户属性</param>
public void UserSetOnce(string userUid, Dictionary<string, object> data)

参数解释:

参数 默认值 说明
userUid String 用户ID
data Dictionary<string, object> 用户属性

样例:

 Dictionary<string, object> map = new Dictionary<string, object>();
 map.Add("name", "cheyt");
 map.Add("age", 18);
 map.Add("sex", "male");
 hinaSdk.UserSetOnce(ACCOUNT_ID, map);

3.3 数值类型的属性

对当前用户的属性做递增或者递减

/// <summary>
/// 用户属性值增长
/// </summary>
/// <param name="userUid">用户ID</param>
/// <param name="key"></param>
/// <param name="value">属性值,数值型</param>
public void UserAdd(string userUid, string key, int value)

参数解释:

参数 默认值 说明
userUid String 用户ID
key String 属性KEY
value Number 属性值,数值型

样例:

 hinaSdk.UserAdd(ACCOUNT_ID, "age",20);

3.4 列表类型的属性

对于用户的兴趣爱好、喜欢的运动、喜欢的书籍等属性,可以记录为列表类型属性。列表中重复的元素的值会自动去重。

/// <summary>
/// 用户集合类型的属性设置
/// </summary>
/// <param name="userUid">用户ID</param>
/// <param name="data">用户属性</param>
public void UserAppend(string userUid, Dictionary<string, object> data)

参数解释:

参数 默认值 说明
userUid String 用户ID
data Dictionary 用户列表属性,集合中key为属性名,value为List类型属性值

样例:

 Dictionary<string, object> map = new Dictionary<string, object>();
 List<string> games = new List<string>();
 games.Add("王者荣耀");
 games.Add("开心消消乐");
 map.Add("games", games);
 hinaSdk.UserAppend(ACCOUNT_ID, map);

3.5 属性取消

删除当前用户的一些属性

/// <summary>
/// 属性取消
/// </summary>
/// <param name="userUid">用户ID</param>
/// <param name="key">属性KEY</param>
public void UserUnset(string userUid, string key)

参数解释:

参数 默认值 说明
userUid String 用户ID
key String 键值

样例:

 hinaSdk.UserUnset(ACCOUNT_ID, "sex");

4 设置公共事件属性

对于所有事件都需要添加的属性,可在初始化 SDK 后,调用 RegisterCommonProperties 将属性注册为公共属性

/// <summary>
/// 设置公共属性
/// </summary>
/// <param name="data">属性集合</param>
public void RegisterSuperProperties(Dictionary<string, object> data)

参数解释:

参数 默认值 说明
data Dictionary<string, object> 属性值集合

样例:

 Dictionary<string, object> map1 = new Dictionary<string, object>();
 map1.Add("H_os", "macos");
 map1.Add("H_ip", "10.0.70.123");
 map1.Add("tuze_test_version", "tu_12399");
 map1.Add("H_timezone_offset", "-480");
 hinaSdk.RegisterSuperProperties(map1);

5. 发送事件

在 SDK 初始化完成之后,您就可以进行数据埋点,收集用户的的行为信息,可以调用 SendEvent 来上传事件,以下是示例

/// <summary>
/// 发送事件
/// </summary>
/// <param name="userUid">用户id</param>
/// <param name="eventName">事件名称</param>
/// <param name="data">数据</param>
/// <param name="isLogin">是否登录</param>
/// <param name="time">时间</param>
public void SendEvent(string userUid, string eventName, Dictionary<string, object> data, bool isLogin, long time)

参数解释:

参数 默认值 说明
userUid String 用户ID
eventName String 事件名称
data Dictionary<string, object> 事件数据
isLogin boolean 是否登录
time long 时间戳

样例:

 Dictionary<string, object> map = new Dictionary<string, object>();
 map.Add("cat_name", "zhaoshang123");
 map.Add("pay_type", "online888");
 long time1 = DateUtil.GetTimeStamp();
 hinaSdk.SendEvent(anonymous_id, "dotnet_test_event", map, false, time1);
作者:陈云涛  创建时间:2023-11-13 10:06
最后编辑:赵娟  更新时间:2024-11-20 17:38