菜单

快速集成

基本信息

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

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

SDK版本号:1.3.7

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

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

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

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

 

第一步:获取 Appkey

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

文章图片

第二步:获取 SDK

2.1  手动集成

下载 solarengine-unity-sdk-1.3.7.zip

「使用 1.3.6 及以上版本,对应的 iOS ≥ 1.3.1.0,Android ≥ 1.3.1.2」

如使用Unity6版本遇到项目打包 APK 后安装到 Android 手机,桌面不显示应用图标,或应用无法从桌面启动

可参考此链接处理

 

2.1.1导入SDK

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

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

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

2.2 Package Manager 集成

从 v1.3.2开始,支持 Package Manager 方式自动接入 SDK。

1.打开 Window - Package Manager 菜单
 
2.点击 + ,然后选择 Add package from git URL...
 
3.输入
https://github.com/solarengine-sdk/unity-sdk.git
然后点击 Add,等待加载完成。
 
4.加载完成后,弹出此界面后点击import(仅首次集成需要导入),导入完成后文件夹「SolarEngineNet」会显示在 Assets目录下
 
如没有 可点击 SolarEngineSDK -->UPM-->Import Config 手动导入,
或者双击 Packages-->SolarEngineSDK-->~PackagesContent-->solarengine-unity-sdk-upm.unitypackag 手动导入
 

 

5.导入External Dependency Manager插件,Window ->Package Manager-->My Registries-->找到External Dependency Manager for Unity -->Install

如果My Registries没有
 
 5.1 可点击 SolarEngineSDK -->UPM-->Add Registry手动加入到My Registries

5.2 如5.1没有成功添加,打开管理界面 Edit/Project Settings/Package Manager

Name: package.openupm.com
URL: https://package.openupm.com
Scope(s): com.google.external-dependency-manager

6.导入完成后即可正常使用。

 

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-->BeforeBuildForTT

 抖音云游戏

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

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

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

团结引擎UPM方式集成小游戏

由于团结引擎在 UPM 集成模式 下,对微信与快手小游戏的 生命周期钩子(LifeCycleBase)支持不完整,导致自动触发的生命周期函数(如 beforeCopyDefaultafterBuildTemplate 等)无法正常执行。

因此,如果选择以 UPM 方式集成 SolarEngineSDK 的小游戏模块,在构建微信或快手小游戏前后,需要手动进行构建步骤。

 发布前(Before Build)
SolarEngineSDK → MiniGame → Tuanjie → ManualAdd → BeforeBuildForKS
SolarEngineSDK → MiniGame → Tuanjie → ManualAdd → BeforeBuildForWxChat
 发布后(After Build)
SolarEngineSDK → MiniGame → Tuanjie → ManualAdd → AfterBuildForKS
SolarEngineSDK → MiniGame → Tuanjie → ManualAdd → AfterBuildForWxChat

小游戏后台配置

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

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");

第五步:初始化配置(可选)

本配置类用于初始化 SDK 时,对服务能力与数据采集行为进行精细化控制,分为核心功能开关、辅助功能开关、数据采集开关三类参数。

此方法返回的 config 配置作为可选参数,如未设置则为默认值

 

SEConfig seConfig = new SEConfig();
seConfig.logEnabled = true;

一、核心功能开关配置

控制 SDK 核心业务能力的启用 / 停用,直接决定归因、分析等核心服务是否生效。注:关闭相关核心功能开关将影响数据上报链路,您将无法在热力引擎后台正常使用该模块的全部功能。
 
方法名 参数类型 是否必填 说明 适用平台 示例
enableAttribution bool 是否开启归因服务,默认开启。关闭后将停用全部归因相关能力,无法获取归因结果、延迟deeplink、deeplink等相关服务;若同时关闭分析服务,SDK 将停止上报所有数据。
  • iOS
  • Android
  • HarmonyOS 

 

config.enableAttribution=true;
enableAnalytics bool  是否开启分析服务,默认开启。关闭后 A/B 测试、在线参数等所有分析类功能均无法使用;若同时关闭归因服务,SDK 将不再上报任何数据。
  • iOS
  • Android
  • HarmonyOS 

 

config.enableAnalytics=true;
 

二、辅助功能开关

控制 SDK 的运行模式、调试日志、网络策略、授权等待、辅助功能(如延迟 Deeplink)等非核心业务的运行行为。

方法名 参数类型 是否必填 说明 适用平台 示例
logEnabled bool 是否开启日志打印,默认为关闭状态
  • iOS
  • Android
  • HarmonyOS 
  • 小游戏
  • Windows
  • MacOS

 

