The callbackInfo content description of the callback for advertising listening events: one, two, three
| Variable | Type | Description |
|---|---|---|
| network_firm_id | int | Get the ID corresponding to the advertising platform, used to distinguish the advertising platform |
| adsource_id | string | Get ad source ID. You can query specific Network information through the advertising source ID in the developer backend or TopOn Open API |
| adsource_index | int | Get the current advertising source in Sorting in WaterFall(starting from 0) |
| adsource_price | dounble | Get ECPM, the unit can pass getCurrency() Get |
| adsource_isheaderbidding | int | Whether it is the advertising source for header bidding, 1: Yes, 2: No |
| id | string | Get the unique ID generated each time an ad is displayed |
| publisher_revenue | double | Get impression revenue |
| currency | string | Get the currency unit, for example: "USD" |
| country | string | Get the country code, for example: "CN" |
| adunit_id | string | Get TopOn ad slot ID |
| adunit_format | string | Get the ad type, including:"Native"、"RewardedVideo"、"Banner""Interstitial"、"Splash" |
| precision | string | Get ECPM Accuracy "publisher_defined": eCPM defined by the developer for the advertising source in the TopOn backend (eCPM for interactive promotion also belongs to this type) " estimated": TopOn's estimated eCPM (auto eCPM) "exact": Header Bidding real-time bidding eCPM (except Meta advertising platform) "ecpm_api ": Effective for Meta advertising sources, historical eCPM API estimated based on Meta's ReportAPI data. TopOn SDK v5.9.60 and above are supported. |
| network_type | string | Get Network type"Network": Third-party advertising platform "Cross_Promotion":Cross promotion "Adx":TopOn Adx |
| network_placement_id | string | Get the Network's advertising slot ID |
| ecpm_level | int | Get the eCPM level of the advertising source. The default value of the header bidding advertising source is 0 |
| segment_id | int | Get the traffic group ID |
| scenario_id | string | Get advertising scene ID |
| scenario_reward_name | string | Get the incentive name of the advertising scene, only supported by Rewarded Video |
| scenario_reward_number | int | Get the incentive number of the advertising scene, only supported by Rewarded Video |
| sub_channel | string | Get sub-channel information |
| channel | string | Get channel information |
| custom_rule | Dictionary<string,object> | Get the Json string of the custom rule of Placement+App dimension |
TopOn platform The NETWORK FIRM ID corresponds to the Network name
| Network Name | NETWORK FIRM ID |
|---|---|
| 1 | |
| Admob | 2 |
| Inmobi | 3 |
| Flurry | 4 |
| Applovin | 5 |
| Mintegral | 6 |
| Mopub | 7 |
| Tencent AD(GDT) | 8 |
| Chartboost | 9 |
| Tapjoy | 10 |
| Ironsource | 11 |
| UnityAds | 12 |
| Vungle | 13 |
| Adcolony | 14 |
| TT (CSJ) | 15 |
| Wanzhuanhulian | 16 |
| Oneway | 17 |
| Kingsoft Cloud | 19 |
| Appnext | 21 |
| Baidu | 22 |
| Nend | 23 |
| Maio | 24 |
| StartApp | 25 |
| Kuaishou | 28 |
| Sigmob | 29 |
| MyTarget | 32 |
| Yandex | 34 |
| Cross promotion ( MyOffer) | 35 |
| Ogury | 36 |
| Fyber | 37 |
| Helium | 40 |
| Kidoz | 45 |
| A4G | 48 |
| Pangle | 50 |
| You Keying (Klevin) | 51 |
| PubNative | 58 |
| Bigo | 59 |
| TopOn ADX | 66 |
| JD mediation | 72 |
Note: Currently only valid for Android TT(CSJ)
ATDownloadResponse attribute introduction:
DownloadStatus: download status
placementID: placementID
extraMap: callback information (refer to the document Advertising Events Callback content description)
totalBytes: total file size (unit: bytes)
currBytes: currently downloaded size (unit: bytes)
fileName : File name
appName: The application name corresponding to the file
downLoadListen() {
ATListenerManager.downloadEventHandler.listen((value) {
switch (value.downloadStatus) {
// Start downloading
case DownloadStatus.downloadStart:
print("flutter downloadStart ---- placementID: ${value.placementID}, totalBytes: ${value.totalBytes}, currBytes: ${value.currBytes}, "
"fileName: ${value.fileName}, appName: ${value.appName}, extra: ${value.extraMap}");
break;
// Download progress updates
case DownloadStatus.downloadUpdate:
print("flutter downloadUpdate ---- placementID: ${value.placementID}, totalBytes: ${value.totalBytes}, currBytes: ${value.currBytes}, "
"fileName: ${value.fileName}, appName: ${value.appName}, extra: ${value.extraMap}");
break;
// Pause download
case DownloadStatus.downloadPause:
print("flutter downloadPause ---- placementID: ${value.placementID}, totalBytes: ${value.totalBytes}, currBytes: ${value.currBytes}, "
"fileName: ${value.fileName}, appName: ${value.appName}, extra: ${value.extraMap}");
break;
// Download complete
case DownloadStatus.downloadFinished:
print("flutter downloadFinished ---- placementID: ${value.placementID}, totalBytes: ${value.totalBytes}, "
"fileName: ${value.fileName}, appName: ${value.appName}, extra: ${value.extraMap}");
break;
// Download failure
case DownloadStatus.downloadFailed:
print("flutter downloadFailed ---- placementID: ${value.placementID}, totalBytes: ${value.totalBytes}, currBytes: ${value.currBytes}, "
"fileName: ${value.fileName}, appName: ${value.appName}, extra: ${value.extraMap}");
break;
// The Apk installation is complete
case DownloadStatus.downloadInstalled:
print("flutter downloadInstalled ---- placementID: ${value.placementID}, "
"fileName: ${value.fileName}, appName: ${value.appName}, extra: ${value.extraMap}");
break;
case DownloadStatus.downloadUnknown:
print("flutter downloadUnknow");
break;
}
});
}