Menu

Predefined Events

1. Ad Impression

       Automatically reported when displaying ads within the app, which is essential for ROI analysis and monetization-related metrics in user analysis. (Event Name:  "_appImp")

Function

public synchronized void trackAdImpression(SEAdImpEventModel seAdImpEventModel);

Parameter Description

      To report "_appImp" events from third-party mediation platforms, please refer to the sample code for different partners.

ParameterDescriptionTypeRequired
adNetworkPlatformMonetization platform (Value: platform name)
csj: 穿山甲国内版
pangle: 穿山甲国际版
tencent: 腾讯优量汇
baidu: 百度百青藤
kuaishou: 快手
oppo: OPPO
vivo:vivo
mi: 小米
huawei: 华为
applovin: AppLovin
sigmob: Sigmob
mintegral:Mintegral
oneway: OneWay
vungle: Vungle
facebook: Facebook
admob: AdMob
unity: UnityAds
is: IronSource
adtiming: AdTiming
klein: 游可赢
fyber: Fyber (DT Exchange)
chartboost: Chartboost
adcolony: Adcolony
inmobi:Inmobi
bigo:BIGO
Stringyes
adTypeAd types:
1:Rewarded Video
2:Splash
3:Interstitial
4:Fullscreen Video
5:Banner
6:Native
7:Native Video
8:Banner (MPU)
9:Instream Video
10:MREC
0:Other
Intyes
adNetworkAppIDThe App ID on monetization platforms.Stringno
adNetworkADIDAd unit ID on monetization platforms.Stringyes
mediationPlatformMediation platforms commonly used:
max
ironsource
admob
hyperbid
topon
cas
Tradplus
Tobid

If your mediation platform is not on the list, you can name it yourself, only that the name cannot exceed 32 characters.
Send "custom" if no mediation platform is used.
Stringyes
ecpm=revenue of 1,000 ad impressions
(Mininum Unit: USD dollar)
(0 or negative values are invalid.)
floatyes
currencyTypeRevenue Currency Type (following ISO 4217)Stringyes
isRenderSuccessWhether the ad is rendered successfully.
YES: success
NO: Failed.
If you do not need to pass in this indicator, please pass YES.
Booleanyes
customProperties/JSONObjectno

Sample Code

import com.reyun.solar.engine.SolarEngineManager;
import org.json.JSONObject;

JSONObject customProperties = new JSONObject();
try {
    //Custom event properties in JSON format.
    customProperties.put("key1","value1");
    customProperties.put("key2","value2");
    ......
} catch (JSONException e) {
    ///
}
SEAdImpEventModel seAdImpEventModel = new SEAdImpEventModel("Mintegral","xxxMediationPlatformxxx",AdType.RewardVideo.intValue(),"xxxAppIDxxx","xxxAdIDxxx",16.01,"USD",true,customProperties);
SolarEngineManager.getInstance().trackAdImpression(seAdImpEventModel);


2. Ad Click

       Automatically reported when ads are clicked within the app. (Event Name: "_appClick")

Function

public synchronized void trackAdClick(SEAdClickEventModel seAdClickEventModel);

Parameter Description

ParameterDescriptionTypeRequired
adNetworkPlatformMonetization platforms, for example (value: name),
csj:穿山甲国内版
pangle:穿山甲国际版
tencent:腾讯优量汇
baidu:百度百青藤
kuaishou:快手
oppo:OPPO
vivo:vivo
mi:小米
huawei:华为
applovin:Applovin
sigmob:Sigmob
mintegral:Mintegral
oneway:OneWay
vungle:Vungle
facebook:Facebook
admob:AdMob
unity:UnityAds
is:IronSource
adtiming:AdTiming
klein:游可赢
fyber:Fyber
chartboost:Chartboost
adcolony:Adcolony
inmobi:Inmobi
Stringyes
adTypeAd types, for example (value: explanation),
1:Rewarded Video Ads
2:Splash Ads
3:Interstitial Ads
4:Full Screen Videos
5:Banner Ads
6:In-Feed Ads
7:Native Video Ads
8:Playable Ads
9:Pre-movie Ads
0:Other
Intyes
adNetworkADIDAd unit ID on monetization platforms.Stringyes
mediationPlatformMediation platforms commonly used:
max
ironsource
admob
hyperbid
topon
cas
Tradplus
Tobid