config.logEnabled=true;
isDebugModel boolean 是否开启 Debug 模式,默认为false,不开启,使用前请查看功能说明
  • iOS
  • Android
  • HarmonyOS 
  • 小游戏
  • Windows
  • MacOS
config.isDebugModel=true;
isGDPRArea bool 是否为GDPR区域,默认为false
  • iOS
  • Android
config.isGDPRArea=true;
isEnable2GReporting bool 是否允许2G上报数据。默认为false
  • iOS
  • Android
config.isEnable2GReporting=true;
adPersonalizationEnabled bool 用户是否允许Google将其数据用于个性化广告,开发者自定义,不设置则默认不上报该字段,只有Android调用有效,iOS没有此字段,无需设置此字段
  • Android
config.adPersonalizationEnabled=true
adUserDataEnabled bool 用户是否同意将其数据发送到Google,开发者自定义,不设置则默认不上报该字段,只有Android调用有效,iOS没有此字段,无需设置此字段
  • Android
config.adUserDataEnabled=true
isCoppaEnabled bool  否 是否支持coppa合规。默认为false  
  • iOS
  • Android
 config.isCoppaEnabled=true
isKidsAppEnabled bool 是否支持Kids App。默认为false
  • iOS
  • Android
 config.isKidsAppEnabled=true
deferredDeeplinkenable
boolean 是否开启延迟Deeplink, 默认false关闭
  • iOS
  • Android 
  • HarmonyOS
config.deferredDeeplinkenable
=true;
authorizationTimeout
number 等待用户授权结果的最大时长,单位为毫秒,默认使用SDK内部等待时长
  • HarmonyOS
config.authorizationTimeout=120;
 fbAppID  string  否  如果海外开发者需要用到meta归因,此处设置meta appid,只有Android调用有效,iOS没有此字段,无需设置此字段
  •  Android
 config.fbAppID="";

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

三、数据采集开关

控制ipv6、OAID、UA等参数等数据是否采集。注:关闭对应数据采集参数后,将会影响归因、分析模块的数据能力,您将无法在热力引擎后台正常使用相关功能。

方法名 参数类型 是否必填 说明 支持平台 示例
enableIPV6 bool 是否采集ipv6地址, 不采集设置为false,默认 true(采集)
  • iOS
  • Android
  • HarmonyOS 
config.enableIPV6=true;
enableLanguage bool 是否采集设备语言, 不采集设置为false,默认 true(采集)
  • iOS
  • Android
  • HarmonyOS 
config.enableLanguage=true;
enableLocale bool 是否采集设备所在地区, 不采集设置为false,默认 true(采集)
  • iOS
  • Android
  • HarmonyOS 
config.enableLocale=true;
enableTimeZone bool 是否采集设备所在时区, 不采集设置为false,默认 true(采集)
  • iOS
  • Android
  • HarmonyOS 
config.enableTimeZone=true;
enableScreenWH bool 是否采集屏幕宽度/屏幕高度, 不采集设置为false,默认 true(采集)
  • iOS
  • Android
  • HarmonyOS 
config.enableScreenWH=true;
enableDensity bool 是否采集屏幕密度, 不采集设置为false,默认 true(采集)
  • Android
  • HarmonyOS 
config.enableDensity=true;
enableNetworkType bool 是否采集网络状态, 不采集设置为false,默认 true(采集)
  • iOS
  • Android
  • HarmonyOS 
config.enableNetworkType=true;
enableUA bool 是否采集UA, 不采集设置为false,默认 true(采集)
  • iOS
  • Android
  • HarmonyOS 
config.enableUA=true;
enableOAID bool 是否采集OAID, 不采集设置为false,默认 true(采集)
  • Android
  • HarmonyOS 
config.enableOAID=true;
enableODID bool 是否采集ODID, 不采集设置为false,默认 true(采集)
  • HarmonyOS
config.enableODID=true;
enableAAID bool 是否采集AAID, 不采集设置为false,默认 true(采集)
  • HarmonyOS
config.enableAAID=true;
isImeiEnabled bool 是否允许采集 IMEI ,不采集配置为 false
  • Android
config.isImeiEnabled=true;
isAndroidIDEnabled bool 是否允许采集 AndroidID ,不采集配置为 false
  • Android
config.isAndroidIDEnabled=true;
withDisableOAIDRetry bool 是否禁用 OAID 获取重试,默认为 false
  • Android
config.withDisableOAIDRetry=true;
withDisableGAIDRetry
bool 是否禁用 GAID 获取重试,默认为 false
  • Android
config.
withDisableGAIDRetry=true;

 

第六步:初始化

方法示例

public static void initSeSdk(string appKey, SEConfig seConfig)

参数说明

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

调用示例

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  

 


最近修改: 2026-07-10Powered by