You can obtain the AdInfo parameter by setting a listener, which allows you to retrieve information about the current ad.
| Method | Description |
|---|---|
| int getNetworkFirmId() | Gets the ID corresponding to the network, used to distinguish between different networks. Refer to TopOn Supported Networks |
| String getNetworkName() | Gets the name of the network |
| String getNetworkPlacementId() | Gets the ad placement ID of the network |
| String getAdsourceId() | Gets the ad source ID |
| int getAdsourceIndex() | Gets the position of the current ad source in the WaterFall (starting from 0, 0 is the highest priority) |
| double getEcpm() | Gets TopOn's estimated eCPM. For regular ad sources, this is the price set in the TopOn console; for bidding ad sources, it is the real-time bidding price. The currency unit can be obtained via getCurrency(), usually CNY or USD, and the precision via getEcpmPrecision(). eCPM means: estimated earnings per thousand ad impressions. For example, if ad source A has an eCPM of 1, then each impression yields 0.001. |
| String getEcpmPrecision() | Gets the eCPM precision. "publisher_defined": eCPM defined by the developer in the TopOn console (cross-promotion eCPM also belongs to this type) "estimated": eCPM calculated by TopOn based on historical data when auto-pricing is enabled "exact": Real-time bidding eCPM (except Meta network) "ecpm_api": For Meta ad sources, estimated historical eCPM based on Meta's ReportAPI data |
| String getCurrency() | Gets the currency unit for TopOn earnings. Based on the returned currency, determine the price unit for eCPM or revenue, usually CNY or USD. For example: "USD" means the returned price is in US dollars, and both getEcpm() and getPublisherRevenue() return prices in USD. |
| int isHeaderBiddingAdsource() | Indicates whether the ad source is header bidding: 1: Yes, 0: No |
| String getShowId() | Gets a unique ID generated for each ad display |
| double getPublisherRevenue() | Gets the estimated revenue for displaying a TopOn ad placement. The currency unit can be obtained via getCurrency(), usually CNY or USD, and the precision via getEcpmPrecision() |
| String getCountry() | Gets the country code, e.g., "CN" |
| String getPlacementId() | Gets the TopOn ad placement ID |
| String getAdFormat() | Gets the ad format, including: "Native", "RewardedVideo", "Banner", "Interstitial", "Splash" |
| String getAdNetworkType() | Gets the Network type "Network": Third-party network "Cross_Promotion": Cross-promotion "Adx": TopOn Adx |
| int getEcpmLevel() | Gets the eCPM level of the ad source (corresponds to "Priority" in the developer console's aggregation management page). Header bidding ad sources default to 0. |
| int getSegmentId() | Gets the traffic segment ID |
| String getScenarioId() | Gets the ad scenario ID |
| String getScenarioRewardName() | Gets the reward name for the ad scenario (Rewarded Video only) |
| int getScenarioRewardNumber() | Gets the reward amount for the ad scenario (Rewarded Video only) |
| String getSubChannel() | Gets sub-channel information |
| String getChannel() | Gets channel information |
| String getCustomRule() | Gets the custom rule for Placement+App dimension as a JSON string |
| String getABTestId() | Gets the AB test ID. You can query specific AB test IDs from the AB test page |
| Map getExtInfoMap() | Get creative_id(Reference 2.1) |
| Map getLocalExtra() | Gets local parameters passed before loading the ad. For example, for interstitial ads, returns the parameters from setLocalExtra(Map map) |
| int getPlacementType() | Gets the placement type: 1 for real placement, 2 for shared placement |
| String getSharedPlacementId() | Gets the shared placement ID (returned only when displaying shared placement cache) |
| double getBidFloor() | Returns the bid floor configured for bidding ad sources in the TopOn console |
| int getDismissType() | Gets the dismiss type, supported by Rewarded Video, Interstitial, and Splash ads. For specific enum values, see ATAdConst.DISMISS_TYPE |
| int getAdSourceAdType() | Gets the ad type of the current ad source (supported since v6.2.90) 0: Native 1: Rewarded 2: Banner 3: Interstitial 4: Splash When a Rewarded Video placement uses a Rewarded Video ad source, returns 1; when using an Interstitial ad source, returns 3; when using a Splash ad source, returns 4. |
| String getAdSourceCustomExt() | Gets custom parameters configured for the ad source in the TopOn console (supported since v6.2.90) |
| String getShowCustomExt() | (v6.3.10+) Gets custom parameters passed during display, corresponding to parameters passed via setShowConfig() |
| String getEncEcpmInfo() | (v6.3.65+) Gets encrypted eCPM information |
| int getSecretId() | (v6.3.65+) Gets the private key ID for decrypting eCPM information. You can find the corresponding private key in TopOn Console - Account Management - Key |
| String toString() | Gets all callback information as a JSON string. All key values are as follows: "id": getShowId() "publisher_revenue": getPublisherRevenue() "currency": getCurrency() "country": getCountry() "adunit_id": getPlacementId() "adunit_format": getAdFormat() "precision": getEcpmPrecision() "network_type": getAdNetworkType() "network_placement_id": getNetworkPlacementId() "ecpm_level": getEcpmLevel() "segment_id": getSegmentId() "scenario_id": getScenarioId() "scenario_reward_name": getScenarioRewardName() "scenario_reward_number": getScenarioRewardNumber() "channel": getChannel() "sub_channel": getSubChannel() "custom_rule": getCustomRule() "network_firm_id": getNetworkFirmId() "adsource_id": getAdsourceId() "adsource_index": getAdsourceIndex() "adsource_price": getEcpm() "adsource_isheaderbidding": isHeaderBiddingAdsource() "abtest_id": getABTestId() "ext_info": getExtInfoMap() "reward_custom_data": AdConst.KEY.USER_CUSTOM_DATA "user_load_extra_data": getLocalExtra() "placement_type": getPlacementType() "shared_placement_id": getSharedPlacementId() "bid_floor": getBidFloor() "dismiss_type": getDismissType() "ad_source_type": getAdSourceAdType() "ad_source_custom_ext": getAdSourceCustomExt() |
| NETWORK_CUSTOM_KEY | Description |
|---|---|
| OFFER_ID | Adx, OnlineAPI, direct ads, cross-promotion Offer's ad ID |
| IS_DEEPLINK_OFFER | Determines whether the Offer type for Adx, OnlineAPI, direct ads, cross-promotion is Deeplink or JumpURL. 0: No, 1: Yes |
//creative_id Access Point:
//v6.6.30+ Support begins
Map<String, Object> extInfoMap = adInfo.getExtInfoMap();
if(extInfoMap != null ) {
Object nwExtraInfo = extInfoMap.get("nw_extra_info");
if (nwExtraInfo instanceof JSONObject) {
String creativeId = ((JSONObject) nwExtraInfo).optString("creative_id", "");
}
}
❗ Special Note
Due to AdMob policy changes effective July 17, 2025, the AdMob SDK no longer returns impression revenue before the ad is displayed for AdMob Bidding ad units. Please useadInfo#getPublisherRevenue()andadInfo#getEcpm()to retrieve the ad revenue value.