| 0 |
初始化成功 |
| 101 |
SDK未预初始化 |
| 102 |
appkey非法 |
| 103 |
context为null(仅Android生效) |
| 104 |
distinct_id生成失败(仅Android生效) |
第七步:获取归因回调信息(Windows/MacOS平台暂不支持)
7.1 SDK提供两种方式获取归因结果信息
「新版」通过回调获取归因结果(推荐)
方法示例
6.1 设置归因结果回调
方法示例
public struct SEConfig
{
...
public Analytics.SEAttributionCallback uaAttributionCallback { get; set; }
public Analytics.SEAttributionCallback reAttributionCallback { get; set; }
}
示例代码
private void InitSDK()
{
SEConfig seConfig = new SEConfig
{
enableSeparatedAttribution = true,
uaAttributionCallback = OnUAAttributionReceived,
reAttributionCallback = OnREAttributionReceived
};
Analytics.initSeSdk(AppKey, seConfig);
}
private void OnUAAttributionReceived(
int code,
Dictionary<string, object> attribution)
{
HandleAttribution("UA", code, attribution);
}
private void OnREAttributionReceived(
int code,
Dictionary<string, object> attribution)
{
HandleAttribution("RE", code, attribution);
}
private void HandleAttribution(
string type,
int code,
Dictionary<string, object> attribution)
{
Debug.Log(
$"SEUnity: {type} attribution, code={code}, " +
$"data={JsonConvert.SerializeObject(attribution)}");
if (code == 0)
{
// 归因成功
}
else
{
// 归因失败
}
}
重要提示:使用回调模式接收归因结果时,归因监听器必须在 initialize 初始化阶段完成配置之前。若初始化之后再设置监听器,会导致归因结果获取不准确,可参考上方代码示例。
「新版」直接获取归因结果(推荐)
除了在初始化时添加归因回调,也可业务后续主动调用 API 读取归因结果。
直接获取归因结果的方法返回的是本地缓存,如果本地缓存还未生成,那么归因结果将会为 null
方法示例
// 获取拉新归因结果
public static Dictionary<string, object> getUAAttributionData()
// 获取拉活归因结果
public static Dictionary<string, object> getREAttributionData()
示例代码
Dictionary<string, object> uaAttribution = SolarEngine.Analytics.getUAAttributionData();
Debug.Log("[unity] getUaAttribution = "+ uaAttribution);
Dictionary<string, object> reAttribution = SolarEngine.Analytics.getREAttributionData();
Debug.Log("[unity] getReAttribution = "+ reAttribution);
归因errorCode 描述及 归因结果详情见:归因结果详情
「旧版」回调获取归因结果(即将下线)
方法示例:
public Analytics.SEAttributionCallback attributionCallback { get; set; }
调用示例:
private void initSDK(){
SEConfig seConfig = new SEConfig();
// 设置归因结果回调
SolarEngine.Analytics.SEAttributionCallback callback = new SolarEngine.Analytics.SEAttributionCallback(attributionCallback);
seConfig.attributionCallback = callback;
SolarEngine.Analytics.initSeSdk(AppKey, seConfig);
}
private void attributionCallback(int code , Dictionary<string, object> attribution)
{
Debug.Log("SEUnity: errorCode : " + errorCode);
Debug.Log("SEUnity: attribution : " + attribution);
if (code == 0)
{
// 归因成功
}
else
{
// 归因失败
}
}
「旧版」直接获取归因结果(即将下线)
方法示例:
public static Dictionary<string, object> getAttribution()
调用示例:
Dictionary<string, object> attribution = SolarEngine.Analytics.getAttribution();
Debug.Log("[unity] getAttribution = "+ attribution);
6.3 归因结果示例
6.3.1 iOS和Android
归因code 描述及 归因结果详情见:归因结果详情
6.3.2 小游戏
{
"app_platform": "minigame",
"app_type": "",
"appkey": "",
"attribution_method": "",
"brand": "HUAWEI",
"channel_id": "-1",
"channel_name": "自然量",
"collector_version": "1.0.1.0",
"container_name": "",
"country": "CN",
"current_event_time": "",
"custom_params": {
"_app_name": "",
"_browser": "",
"_channel": "",
"_city": "chaoyang",
"_country": "CN",
"_country_code": "CN",
"_distinct_id_type": "1101",
"_event_type": "1",
"_experiment_group_id_list": "[]",
"_group_id_list": "[]",
"_is_first_day": "true",
"_is_first_time": "true",
"_lib": "5",
"_log_count": "0",
"_page_title": "",
"_province": "bj",
"_referrer_title": "",
"_screen_height": "800",
"_screen_width": "360",
"_sdk_type": "unity",
"_source_type": "sdk",
"_sub_lib_version": "1.0.1.0",
"_type": "event",
"ecpm_rate": "1",
"ip_upload": "111.203.237.82",
"random_user_id": "2998000746001017891",
"se_pro_id": "787"
},
"device_id": "",
"device_id_type": "",
"install_time": "1727335959338",
"integration_type": "sdk",
"ipv4": "111.203.237.82",
"language": "zh_CN",
"model": "JEF-AN20",
"openid": "",
"os": "android",
"os_version": "31",
"query_info": {
"gsid": ""
},
"report_time": "1727335958766",
"scene_id": "other",
"unionid": "",
"result": "organic"
}
attribution 为一个 json 字符串,内容如下
iOS/Android
归因code 描述及 归因结果详情见:归因结果详情
小游戏:
| 字段名 |
值 |
描述 |
| app_platform |
minigame |
app的平台 |
| app_type |
|
平台类型:wechat、douyin |
| appkey |
|
SE后台创建的应用唯一标识符 |
| attribution_method |
|
归因方式:透传归因(url)、点击归因(click) |
| brand |
HUAWEI |
设备生产厂商 |
| channel_id |
-1 |
渠道id |
| channel_name |
自然量 |
渠道名称 |
| collector_version |
1.0.1.0 |
收集器版本 |
| container_name |
|
宿主 APP 名称,抖音专属 |
| country |
CN |
国家 |
| current_event_time |
|
当前事件发生的时间 |
| custom_params |
|
事件自定义参数嵌套 |
| device_id |
|
归因设备唯一ID |
| device_id_type |
|
设备ID类型 |
| install_time |
1727335959338 |
激活时间 |
| integration_type |
sdk |
集成方式。固定为sdk |
| ipv4 |
111.203.237.82 |
用户公网IP v4版本 |
| language |
zh_CN |
设备语言 |
| model |
JEF-AN20 |
设备型号 |
| openid |
|
当前小程序内,用户唯一ID |
| os |
android |
宿主 App 操作系统平台 |
| os_version |
31 |
宿主 App 操作系统版本 |
| query_info |
|
从小程序平台获取的query信息,SE携带参数+渠道追加参数 |
| report_time |
1727335958766 |
服务器接收到的时间 |
| scene_id |
other |
场景值 |
| unionid |
|
抖音专属,当前小程序内,匿名用户唯一ID |
| result |
organic |
|