If your mediation platform is not on the list, you can name it yourself, only that the name cannot exceed 32 characters.
Send "custom" if no mediation platform is used.
Stringyes
customProperties/JSONObjectno

Sample Code

import com.reyun.solar.engine.SolarEngineManager;
import org.json.JSONObject;

JSONObject customProperties = new JSONObject();
try {
    // Custom event properties in JSON format.
    customProperties.put("key1","value1");
    customProperties.put("key2","value2");
    ......
} catch (JSONException e) {
    ///
}
SEAdClickEventModel seAdClickEventModel = new SEAdClickEventModel("Mintegral","xxxMediationPlatformxxx",AdType.RewardVideo.intValue(),"xxxAdIDxxx",customProperties);
SolarEngineManager.getInstance().trackAdClick(seAdClickEventModel);

3. In-App Purchase

Automatically reported when in-app purchase is made. (Event Name: "_appPur")

It is a key event for training payment prediction algorithm model. If you're using SE payment prediction services, please make sure to report this event.

Function

public synchronized void trackPurchase(SEPurchaseEventModel sePurchaseEventModel);

Parameter Description

ParameterDescriptionTypeRequired
orderIdThe order ID generated by the system for this purchaseStringno
payAmountThe amount paid for this purchasedoubleyes
currencyTypeThe currency type of payment (following ISO 4217)Stringyes
payTypePayment methods, such as alipay, weixin, applepay, paypal, etc.Stringno
productIdPurchased item IDStringno
productNamePurchased item nameStringno
productNumQuantity of items purchasedIntno
payStatusPayment status
1: successful
2: failed
Intyes
failReasonReason for payment failureStringno
customProperties/JSONObjectno

Note:

  The failureReason parameter is only be passed in when the payStatus parameter is SolarEngineIAPFail. For other statuses, simply pass "".

Sample Code

import com.reyun.solar.engine.SolarEngineManager;
import org.json.JSONObject;

JSONObject customProperties = new JSONObject();
try {
    //Custom event properties in JSON format.
    customProperties.put("key1","value1");
    customProperties.put("key2","value2");
    ......
} catch (JSONException e) {
    ///
}
SEPurchaseEventModel sePurchaseEventModel = new SEPurchaseEventModel("xxxorderIDxxx",50.5,"USD","weixin","xxx productIDxxx","xxxproductNamexxx",1,1,"",customProperties);
SolarEngineManager.getInstance().trackPurchase(sePurchaseEventModel);


4. In-App Order

       Event name: "_appOrder"

Function

public synchronized void trackOrder(SEOrderEventModel seOrderEventModel);

Parameter Description

ParameterDescriptionTypeRequired
orderIDOrder IDStringNo
payAmountThe payment amount of the order (Unit: yuan)doubleYes
currencyTypeThe currency type of the order (following ISO 4217)StringYes
payTypePayment methods, such as alipay, weixin, applepay, paypal, etc.StringNo
statusOrder StatusStringYes
customProperties/JSONObjectNo

Sample Code

import com.reyun.solar.engine.SolarEngineManager;
import org.json.JSONObject;

JSONObject customProperties = new JSONObject();
try {
    //Developer custom event properties in JSON format.
    customProperties.put("key1","value1");
    customProperties.put("key2","value2");
    ......
} catch (JSONException e) {
    ///
}
SEOrderEventModel seOrderEventModel = new SEOrderEventModel("xxxOrderIDxxx",50.5,"USD","weixin","xxxOrderStatusxxx",customProperties);
SolarEngineManager.getInstance().trackOrder(seOrderEventModel);

