Menu

Predefined Events

1. Ad Impression

Automatically reported when displaying ads within the app, which is essential for ad revenue measurement. (Event Name:  "_appImp")

- (void)trackAdImpressionWithAttributes:(SEAdImpressionEventAttribute *)attribute;

SEAdImpressionEventAttribute parameters:

        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: 穿山甲 China Mainland version
pangle: 穿山甲 Non-China-Mainland version
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
bigo:BIGO
NSString YES
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
NSInteger YES
adNetworkAppID The App ID on monetization platforms. NSString NO
adNetworkPlacementID Ad Unit ID on monetization platforms. NSString YES
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.
NSString YES
ecpm=revenue of 1,000 ad impressions
(Mininum Unit: USD dollar)
(0 or negative values are invalid.)
double YES
currency Revenue Currency Type (following ISO 4217) NSString YES
rendered Whether the ad is rendered successfully.
YES: success
NO: Failed.
If you do not need to pass in this indicator, please pass YES.
BOOL YES
customProperties / NSDictionary NO


Sample Code

SEAdImpressionEventAttribute *attribute = [[SEAdImpressionEventAttribute alloc] init];
attribute.adNetworkPlatform = @"csj";
attribute.adType = 1;
attribute.adNetworkAppID = @"test_adNetworkAppID";
attribute.adNetworkPlacementID = @"test_adNetworkPlacementID";
attribute.mediationPlatform = @"custom";
attribute.currency = @"USD";
attribute.ecpm = 13.14;
attribute.rendered = YES;
attribute.customProperties = @{
    @"Key1": @"Value1",
    @"Key2": @"Value2"
};
[[SolarEngineSDK sharedInstance] trackAdImpressionWithAttributes:attribute];


2. Ad Click

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

- (void)trackAdClickWithAttributes:(SEAdClickEventAttribute *)attribute;

SEAdClickEventAttribute parameters:

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
NSString YES
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
NSInteger YES
adNetworkPlacementIDAd Unit ID on monetization platforms. NSString YES
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.
NSString YES
customProperties/ NSDictionary NO


Sample Code

SEAdClickEventAttribute *attribute = [[SEAdClickEventAttribute alloc] init];
attribute.adNetworkPlatform = @"csj";
attribute.adType = 1;
attribute.adNetworkPlacementID = @"Placement id";
attribute.mediationPlatform = @"custom";
attribute.customProperties = @{
    @"Key1": @"Value1",
    @"Key2": @"Value2"
};
[[SolarEngineSDK sharedInstance] trackAdClickWithAttributes:attribute];

3. In-app Purchase

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

- (void)trackIAPWithAttributes:(SEIAPEventAttribute *)attribute;

SEIAPEventAttribute parameters:

Parameter Description TypeRequired
orderId The order ID generated by the system for this purchase NSString NO
payAmount The amount paid for this purchase double YES
currencyType The currency type of payment (following ISO 4217) NSString YES
payType Payment methods, such as alipay, weixin, applepay, paypal, etc. NSString NO
productID Purchased item ID NSString NO
productName Purchased item name NSString NO
productCount Quantity of items purchased NSInteger NO
payStatus Payment status.
Pass SolarEngineIAPSuccess if successful
Pass SolarEngineIAPFail if failed
Pass SolarEngineIAPRestored if restored
SolarEngineIAPStatus YES
failReason Reason for payment failure NSString NO
customProperties / NSDictionary NO

Note:

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

Sample Code

SEIAPEventAttribute *attribute = [[SEIAPEventAttribute alloc] init];
attribute.productID = @"test_productID";
attribute.productName = @"test_productName";
attribute.productCount = 1234;
attribute.orderId = @"test_orderID";
attribute.payAmount = 123456;
attribute.currencyType = @"CNY";
attribute.payType = SEIAPEventPayTypeWeixin;
attribute.payStatus = SolarEngineIAPSuccess;
attribute.failReason = @"test_failReason";
attribute.customProperties = @{
    @"Key1": @"Value1",
    @"Key2": @"Value2"
};
[[SolarEngineSDK sharedInstance] trackIAPWithAttributes:attribute];

4. 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")

/// Report appAttr event
/// @param attribute SEAppAttrEventAttribute example
- (void)trackAppAttrWithAttributes:(SEAppAttrEventAttribute *)attribute;

