菜单

快速集成

基本信息

SDK名称:热力引擎 Unity SDK v1.3.0.9

开发者名称:汇量云(北京)科技有限公司

SDK版本号:1.3.0.9

主要功能:热力引擎是一站式增长分析与发行决策平台,致力于帮助开发者搭建便捷、高效的数据管理中台,洞察业务运营全链路数据,制定更优增长决策。热力引擎支持全球全渠道数据管理,帮助开发者实现归因分析、用户粒度 ROI 分析,能有效衡量渠道价值,为投放和变现策略调优提供全方位数据支持。同时,提供应用内埋点及参数管理,配合多种分析模型与 AB 测试功能,全面还原用户全生命周期旅程,挖掘用户需求及业务增长点,快速验证并推行产品迭代优化,为开发者提升业务运营效率,实现规模化增长赋能。

适用范围:适用于Android5.0(APILevel21)及以上的操作系统。

隐私政策链接: https://www.solar-engine.com/privacyPolicy.html

合规指南:详见本页面底部合规指南内容。

 

第一步:获取 Appkey

Appkey 查询路径:资产管理-应用管理-16位 Appkey(即应用 ID)。

文章图片

第二步:获取 SDK

2.1  Unity插件

下载链接 solarengine-unity-sdk-1.3.0.9.zip

2.2 导入SDK

1)前往最新SDK下载地址下载SDK压缩包,解压至本地目录。

2)将solarengine-unity-sdk.unitypackage,导入Unity中。

注:使用低版本(v1.3.00之前)插件的客户, 要升级到1.3.0.0(或以上版本),可参 UnitySDK 升级方案

 

2.3 Demo

具体 Demo 请参考我们托管到 GitHub 的开源项目,该项目里 SolarEngineDemo.cs 脚本中, 提供了插件所支持的api的调用示

 

第三步:集成 SDK

3.1 配置SDK Edit Settings面板

成功安装后,会在菜单栏出现"SolarEngineSDK"选项, 点击[SolarEngineSDK-->SDK Edit Settings]弹出SolarEngineSettings面板

SDK Edit Settings面板介绍:

参数名称 参数含义 参数类型 是否必填  备注
Quick integration

China Mainland

SolarEngine后台创建的产品的数据存储区域为中国大陆区

bool 此选项二选一

Non-China-Mainland

SolarEngine后台创建的产品的数据存储区域为非中国大陆区 bool
 
OPTIONAL FEATURES
可选功能 bool

勾选才有以下选项

OPTIONAL FEATURES
OAID
是否使用OAID功能 bool  否

当数据存储区域为中国大陆时,不可取消

当数据存储区域为非中国大陆时,我们会默认取消

 

ODMInfo
是否需要使用Google Ads集成式转化衡量(ICM)功能 bool

1、仅当您选择的数据存储区域为海外时才会有此选项(iOSSDK 需为1.3.0.2及以上版本)

2、Target minimum iOS Version需要设置为12及以上版本

DeepLink
是否使用DeepLink功能
bool
 
  • iOS URL Identifie
唯一标识用户自定义的URL Scheme string 例:solarengine
  • iOS URL Schemes
自定义的Scheme的名称,不需要加入「://」 string   例:test1
  • iOS Universal Links Domains
