SDK Name: SolarEngine Unreal SDK v1.0.2
Developer: Huiliang Cloud (Beijing) Technology Co., Ltd.
SDK Version: 1.0.2
Features: SolarEngine (SE) is an all-in-one mobile app growth analytics and publishing intelligence platform. It supports data management across global channels, assisting developers to monitor every stage of business development. With our attribution and user-level ROI analysis, you'll be able to measure the true value every channel creates and optimize future growth strategies. SE also offers various analysis models and A/B testing feature to help fully visualize the user journey, identify potential pain points, implement targeted product enhancements and ultimately drive large-scale app growth.
Privacy Policy: https://www.solar-engine.com/privacyPolicyEN.html
Note:
The SolarEngine SDK supports Android 5.0 (API Level 21) and above.
Access Path: Asset Management - App Management - AppKey
Please login to the live version and get appkey for your own product.

Get SEAnalytics Plugin:
If your product data is stored in China Mainland, please download SDK via:
https://solar-sdk.oss-cn-beijing.aliyuncs.com/Unreal/solarengine_unreal_sdk_cn_v1.0.2.zip
If your product data is stored in Non China Mainland, please download SDK via:
https://solar-sdk.oss-cn-beijing.aliyuncs.com/Unreal/solarengine_unreal_sdk_us_v1.0.2.zip
PrivateDependencyModuleNames.AddRange(new string[] { "SEAnalytics" });SEAnalytics.h header file in the file where you wish to use the SDK:#include "SEAnalytics.h"If obfuscation is needed during packaging, please add the following code to the obfuscation configuration file.
-keep class com.reyun.** {*; }
-keep class route.**{*;}
-keep interface com.reyun.** {*; }
-keep interface route.**{*;}
-dontwarn com.reyun.**
-dontwarn org.json.**
-keep class org.json.**{*;}
# Google lib library
-keep class com.google.android.gms.ads.identifier.AdvertisingIdClient {
com.google.android.gms.ads.identifier.AdvertisingIdClient$Info getAdvertisingIdInfo(android.content.Context);
}
-keep class com.google.android.gms.ads.identifier.AdvertisingIdClient$Info {
java.lang.String getId();
boolean isLimitAdTrackingEnabled();
}
-keep public class com.android.installreferrer.** { *; }
# If you need to obtain OAID, please add the following obfuscation
-keep class com.huawei.hms.**{*;}
-keep class com.hihonor.**{*;}For Xcode versions, 14.0 and above are supported.
Accessible for iOS 11.0 and later.
Add Required Dependency Frameworks
Note: If you need ASA attribution, AdServices.framework must be added; or attribution results cannot be obtained.
When the app is first launched after install, the SDK is pre-initialized. During pre-initialization, the SDK does not collect any personal information or report data to SolarEngine.
Method
static void preInit(const FString& appkey);Code Example
USEAnalytics::preInit(appkey)FSEConfig parameter description:
This configuration class is used to finely control service capabilities and data collection behavior when initializing the SDK. It is divided into three categories: core feature switches, auxiliary feature switches, and data collection switches.
The config configuration returned by this method are optional parameters; if not set, default values are used.
Method Example
FSEConfig config;
config.logEnabled = true; It controls the enablement or disablement of core SDK capabilities, directly determining whether core services such as attribution and analytics take effect.
Note: Disabling relevant core feature switches will disrupt the data reporting. You will no longer be able to fully utilise all functions within SolarEngine dashboard.
| Parameter | Description | Type | Required |
|---|---|---|---|
| enableAttribution | Whether to enable SolarEngine attribution service. Enabled by default. Disabling it will turn off all attribution relevant capabilities, including attribution results, deferred deeplink and deeplink, etc. If the analytics service is disabled at the same time, the SDK will stop reporting all data. | boolean | No |
| enableAnalytics | Whether to enable SolarEngine analytics service. Enabled by default. Disabling it can make all analytics features unavailable, such as A/B testing and online parameter. If the attribution service is disabled at the same time, the SDK will stop reporting all data. | boolean | No |
| Parameter | Description | Type | Required |
|---|---|---|---|
| logEnabled | Whether to enable debugging logs (Default false) | bool | no |
| isDebugModel | Whether to enable Debug mode (Default off). Before using, please check function description. | bool | no |
| enable2GReporting | Whether to report events over a 2G network. Disabled by default. | bool | no |
| isGDPRArea | If your product is operated within the EU region, there will be GDPR restrictions to follow. Please make sure to set isGDPRArea(true) if users reject the device information collection. (Default false) GDPR regions: - send 0 if user agrees - send 1 if user disagrees Non-GDPR regions: - Always send 0 | bool | no |
| isCoppaEnabled | Whether your app is required to comply with Children's Online Privacy Protection Rule ("COPPA"). Default false. | bool | no |
| isKidsAppEnabled | Whether your app is targeting kids under 13 years old and needs to be marked as "Kids App" category. Default false. | bool | no |
| deferredDeeplinkenable | Whether to enable deferred deep linking, default False. | bool | no |
| attAuthorizationWaitingInterval | Supports ATT Authorization Waiting for up to 120 seconds when iOS devices report events for the first time. Then SDK will report the install event only after users authorize ATT or when waiting time is up. (Unit: second) | int32 | no |
| caid | CAID | FString | no |
| fbAppID | If you need to enable Meta attribution, set Meta appid here. Only Android need to use this parameter. For iOS, please ignore this step. | FString | no |
| adPersonalizationEnabled | If your product is operated within the EU region and advertised on Google, please send the results about whether users allow Google to use their data for ad personalization into this parameter, so that you will comply with Google's EU user consent policy. | bool | no |
| adUserDataEnabled | If your product is operated within the EU region and advertised on Google, please send the results about whether users allow their personal data to be shared with Google into this parameter, so that you will comply with Google's EU user consent policy. | bool | no |
| supportMultiProcess | Whether to enable multi-process support. Default is false. | bool | no |
| enableSeparatedAttribution | Whether enable the new attribution feature to quickly retrieve attribution results once activated. | bool | no |
It controls whether data such as IPv6, OAID and UA is collected.
Note: Disabling corresponding data collection parameters will impair attribution and analytics services, and you will not be able to use relevant functions normally on SolarEngine dashboard.
| Paramter | Description | Type | Required |
|---|---|---|---|
| enableIPV6 | Whether to collect IPv6 address. Set to false to disable collection. Default true (enabled).(Only China mainland) | boolean | No |
| enableLanguage | Whether to collect device language. Set to false to disable collection. Default true (enabled). | boolean | No |
| enableLocale | Whether to collect device locale. Set to false to disable collection. Default true (enabled). | boolean | No |
| enableTimeZone | Whether to collect device time zone. Set to false to disable collection. Default true (enabled). | boolen | No |
| enableScreenWH | Whether to collect screen width and height. Set to false to disable collection. Default true (enabled). | boolean | No |
| enableDensity | Whether to collect screen density. Set to false to disable collection. Default true (enabled). | boolean | No |
| enableNetworkType | Whether to collect network status. Set to false to disable collection. Default true (enabled). | boolean | No |
| enableUA | Whether to collect User-Agent (UA). Set to false to disable collection. Default true (enabled). | bool | No |
| enableOAID | Whether to collect OAID. Set to false to disable collection. | bool | No |
| isImeiEnabled | Whether to collect IMEI. Set to false to disable collection. | bool | No |
| isAndroidIdEnabled | Whether to collect Android ID. Set to false to disable collection. | bool | No |
SDK Initialization Parameters
| Parameter | Description | Type | Required |
|---|---|---|---|
| appKey | AppKey | String | Yes |
| config | SolarEngine SDK initialization config | SEConfig | Yes |
Code Example
FSEConfig config;
config.logEnabled = true; // Enable debug logs
USEAnalytics::init("appkey", config);Listen to Initialization Callback
Add an initialization callback method in addition to the existing initialization method.
| Parameter | Description | Type | Required |
|---|---|---|---|
| appKey | AppKey | String | Yes |
| config | SolarEngine SDK initialization config | SEConfig | Yes |
Code Example
// Initialization
USEAnalytics::preInit("appkey") // Pre-initialization must be called first.
FSEConfig config;
seConfig.logEnabled = true;
config.initCompletedCallback = FInitCompletedCallback::CreateLambda([this](int32 code)
{
if (code == 0)
{
UE_LOG(LogTemp, Log, TEXT("initialization success callback received"));
}
else
{
UE_LOG(LogTemp, Warning, TEXT("initialization fail callback received, code=%d"), code);
}
});
USEAnalytics::init("appkey", config);Initialization callback codes:
| code | meaning |
|---|---|
| 0 | Initialization success |
| 101 | Initialization failed, as pre-initialization is not called |
| 102 | Initialization failed, due to illegal appkey |
| 103 | Initialization failed, due to null context (Android only) |
| 104 | Initialization failed, due to missing distinct_id (Android only) |
USEAnalytics::preInit(AppKey);
FSEConfig Config;
Config.enableSeparatedAttribution = true;
// UA attribution
Config.uaAttributionCallback = FUAAttributionCallback::CreateLambda(
[](FSEAttributionData Data)
{
UE_LOG(LogTemp, Log, TEXT("UA Attribution: code=%d"), Data.code);
});
// Re-engagement attribution
Config.reAttributionCallback = FREAttributionCallback::CreateLambda(
[](FSEAttributionData Data)
{
UE_LOG(LogTemp, Log, TEXT("RE Attribution: code=%d"), Data.code);
});
USEAnalytics::init(AppKey, Config);Important Note: When using the callback mode to receive attribution results, the attribution listener must be set before calling init. If the listener is set after initialization, it may lead to inaccurate attribution results.In addition to adding an attribution callback during initialization, you can also proactively call the API later in your business logic to read the attribution results.
Note: This method reads from the local device cache. It returns null if the cache is not yet ready.
//Get UA attribution result
USEAnalytics::getUAAttributionData();
//Get re-engagement attribution result
USEAnalytics::getREAttributionData();Attribution error code descriptions and detailed attribution results can be found in:
https://help.solar-engine.com/en/docs/SDK-Attribution-Result-Details