TopOn iOS SDK returns the specific information of the advertising source in the callback, including the display revenue and related advertising platforms.
The extra parameter at the end of the callback method of TopOn iOS SDK returns the information defined by TopOn for you to obtain. The key used to obtain the information varies depending on the version of TopOn iOS SDK. Please confirm your SDK version and refer to the following link:
- SDK version >= 6.3.61
- SDK Version < 6.3.61 (Deprecation, Please update SDK)
In addition, you can also obtain custom information in the callback method with extra parameters. Please refer to the extra parameters section.
Callback information printing example:
{
"id": "84c3c5940e4fab2d8712299d631e09b3", // Impression ID generated for each ad display
"publisher_revenue": "0.0015", // Revenue generated per impression
"ad_source_id": 9805, // Ad source ID. Network information can be queried via Developer Dashboard or TopOn Open API using this ID
"network_firm_id": 8, // Refer to Network Firm Id Table
"adsource_isHeaderBidding": 0, // Whether it's a Header Bidding ad source (1 indicates Header Bidding)
"adsource_price": 1.5, // eCPM value (currency unit)
"precision": "publisher_defined", // eCPM precision: publisher_defined - developer-defined ecpm; exact - HB real-time bidding ecpm; estimated - TopOn estimated ecpm
"adsource_index": 0, // Ad source priority (0 indicates highest priority)
"ecpm_level": 1, // Ranking level based on eCPM
"segment_id": 0, // Traffic segmentation ID
"adunit_format": "Splash", // Ad format type
"adunit_id": "b5e65ad3ab084b", // Ad unit ID (TopOn Placement ID)
"country": "CN", // Country code
"currency": "USD", // Currency unit
"network_placement_id": 887305510, // Third-party platform's unit ID
"network_type": "Network", // Network type: Network - third-party ads; Cross_Promotion - cross-promotion
"scenario_id": "f5e549727efc49", // Ad scenario ID
"scenario_reward_name": "rewardedSence", // Incentive name for ad scenario
"scenario_reward_number": 0, // Incentive quantity for ad scenario
"channel": "test_channel", // Channel identifier
"sub_channel": "test_subchannel", // Sub-channel identifier
"custom_rule": {
"custom_data_key": "custom_data_val"
}, // Custom rules
"ext_info": {
"creative_id": "42-348448957", // Creative material ID of the Offer
"is_deeplink": 0, // Whether it's a Deeplink or JumpURL offer (1 indicates Deeplink/JumpURL)
"offer_id": "GDTONLINE-348448957", // Ad ID of the Offer
"currencyCode": "USD", // Admob display revenue currency unit [Note: This field has been modified, please refer to documentation end]
"precision": 0, // Admob display revenue precision: 0-unknown, 1-estimated, 2-publisher provided, 3-precise [Note: Deprecation]
"value": 0.1, // Admob display revenue specific value [Note: Deprecation]
"en_p": "5GWtXa-X-sazi-xluLlqMyBCGWIIAZQ_8p7bM2-LqeQ" // Baidu price encryption field (requires TakuSDK>6.3.63 and Baidu SDK≥5.37)
}, // Additional information for TopOn Adx & OnlineAPI Offer & Admob
"placement_type": 1, // Placement type: 1 - real ad placement, 2 - shared ad placement
"shared_placement_id": "p1en19jjiirsf3", // Shared placement ID
"user_load_extra_data": {
"user_custom_data": "media_val"
} // Custom parameter information passed before Load
}
For a list of advertising platforms corresponding to the network_firm_id field, please click here.
Migration tips: If your current SDK version is lower than v6.3.61, the Key fields are unified. It is recommended that you replace the Key value of the corresponding extra dictionary according to the "Field Name" column in the table.
Field Name | type | Extra parameter corresponding to Key | illustrate |
---|---|---|---|
network_firm_id | int | kATADDelegateExtraNetworkFirmIdKey | Get the ID corresponding to the advertising platform, which is used to distinguish the advertising platform. Refer to Network Firm Id Table |
adsource_id | String | kATADDelegateExtraAdSourceIdKey | Get the ad source ID. You can query specific network information through the ad source ID in the developer backend or TopOn Open API |
adsource_index | int | kATADDelegateExtraPriorityKey | Get the ranking of the current ad source in the currently executed WaterFall (starting from 0 with the highest optimization level) |
adsource_price | double | kATADDelegateExtraAdSourcePriceKey | Get the estimated eCPM (the regular ad source is the manually filled eCPM price, and the bidding ad source is the real-time bidding price). The currency unit of eCPM can be obtained through currency (corresponding to US dollars or yuan, etc.), and the accuracy can be obtained through precision. |
adsource_isheaderbidding | int | kATADDelegateExtraIsHeaderBiddingKey | Whether it is a header bidding ad source. 1: Yes, 2: No |
id | String | kATADDelegateExtraIDKey | Get a unique ID generated each time an ad is displayed |
publisher_revenue | double | kATADDelegateExtraPublisherRevenueKey | Get the revenue brought by this display. The unit can be obtained through currency and the accuracy can be obtained through precision |
currency | String | kATADDelegateExtraCurrencyKey | Get the currency unit, for example: "USD" |
country | String | kATADDelegateExtraCountryKey | Get the country code, for example: "CN" |
adunit_id | String | kATADDelegateExtraAdunitIDKey | Get the TopOn ad slot ID |
adunit_format | String | kATADDelegateExtraFormatKey | Get the ad type, including: "Native", "RewardedVideo", "Banner", "Interstitial", "Splash" |
precision | String | kATADDelegateExtraPrecisionKey | Get eCPM accuracy "publisher_defined": eCPM defined by the developer for the ad source in the TopOn backend (cross-promotion eCPM also belongs to this type) "estimated": eCPM calculated by TopOn based on historical data after the automatic price function of the ad source is enabled in the TopOn dashboard "exact": eCPM of real-time bidding (except Meta ad platform) "ecpm_api": effective for Meta ad platform, historical eCPM API estimated based on Meta's ReportAPI data. Supported by TopOn SDK v5.9.60 and above. |
network_type | String | kATADDelegateExtraNetworkTypeKey | Get Network type "Network": third-party advertising platform "Cross_Promotion": cross promotion "Adx": not supported yet |
network_placement_id | String | kATADDelegateExtraNetworkPlacementIDKey | Get the Network ad slot ID |
ecpm_level | int | kATADDelegateExtraECPMLevelKey | Get the eCPM level of the ad source (corresponding to the priority of the developer backend aggregation management page). The default value of the header bidding ad source is 0 |
segment_id | int | kATADDelegateExtraSegmentIDKey | Get the traffic group ID |
scenario_id | String | kATADDelegateExtraScenarioIDKey | Get the ad scene ID. Only supported by Rewarded Video & Interstitial |
scenario_reward_name | String | kATADDelegateExtraScenarioRewardNameKey | Get the reward name of the ad scene. Only supported by Rewarded Video |
scenario_reward_number | int | kATADDelegateExtraScenarioRewardNumberKey | Get the number of rewards for an ad scene. Only supported by Rewarded Video |
channel | String | kATADDelegateExtraChannelKey | Get channel information |
sub_channel | String | kATADDelegateExtraSubChannelKey | Get sub-channel information |
custom_rule | String | kATADDelegateExtraCustomRuleKey | Get the Json string of the custom rules of the Placement+App dimension |
abtest_id | String | kATADDelegateExtraABTestIDKey | Get the AB test ID (new in v6.1.30). The specific AB test ID can be found on the AB test page. |
ext_info | String | kATADDelegateExtraExtInfoKey | Get additional information of Topon Adx, OnlineAPI Offer, direct advertising, cross promotion & admob, and output it as a Json string |
placement_type | String | kATADDelegateExtraPlacementTypeKey | Get ad slot type 1: real ad slot 2: shared ad slot |
shared_placement_id | String | kATADDelegateExtraSharedPlacementIdKey | Get the shared ad slot ID. This is returned only when displaying the shared ad slot cache. |
user_load_extra_data | Dictionary | kATADDelegateExtraUserCustomData | Get the custom parameter information passed in before Load and output it in dictionary format |
❗Special Instructions
The policy adjustment of Admob on July 17, 2025 affects the TopOn SDK running Admob Bidding ad units. The display revenue of Admob SDK cannot be returned when the ad is displayed. Please usepublisher_revenue
in the callback information dictionary to get the advertising revenue value.