Skip to main content

SolarEngine integration plan

Last updated 10/03/2026
tip

Note that data generated by third-party data integration counts toward the cluster's data consumption

Summary​

Interface overview​

InterfaceTypeGranularityAttributionCostRevenueImpressionsClicksConversions
Real-time APICallbackUser level✅✅

Before you start connecting SolarEngine data, make sure that you have read the AE system's user identification rules and understand how AE identifies a user through #distinct_id and #account_id

SolarEngine provides a real-time API export feature that supports sending back event data such as activations in real time. For details, see the SolarEngine official documentation

Integration process​

  1. Integrate the SolarEngine SDK and the AE SDK, and pass in the distinct ID of the AE SDK through the SolarEngine SDK's API for setting super event properties
  2. Log in to the AE backend, go to the Third-party Integration module, add a SolarEngine integration, complete the related configuration, and copy the callback URL
  3. Log in to the SolarEngine backend and complete the data callback configuration
  4. Check whether the AE system receives the data successfully, and build reports

1. Client SDK configuration​

1.1 Integrate the SolarEngine SDK and the AE SDK​

First, integrate the SolarEngine SDK and the AE SDK into your app and complete the initialization configuration. The integration documentation for the SolarEngine SDK and the AE SDK is as follows:

1.2 Configure the SDK​

After integrating the SDKs, set the distinct ID and account ID of the AE SDK in the SolarEngine SDK. We recommend using SolarEngine's API for setting super event properties

Note the order:

  1. Initialize the AE SDK
  2. Get the distinct ID of the AE SDK
  3. Call SolarEngine's API for setting super properties to set the distinct ID of the AE SDK as a super property of the SolarEngine SDK
  4. Initialize the SolarEngine SDK
  5. When the account ID of the AE SDK becomes available (that is, when the user logs in to an account or a character goes online), call the login API of the AE SDK, and call SolarEngine's API for setting super properties again to set the account ID as a super property of the SolarEngine SDK

The following is a code sample for Android:

// Initialize the AE SDK
TDAnalytics.init(context, APPID, SERVER_URL);

// Get the distinct ID of the AE SDK
String te_distinct_id = TDAnalytics.getDistinctId();

// Use the API for setting super event properties to set the AE distinct ID as a super property of the SolarEngine SDK
SolarEngineManager.getInstance().setSuperProperties(context, "te_distinct_id", te_distinct_id);

// Initialize the SolarEngine SDK
SolarEngineConfig config = new SolarEngineConfig.Builder().build();
SolarEngineManager.getInstance().initialize(context, "appkey applied for by the developer","userId applied for by the developer",config);

// .....

// After the user logs in
// Get the account ID
String te_account_id = "login_id";

// Call login in the TE SDK
TDAnalytics.login(te_account_id);

// Use the API for setting super event properties to set the AE account ID as a super property of the SolarEngine SDK
SolarEngineManager.getInstance().setSuperProperties(context,"te_account_id", te_account_id);

2. Plan configuration​

After completing the SDK configuration, log in to the AE backend and complete the SolarEngine configuration in the Third-party Integration module. The image below shows the SolarEngine configuration page:

2.1 User identification fields​

Because SolarEngine sends back user-level data, you need to set user identification rules for it. Based on this configuration, the AE system sets these fields as the user identification fields of the data when it converts the callback data.

If you configured the client SDK as described in the previous step of this document, use the following configuration:

  • Field associated with the account ID: event_custom_params.te_account_id
  • Field associated with the distinct ID: event_custom_params.te_distinct_id

2.2 Event Data Configuration​

After you turn on the Event Data Configuration switch, the data sent back (including activation events and in-app events) is written to the event table

We recommend that you enable event data ingestion. Note, however, that by default, we receive all data sent back by SolarEngine. If too many event types are sent back, the event volume of the AE project can grow excessively. Therefore, when you set up callbacks on the SolarEngine platform, we recommend that you select only the necessary events.

2.3 User Properties Configuration​

By default, the AE system automatically writes the attribution fields in the SolarEngine callback data to standardized user properties. The following are the fields written to user properties and their meanings:

SolarEngine fieldStandardized fieldDescription
channel_namete_ads_object.media_sourceMedia source
adplan_namete_ads_object.campaign_nameCampaign name
adgroup_namete_ads_object.ad_group_nameAd group name
adcreative_namete_ads_object.ad_nameAd name

To make changes, click Configure Rules to go to the ingestion rule configuration page, as shown below

Here, you can change which events user properties come from. If you do not want user properties to be written frequently, turn off Include all events and change the source event name to install. With this configuration, the AE system extracts the fields to be written to user properties only from the install events sent back by SolarEngine. The default Integration method is user_setOnce, which means only the first reported information is kept.

To turn off user property ingestion, stop all rules:

2.4 Configuration​