5. Registration

Automatically reported when users register within the app. (Event Name: "_appReg")

Function

public synchronized void trackAppRegister(SERegisterEventModel seRegisterEventModel);

Parameter Description

ParameterDescriptionTypeRequired
regTypeRegistration types such as "WeChat", "QQ" and other custom valuesStringYes
statusRegistration status such as "success"StringNo
customProperties/JSONObjectNo

Sample Code

import com.reyun.solar.engine.SolarEngineManager;
import org.json.JSONObject;

JSONObject customProperties = new JSONObject();
try {
    //Custom event properties in JSON format.
    customProperties.put("key1","value1");
    customProperties.put("key2","value2");
    ......
} catch (JSONException e) {
    ///
}
SERegisterEventModel seRegisterEventModel = new SERegisterEventModel("QQ","success",customProperties);
SolarEngineManager.getInstance().trackAppRegister(seRegisterEventModel);

6. Login

Automatically reported when users login within the app. (Event Name: "_appLogin")

After users successfully log in, you should call the method to set Account ID, so that events triggered later will bring their Account IDs.

Function

public synchronized void trackAppLogin(SELoginEventModel seLoginEventModel);

Parameter Description

ParameterDescriptionTypeRequired
loginTypeLogin type such as "WeChat", "QQ" and other custom valuesStringYes
statusLogin status such as "success"StringNo
customProperties/JSONObjectNo

Sample Code

import com.reyun.solar.engine.SolarEngineManager;
import org.json.JSONObject;

JSONObject customProperties = new JSONObject();
try {
    //Custom event properties in JSON format.
    customProperties.put("key1","value1");
    customProperties.put("key2","value2");
    ......
} catch (JSONException e) {
    ///
}
SELoginEventModel seLoginEventModel = new SELoginEventModel("QQ","success",customProperties);
SolarEngineManager.getInstance().trackAppLogin(seLoginEventModel);

7. Self-Reported Attribution Results

       Enables the reporting of attribution results data from a third-party or self-attribution platform to SolarEngine. The timing of reporting can be customized by developers. (Event Name: "_appAttr")

Function

public synchronized void trackAttr(SEAttrEventModel seAttrEventModel);

Parameter Description

ParameterDescriptionTypeRequired
adNetworkChannel ID (should match the channel ID in ROI analysis)Stringyes
subChannelSub-channels for advertisingStringno
adAccountIDAd account ID for advertisingStringno
adAccountNameAd account name for advertisingStringno
adCampaignIdAd campaign ID for advertisingStringno
adCampaignNameAd campaign name for advertisingStringno
adOfferIdAd offer ID for advertisingStringno
adOfferNameAd offer name for advertisingStringno
adCreativeIdAd creative ID for advertisingStringno
adCreativeNameAd creative name for advertisingStringno
attributionPlatformMonitoring PlatformStringyes
customProperties/JSONObjectno

Sample Code

import com.reyun.solar.engine.SolarEngineManager;
import org.json.JSONObject;

JSONObject customProperties = new JSONObject();
try {
    //Custom event properties in JSON format.
    customProperties.put("key1","value1");
    customProperties.put("key2","value2");
    ......
} catch (JSONException e) {
    ///
}
SEAttrEventModel seAttrEventModel = new SEAttrEventModel("xxxAdChannelIDxxx","xxxSub-Channelxxx","xxxAdAccountIDxxx","xxxAdAccountNamexxx","xxxAdPlanIDxxx","xxxAdPlanNamexxx","xxxAdOfferIDxxx","xxxAdOfferNamexxx","xxxAdCreativeIDxxx","xxxAdCreativeNamexxx","xxxMMPxxx",customProperties);
SolarEngineManager.getInstance().trackAttr(seAttrEventModel);


Previous
Preset Events
Next
Custom Event & Property
Last modified: 2025-09-08Powered by