通用链接,请务必从链接开头移除协议 (例如https://或applinks: ) string 例:test1.link.solar-engine.com  
  • Android URL Schemes
定义的Scheme的名称,不需要加入「://」 string  例:test1     
SDK Version
  • iOS Version
iOSSDK版本 string 不填默认最新版 iOS更新日志
  • Android Version
Android SDK版本 string 不填默认最新版 Android 更新日志
  • Open Harmony Version
Open HarmonySDK版本 string 不填默认最新版鸿蒙更新日志(团结引擎才有此选项)
Apply
应用面板操作   每次面板内容更改后,都需要点击应用

示例

 

点击Apply后出现以下弹框说明设置成功

 

              


3.1.1  iOS

1、支持Xcode版本:14.0或更高

2、适用范围:适用于 iOS 11.0 及以上的操作系统

3、插件需要 CocoaPods。按照CocoaPods 入门指南中的说明安装 CocoaPods 。(CocoaPods集成需要打开.xcworkspace后缀名的文件)

4、如想手动集成,请参考常见问题 Unity手动集成iOSSDK

3.1.2 Android 

                 1、请确保SDK版本更改后,有如下拉取页面「首先确保当前Unity在安卓平台」

拉取成功后Plugins-->Android目录下的SDK版本是您面板上所输入的版本的SDK

拉取失败请参考常见问题 :Unity 拉取安卓SDK失败

2、在项目 AndroidManifest.xml 文件中,加入如下权限:(Assets/Plugins/Android/AndroidManifest.xml)

<uses-permission android:name="android.permission.READ_PHONE_STATE" />

注:android.permission.READ_PHONE_STATE 为非必要权限。如果开发者使用了数据存储区域是中国大陆的 SDK,热力引擎 SDK 并不会要求开发者强制获取此权限。如果开发者获取了此权限且 Android 系统在 6.0 以上,需要动态申请此权限。

位置如下:

 

3.1.3 小游戏

  添加全局宏参数

微信小游戏:需要先接入微信团队开源的 Unity 转微信小游戏的插件
抖音小游戏:需要先接入头条提供的 StarkSDK 插件

抖音云游戏:需要先接入头条提供的 云加速SDK

快手小游戏:需要先接入快手提供的Unity WebGL sdk

 正式接入之前,您需要针对不同的平台添加不同的全局宏参数。

•微信小游戏:SOLARENGINE_WECHAT

•抖音小游戏:SOLARENGINE_BYTEDANCE

•抖音云游戏:SOLARENGINE_BYTEDANCE_CLOUD

•快手小游戏:SOLARENGINE_KUAISHOU

添加步骤如下:

•打开 Project Settings 界面;

•找到 Scripting Define Symbols,新增一行输入对应平台的全局宏参数,然后点击 Apply 按钮完成设置

抖音小游戏

团结引擎(仅团结引擎需要)发布webgl前请点击「SolarEngineSDK-->MiniGame-->Tuanjie-->ByteDanceConvertCore

 抖音云游戏

 参考:抖音小游戏支持抖音云

 微信小游戏支持腾讯回传事件

 参考:微信小游戏支持腾讯回传事件

小游戏后台配置

请参考 小游戏后台配置模块

3.1.4 Windows平台

 仅需配置「China Mainland 」或者「Non-China-Mainland」,然后点击「Apply」即可

3.1.4.1  Windows软件卸载配置

因为SDK的部分数据,保存在了AppData\LocalLow\Company Name(需替换为自己项目名称)\Product Name(需替换为自己项目名称)\com.solarengine所以需要设置软件卸载时删除此文件。

这里提供一个.bat脚本

1、将Company Name和Product Name替换为自己项目名称,然后将此文件保存为.bat后缀

2、设置卸载时运行此脚本

@echo off
rem Define the path of the cache directory to be cleaned
set "cacheDir=%LOCALAPPDATA%\..\LocalLow\Company Name(需替换)\Product Name(需替换)\com.solarengine"

echo The value of cacheDir is: %cacheDir%

rem Clean the cache directory
if exist "%cacheDir%" (
    echo Cleaning the game cache directory...
    rd /s /q "%cacheDir%"
    echo The game cache directory has been cleaned.
) else (
    echo The game cache directory does not exist, no need to clean.
)

echo All cleaning operations are completed.
pause

3.1.5 OpenHarmony平台

3.1.5.1 配置权限

Player Settings---> Other Settings--->Predefined Permissions 

添加下列权限,如图所示

ohos.permission.INTERNET//必须权限,允许应用发送网络请求。
ohos.permission.GET_NETWORK_INFO//必须权限,允许应用检测网络状态。
ohos.permission.APP_TRACKING_CONSENT//必须权限,允许应用获取oaid。注:须在获得此权限后再初始化sdk,如果缺少此权限,会影响设备归因
ohos.permission.STORE_PERSISTENT_DATA//必须权限,允许应用卸载时保留distinctid,用于设备归因。

 

3.1.5.2 配置混淆

如果打包时需要开启混淆配置,请将下方代码增加到混淆配置文件中

-keep
./oh_modules/@solarengine/core

3.1.5.3 打包

目前仅支持Export Project方式打包

3.1.6 MacOS平台

3.1.6.1  打包需要勾选 Create Xcode Project

第四步:预初始化

在应用安装后首次冷启动时,需要先预初始化 SDK,预初始化时 SDK 不采集任何个人信息也不会向热力引擎上报数据

方法示例

public static void preInitSeSdk(string appKey)

调用示例

SolarEngine.Analytics.preInitSeSdk("开发者申请的appkey");

第五步:初始化

方法示例

public static void initSeSdk(string appKey, SEConfig seConfig)

参数说明

参数名 参数含义 参数类型 是否必传
appkey 第一步获取的 appkey String
seConfig SDK 配置项 SEConfig

SEConfig 参数说明

参数名称 参数含义 适用平台 参数类型 是否必传
logEnabled 是否开启日志打印,默认为关闭状态 iOS/Android/小游戏/Windows/MacOS bool
isGDPRArea 是否为GDPR区域,默认为false iOS/Android bool
adPersonalizationEnabled 用户是否允许Google将其数据用于个性化广告,开发者自定义,不设置则默认不上报该字段,只有Android调用有效,iOS没有此字段,无需设置此字段 Android bool
adUserDataEnabled 用户是否同意将其数据发送到Google,开发者自定义,不设置则默认不上报该字段,只有Android调用有效,iOS没有此字段,无需设置此字段 Android bool
isEnable2GReporting 是否允许2G上报数据。默认为false iOS/Android bool
isDebugModel 是否开启Debug调试模式,默认为关闭状态 iOS/Android/小游戏/Windows/MacOS bool
isCoppaEnabled 是否支持coppa合规。默认为false iOS/Android bool
isKidsAppEnabled 是否支持Kids App。默认为false iOS/Android bool
attAuthorizationWaitingInterval iOS首次上报事件支持设置ATT授权等待,最多支持等待120秒. 设置等待后SDK会等用户ATT授权或等待超时才上报Install等事件。
单位:秒
iOS int
fbAppID 如果海外开发者需要用到meta归因,此处设置meta appid,只有Android调用有效,iOS没有此字段,无需设置此字段 Android string
deferredDeeplinkenable
是否开启延迟Deeplink, 默认false关闭 iOS/Android bool
miniGameInitParams
小游戏相关配置  小游戏  MiniGameInitParams  否

MiniGameInitParams 参数说明

参数名称

参数含义

参数类型

是否必传

openid

小游戏openid, 如不传则由SDK获取当前的openid(必须在SE后台应用管理中填写AppID和AppSecret;并前往抖音/微信后台进行配置,详见后台配置

string

anonymous_openid

小游戏anonymous_openid, 如不传则由SDK获取当前的anonymous_openid(必须在SE后台应用管理中填写AppID和AppSecret,同openid)「只抖音有此参数」

string

unionid

小游戏unionid

string

isInitTencentAdvertisingGameSDK

参考:微信小游戏支持腾讯回传事件

reportingToTencentSdk

tencentAdvertisingGameSDKInitParams

 

调用示例

SEConfig seConfig = new SEConfig();
seConfig.logEnabled = true;
SolarEngine.Analytics.initSeSdk("开发者申请的appkey",seConfig);

//小游戏初始化示例
SEConfig seConfig = new SEConfig();
MiniGameInitParams initParams = new MiniGameInitParams();
initParams.anonymous_openid = "your anonymous_openid";
initParams.unionid = "your unionid";
initParams.openid = "your openid";
seConfig.miniGameInitParams = initParams;
seConfig.logEnabled = true;
SolarEngine.Analytics.initSeSdk("开发者申请的appkey",seConfig);  

//鸿蒙初始化示例

//申请oaid权限
private void RequestPermissionsFromUserHandler()
{
#if UNITY_OPENHARMONY&&!UNITY_EDITOR
SolarEngine.Analytics.requestPermissionsFromUser(callback);
#endif

}
private void callback(int code)
{
//code :  0:成功  1:失败  999:错误
Debug.Log( " requestPermissionsFromUser : " + code);
SEConfig seConfig = new SEConfig();
seConfig.logEnabled = true;
SolarEngine.Analytics.initSeSdk("开发者申请的appkey",seConfig);
}

 

监听初始化回调

在原有初始化方法的基础上新增监听初始化回调的方法

参数说明

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

 

调用示例

//初始化
SolarEngine.Analytics.preInitSeSdk("开发者申请的appkey");    //必须要先调用预初始化
SEConfig seConfig = new SEConfig();
seConfig.logEnabled = true;
seConfig.initCompletedCallback = onInitCallback;     //此处将初始化回调放入SEConfig中
SolarEngine.Analytics.initSeSdk("开发者申请的appkey", seConfig);

//初始化回调
private void onInitCallback(int code) {
        ///code码请参考下方初始化回调code码
}

初始化回调 code 码:

0 初始化成功
101 SDK未预初始化
102 appkey非法
103 context为null(仅Android生效)
104 distinct_id生成失败(仅Android生效)

第六步:获取归因回调信息(Windows/MacOS平台暂不支持)

SDK提供获取归因结果信息接口,开发者可使用归因信息做埋点等逻辑处理

SDK提供两种方式获取归因结果信息

  • 设置归因结果回调:当SDK获取归因结果成功或者失败时会给出回调(此接口为异步回调)
  • 直接获取归因结果:直接从SDK缓存中获取归因结果,SDK还没归因结果时直接返回null(此接口为同步返回)

 

6.1 设置归因结果回调

方法示例

public struct SEConfig
{
    ...
    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
      {
          // 归因失败
      }
  }

 

6.2 直接获取归因结果回调

方法示例

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  

 


最近修改: 2025-08-21Powered by