SEAppAttrEventAttribute parameters:

ParameterDescriptionTypeRequired
adNetwork Channel ID (should match the channel ID in ROI analysis) NSString yes
subChannel Sub-channels for advertising NSString no
adAccountID Ad account ID for advertising NSString no
adAccountName Ad account name for advertising NSString no
adCampaignID Ad campaign ID for advertising NSString no
adCampaignName Ad campaign name for advertising NSString no
adOfferID Ad offer ID for advertising NSString no
adOfferName Ad offer name for advertising NSString no
adCreativeID Ad creative ID for advertising NSString no
adCreativeName Ad creative name for advertising NSString no
attributionPlatform Monitoring Platform NSString yes
customProperties / NSDictionary no

Sample Code

SEAppAttrEventAttribute *attribute = [[SEAppAttrEventAttribute alloc] init];
attribute.adNetwork = @"adNetwork";
attribute.subChannel = @"subChannel";
attribute.adAccountID = @"adAccountID";
attribute.adAccountName = @"adAccoContent:4.CustomProperty untName";
attribute.adCampaignID = @"adCampaignID";
attribute.adCampaignName = @"adCampaignName";
attribute.adOfferID = @"adOfferID";
attribute.adOfferName = @"adOfferName";
attribute.adCreativeID = @"adCreativeID";
attribute.adCreativeName = @"adCreativeName";
attribute.attributionPlatform = @"attributionPlatform";
attribute.customProperties = @{
    @"name": @"Tom",
    @"age" : @18
};
[[SolarEngineSDK sharedInstance] trackAppAttrWithAttributes:attribute];

5) In-App Order

   Event name: "_appOrder"

- (void)trackOrderWithAttributes:(SEOrderEventAttribute *)attribute;

SEOrderEventAttribute parameters:

ParameterDescriptionTypeRequired
orderID Order ID NSString No, no more than 128 characters
payAmount The payment amount of the order (Unit: yuan) double yes
currencyType The currency type of the order (following ISO 4217) NSString yes
payType Payment methods, such as alipay, weixin, applepay, paypal, etc. NSString No, no more than 32 characters
status Order Status NSString yes
customProperties / NSDictionary no

Sample Code

SEOrderEventAttribute *attribute = [[SEOrderEventAttribute alloc] init];
attribute.orderID = @"1000000";
attribute.payAmount = 3.14;
attribute.currencyType = @"USD";
attribute.payType = @"aliPay";
attribute.status = @"success";
attribute.customProperties = @{
    @"Key1": @"Value1",
    @"Key2": @"Value2"
};
[[SolarEngineSDK sharedInstance] trackOrderWithAttributes:attribute];

6) Registration

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

 - (void)trackRegisterWithAttributes:(SERegisterEventAttribute *)attribute;

SERegisterEventAttribute parameters:

ParameterDescriptionTypeRequired
registerType Registration types such as "WeChat", "QQ" and other custom values NSString Yes (Limit 32 characters)
registerStatus Registration status such as "success" NSString no
customProperties / NSDictionary no

Sample Code

SERegisterEventAttribute *attribute = [[SERegisterEventAttribute alloc] init];
attribute.registerType = @"WeChat";
attribute.registerStatus = @"success";
attribute.customProperties = @{
    @"Key1": @"Value1",
    @"Key2": @"Value2"
};
[[SolarEngineSDK sharedInstance] trackRegisterWithAttributes:attribute];

7) Login

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

 - (void)trackLoginWithAttributes:(SELoginEventAttribute *)attribute;

SELoginEventAttribute parameters:

ParameterDescriptionTypeRequired
loginType Login type such as "WeChat", "QQ" and other custom values NSString Yes (Limit 32 characters)
loginStatus Login status such as "success" NSString No
customProperties / NSDictionary No

Sample Code

SELoginEventAttribute *attribute = [[SELoginEventAttribute alloc] init];
attribute.loginType = @"WeChat";
attribute.loginStatus = @"success";
attribute.customProperties = @{
    @"Key1": @"Value1",
    @"Key2": @"Value2"
};
[[SolarEngineSDK sharedInstance] trackLoginWithAttributes:attribute];


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