Finally, in the integration configuration module, you can control the details of data pulling, such as the event name after ingestion.

The content of the configuration is a JSON, which you can customize as follows:

ModuleNameDescription
sink_eventevent_mappingEvent name after ingestion. Customizable. The key is the SolarEngine event name, and the value is the event name after ingestion. The default is the activation event: install

2.5 End Point​

End Point shows the URL where the AE system receives SolarEngine callback data.

Note that the endpoint URL includes the callback parameters for apps. If you want to send back mini program/mini game data, see the mini program/mini game callback parameters section

Copy this URL directly, and enter it when you configure the callback in the next step:

If no URL is displayed here, open Project Settings → Settings → Implementation from the menu in the upper-right corner and configure the URL for public network. This URL is the data reporting URL configured in the AE SDK. After configuring it, go back to End Point on the SolarEngine configuration page and copy the endpoint URL.

3. Complete the callback configuration in SolarEngine​

3.1 Configure the callback link on the real-time API data export page of the SolarEngine backend​

After creating the plan in the AE backend, log in to the SolarEngine backend, select the project whose data you want to send back, and select App Settings > Data Export > Real-time API Export in the Attribution module to configure SolarEngine real-time callbacks

Fill in the fields according to the following rules:

  • For the callback type, select Activation
  • For the callback URL, enter the callback URL you got in the AE backend
  • For callback URL parsing, we recommend that you fill it in according to section 3.2
  • For the callback method, select POST
  • You can change the timeout and number of retries as needed. If you have no special requirements, use the default values

After completing the configuration, click Submit

3.2 SolarEngine callback parameters​

The following are the parameters that SolarEngine callbacks support. When configuring, we recommend that the parameter names you enter match the selected values. You can get all the fields we recommend sending back from the table below. Make sure to send back the event_name, event_time, and event_custom_params fields; otherwise, data conversion may fail

3.2.1 App callback parameters​

