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.
Parameter | Description | Type | Required |
---|---|---|---|
adNetworkPlatform | Monetization 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 | String | yes |
adType | Ad 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 | Int | yes |
adNetworkAppID | The App ID on monetization platforms. | String | no |
adNetworkADID | Ad unit ID on monetization platforms. | String | yes |
mediationPlatform | Mediation 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. | String | yes |
ecpm | =revenue of 1,000 ad impressions (Mininum Unit: USD dollar) (0 or negative values are invalid.) | float | yes |
currencyType | Revenue Currency Type (following ISO 4217) | String | yes |
isRenderSuccess | Whether the ad is rendered successfully. YES: success NO: Failed. If you do not need to pass in this indicator, please pass YES. | Boolean | yes |
customProperties | / | JSONObject | no |
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);
Automatically reported when ads are clicked within the app. (Event Name: "_appClick")
Function
public synchronized void trackAdClick(SEAdClickEventModel seAdClickEventModel);
Parameter Description
Parameter | Description | Type | Required |
---|---|---|---|
adNetworkPlatform | Monetization 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 | String | yes |
adType | Ad 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 | Int | yes |
adNetworkADID | Ad unit ID on monetization platforms. | String | yes |
mediationPlatform | Mediation 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. | String | yes |
customProperties | / | JSONObject | no |
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);
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
Parameter | Description | Type | Required |
---|---|---|---|
orderId | The order ID generated by the system for this purchase | String | no |
payAmount | The amount paid for this purchase | double | yes |
currencyType | The currency type of payment (following ISO 4217) | String | yes |
payType | Payment methods, such as alipay, weixin, applepay, paypal, etc. | String | no |
productId | Purchased item ID | String | no |
productName | Purchased item name | String | no |
productNum | Quantity of items purchased | Int | no |
payStatus | Payment status 1: successful 2: failed | Int | yes |
failReason | Reason for payment failure | String | no |
customProperties | / | JSONObject | no |
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);
Event name: "_appOrder"
Function
public synchronized void trackOrder(SEOrderEventModel seOrderEventModel);
Parameter Description
Parameter | Description | Type | Required |
---|---|---|---|
orderID | Order ID | String | No |
payAmount | The payment amount of the order (Unit: yuan) | double | Yes |
currencyType | The currency type of the order (following ISO 4217) | String | Yes |
payType | Payment methods, such as alipay, weixin, applepay, paypal, etc. | String | No |
status | Order Status | String | Yes |
customProperties | / | JSONObject | No |
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);
Automatically reported when users register within the app. (Event Name: "_appReg")
Function
public synchronized void trackAppRegister(SERegisterEventModel seRegisterEventModel);
Parameter Description
Parameter | Description | Type | Required |
---|---|---|---|
regType | Registration types such as "WeChat", "QQ" and other custom values | String | Yes |
status | Registration status such as "success" | String | No |
customProperties | / | JSONObject | No |
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);
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
Parameter | Description | Type | Required |
---|---|---|---|
loginType | Login type such as "WeChat", "QQ" and other custom values | String | Yes |
status | Login status such as "success" | String | No |
customProperties | / | JSONObject | No |
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);
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
Parameter | Description | Type | Required |
---|---|---|---|
adNetwork | Channel ID (should match the channel ID in ROI analysis) | String | yes |
subChannel | Sub-channels for advertising | String | no |
adAccountID | Ad account ID for advertising | String | no |
adAccountName | Ad account name for advertising | String | no |
adCampaignId | Ad campaign ID for advertising | String | no |
adCampaignName | Ad campaign name for advertising | String | no |
adOfferId | Ad offer ID for advertising | String | no |
adOfferName | Ad offer name for advertising | String | no |
adCreativeId | Ad creative ID for advertising | String | no |
adCreativeName | Ad creative name for advertising | String | no |
attributionPlatform | Monitoring Platform | String | yes |
customProperties | / | JSONObject | no |
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);