海纳嗨数-帮助中心
SDK接入
帮助中心 > 技术文档 > 服务端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
最后编辑:赵娟 更新时间:2024-11-20 17:38