Parameter nameUsed by defaultValue (example)Description
event_typeYesEnum values:
preset, custom
Whether it is a preset event
event_nameYesEvent name: install, startup, etc...Event name
attribution_timeYes2023/7/1 22:47Attribution time
attribution_touch_typeYesclickAttribution touchpoint type
attribution_methodYesEnum values:
deviceid
fingerprint
Attribution method
attribution_lbw86400Attribution lookback window
attribution_ttit68Attribution time difference
channel_nameYesMintegralName of the attributed channel
app_nameYesCat EscapeInfinityApp name
appkeyYesappkey
app_platformYesiosApp platform
landing_page_urlhttps://apps.apple.com/us/app/cat-escape-infinity/id6445884698App landing page URL
turl_idEv2EvyaTracking link short link ID
turl_stringTracking link short link
turl_campaign_idYes7b35b6bd982780f729fcf4ff925b9c4eUnique ID of the tracking link
turl_campaign_nameYesCat Escape Infinity-IOSTracking link name
channel_idYes8221Channel ID of the tracking link
ry_touchpoint_tsYes1688222783854Touchpoint time
attribution_typeYesuaAttribution type (fixed to UA acquisition)
account_idYesAd account ID
adgroup_idYesAd group ID on the ad platform
adgroup_nameYesCatEscapeInfinity_CN_FO_0404_WX_iOS_MTG_1Ad group name on the ad platform
adplan_idYesss_Duomm_CN_FO_0404_WX_iOS_MTG_1Campaign ID on the ad platform
adplan_nameYesCampaign name on the ad platform
adcreative_idYes1804913040Ad creative ID on the ad platform
adcreative_nameYeswadmm_21186_0_V_1203_mtg_nndb_cn_1024x768_cy.mp4Ad creative name on the ad platform
adcreative_typeYesAd creative type on the ad platform
site_idYesmtg1183741824Sub-channel ID on the ad platform
site_nameYesSub-channel name on the ad platform
ad_typeYesAd type on the ad platform
placement_idYesAd placement ID on the ad platform
conversion_idUnique ID of the conversion received by the ad platform
click_idmtg64a03bfe52979a0001a8cb4yUnique click ID on the ad platform
impression_idUnique impression ID on the ad platform
request_id7434D04B787321D534C7268DD8D4D52EUnique request ID on the ad platform
callback_idUnique callback ID on the ad platform
callback_urlCallback URL of the ad platform
custom_params_1Custom parameter data 1-10 of the ad platform
custom_params_2Custom parameter data 1-10 of the ad platform
custom_params_3Custom parameter data 1-10 of the ad platform
custom_params_4Custom parameter data 1-10 of the ad platform
custom_params_5Custom parameter data 1-10 of the ad platform
custom_params_6Custom parameter data 1-10 of the ad platform
custom_params_7Custom parameter data 1-10 of the ad platform
custom_params_8Custom parameter data 1-10 of the ad platform
custom_params_9Custom parameter data 1-10 of the ad platform
custom_params_10Custom parameter data 1-10 of the ad platform
device_idYesB9BBB98D-FFEE-448D-A9BE-52883FF230FDUnique ID of the attributed device
device_id_typeYesdistinct_iddistinct_id
device_id_md5_typedistinct_id_md5distinct_id_md5
device_id_md555a6187afabbe2ed4c6e9bc0fdca423dMD5 of the unique ID of the attributed device
gaidgaid
gaid_md5gaid_md5
imei1imei1
imei1_md5imei1_md5
imei2imei2
imei2_md5imei2_md5
oaidoaid
oaid_md5oaid_md5
macmac
mac_md5mac_md5
android_idandroid_id
android_id_md5android_id_md5
idfa49BB9C2F-E0DB-46B8-9C68-21C4C7FB30CCidfa
idfa_md51225a829ea48f2fc62a2d3faee263829idfa_md5
idfvB9BBB98D-FFEE-448D-A9BE-52883FF230FDidfv
idfv_md555a6187afabbe2ed4c6e9bc0fdca423didfv_md5
ipv4110.154.208.22ipv4
ipv6ipv6
uaYesMozilla/5.0 (iPad; CPU OS 14_2 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148ua
manufacturerYesappleBrand
modelYesiPad11,6Device model
osYesEnum values
1: Android
2: iOS
OS
os_versionYes14.2Version
ua_device_typeiPadDevice type parsed from the UA
ua_osIOSOS parsed from the UA
ua_osv14.2OS version parsed from the UA
languageYeszh-Hans-CNLanguage
countryYesCNCountry
cityYesCity
att_statusEnum values:
denied, restricted, authorized, unknown, empty
lat_statusEnum values:
enable, disable, unknown, empty
network_typeYesEnum values:
0: no network
1: unknown
2: 2G
3: 3G
4: 4G
5: 5G
6: 6G or next-generation network
9: WIFI
Network status when the data was uploaded
carrierYesCarrier
install_time1688222848242Activation time
event_timeYes1689781058000Time when the server received the event
channel_package_namedefaultChannel package name
app_versionYes1.0.2App version
bundleidYesjp.os.catescapeapp bundle id
event_dataYes
collector_version1.1.8.0SDK version
integration_typeEnum values:
sdk
api
s2s
Integration method
event_custom_paramsYesCustomer's custom event property content
caidcaid value of the event
caid_md5MD5 of the event's caid
event_account_idaccount_id of the event

3.2.2 Mini program/mini game callback parameters​

If you are connecting a mini program or mini game, use the following callback URL. Replace {receiver-host} with the reporting URL, and replace {app-id} below with the project's APP ID:

https://{receiver-host}/attribution/callback/solarengine/{app-id}?appkey=appkey&app_name=app_name&app_platform=app_platform&app_type=app_type&event_name=event_name&country=country&current_event_time=current_event_time&channel_name=channel_name&os=os&os_version=os_version&brand=brand&model=model&ua=ua&user_id=user_id&account_id=account_id&adgroup_id=adgroup_id&adgroup_name=adgroup_name&adplan_id=adplan_id&adplan_name=adplan_name&adcreative_id=adcreative_id&adcreative_name=adcreative_name&adcreative_type=adcreative_type&scene_id=scene_id&custom_params=custom_params&ad_platform=ad_platform&ad_type=ad_type&ad_appid=ad_appid&ad_id=ad_id&mediation_platform=mediation_platform&ad_ecpm=ad_ecpm&order_id=order_id&order_amount=order_amount&currency_type=currency_type&purchase_type=purchase_type&product_id=product_id&product_name=product_name&product_num=product_num&register_type=register_type&login_type=login_type

Common event fields for mini programs/mini games:

Field nameRecommendedValue (example)Description
appkeyYes9b716df699b77694Unique identifier of the app created in the SE backend
app_nameYesApp nameApp name
app_platformYesminiprogramOperating system: miniprogram or minigame
app_typeYeswechatPlatform type: wechat, douyin
event_nameYesstartupEvent name. Fixed values: install (activation), startup (launch), register (registration), login (login), order (order), purchase (payment), adimpression (ad impression)...
countryYesCHNCountry
install_time1637823377000Install time
current_event_timeYes1637823377000Time when the current event occurred
report_time1637823377000Time when the server received the event
integration_typesdkIntegration method. Fixed to sdk
collector_version1.8.0Collector version
attribution_methodpathAttribution method: path attribution (path), click attribution (click)
channel_id8221Channel ID
channel_nameYestiktokChannel Name
turl_campaign_id871bbfa4560283c5a0ca00483c529c63Tracking link ID
turl_campaign_nameTracking link name_MintegralTracking link name
openidoUFfk5coGBwScTmIsr008qL93ANkUnique user ID within the current mini program
anonymous_openidDouyin only. Unique ID of the anonymous user within the current mini program
unionidf7510d9ab***********Unique user ID across different mini programs of the same developer
device_idoUFfk5UyO--kSbPVEuC5zWtqYvbsDevice ID
device_id_typeopenidDevice ID type
container_nametoutiaoHost app name. Douyin only
osYesandroidOS platform of the host app
os_versionYes10OS version of the host app
brandYesHUAWEIDevice manufacturer of the host app
modelYesMate 40Device model of the host app
languagezh-hanDevice language of the host app
ipv41.1.1.1User's public IPv4 address
uaYesMozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/95.0.4638.54 Safari/537.36UA
user_idYesAccount ID (user ID)
account_idYesAd account ID
adgroup_idYesAd group ID
adgroup_nameYesAd group name
adplan_idYesCampaign ID
adplan_nameYesCampaign name
adcreative_idYesAd creative ID
adcreative_nameYesAd creative name
adcreative_typeYesCreative type (such as large image, small image, or video)
material_1Material ID_1
material_2Material ID_2
material_3Material ID_3
material_4Material ID_4
material_5Material ID_5
material_6Material ID_6
click_idAd click ID
impression_idAd impression ID
request_idAd request ID
callback_idChannel callback ID
callback_urlChannel callback URL
site_idTraffic media ID (such as Ocean Engine's Toutiao, Pangle, and Douyin).
site_nameTraffic media name (such as Ocean Engine's Toutiao, Pangle, and Douyin).
scene_idYes1Scene value
pathindex/xxxLaunch page path of the mini program
query_info{ "channel_id": "234234",
"turl_id": "234234", ...}
Query information obtained from the mini program platform: SE parameters + parameters appended by the channel
custom_paramsYes{ "add_cart": "234234", //custom parameters. "sku": "234234", "level_up": "234234" ... }/Nested custom event parameters, with up to 10 parameters.

Event-specific fields for mini programs/mini games:

EventField nameRecommendedDescription
adimpressionad_platformYesMonetization platform
ad_typeYesType of the displayed ad
ad_appidYesApp ID on the monetization platform
ad_idYesMonetization ad unit ID on the monetization platform
mediation_platformYesMediation platform identifier. If there is no mediation platform identifier, set it to "custom"
ad_ecpmYesAd eCPM (monetization revenue per 1,000 ad impressions; 0 or a negative value means it was not passed), unit: CNY
is_renderedWhether the ad was rendered successfully. Enum values:
YES: succeeded
NO: failed
If you do not need this metric, pass YES
adclickad_platformYesMonetization platform
ad_typeYesType of the displayed ad
ad_idYesMonetization ad unit ID on the monetization platform
mediation_platformYesMediation platform identifier. If there is no mediation platform identifier, set it to "custom"
purchaseorder_idYesOrder ID
order_amountYesAmount paid for this purchase
currency_typeYesPayment currency type, following the ISO 4217 international standard, such as CNY and USD
purchase_typeYesPayment method, such as alipay, weixin, applepay, and paypal
product_idYesID of the purchased product
product_nameYesProduct name
product_numYesQuantity of products purchased
orderorder_idYesOrder ID
order_amountYesOrder amount, unit: CNY
currency_typeYesCurrency type of the displayed revenue, following the ISO 4217 international standard, such as CNY and USD
purchase_typeYesPayment method, such as alipay, weixin, applepay, and paypal
registerregister_typeYesRegistration type, a custom value such as "WeChat" or "QQ"
loginlogin_typeYesLogin type, a custom value such as "WeChat" or "QQ"

4. Data ingestion​

4.1 Data ingestion rules​

By default, we write the pulled data to the AE project as events according to the following rules:

  • The event_time field in the data is used as the event's data time #event_time
  • The event_name in the data is used as the event name of the data
  • All other fields are ingested

4.2 Standardized fields​

Original fieldStandardized fieldDescription
account_idte_ads_object.ad_account_idAd account ID
adplan_namete_ads_object.campaign_nameCampaign name
adplan_idte_ads_object.campaign_idCampaign ID
adgroup_namete_ads_object.ad_group_nameAd group name, or the Unit name for monetization ads
adgroup_idte_ads_object.ad_group_idAd group ID, or the Unit ID for monetization ads
adcreative_namete_ads_object.ad_nameAd name
adcreative_idte_ads_object.ad_idAd ID
placement_idte_ads_object.placementAd placement
channel_namete_ads_object.media_sourceMedia source or monetization channel
bundleidte_ads_object.app_idApp ID
app_namete_ads_object.app_nameApp name
app_platformte_ads_object.platformPlatform, such as Android or iOS
countryte_ads_object.countryCountry or region code
Was this page helpful?