Callback info content description for ad listener events:
| Variable | Type | Description |
|---|---|---|
| network_firm_id | int | Get the ID corresponding to the ad platform, used to distinguish ad platforms |
| adsource_id | string | Get the Ad Source ID. You can query specific Network information by Ad Source ID in the developer dashboard or via Taku Open API |
| adsource_index | int | Get the ranking of the current Ad Source in the WaterFall (starting from 0) |
| adsource_price | double | Get ECPM. The unit can be obtained via getCurrency() |
| adsource_isheaderbidding | int | Whether it is a header bidding ad source. 1: Yes, 2: No |
| id | string | Get the unique ID generated each time an ad is displayed |
| publisher_revenue | double | Get the impression revenue |
| currency | string | Get the currency unit, e.g. "USD" |
| country | string | Get the country code, e.g. "CN" |
| adunit_id | string | Get the Taku ad placement ID |
| adunit_format | string | Get the ad type, including: "Native", "RewardedVideo", "Banner", "Interstitial", "Splash" |
| precision | string | Get the ECPM precision "publisher_defined": The eCPM defined by the developer for the Ad Source in the Taku dashboard (cross-promotion eCPM also falls under this type) "estimated": Taku estimated eCPM (auto eCPM) "exact": Header Bidding real-time bidding eCPM (except for Meta ad platform) "ecpm_api": For Meta Ad Source, historical eCPM estimated based on Meta's ReportAPI data. Supported in Taku SDK v5.9.60 and above. |
| network_type | string | Get the Network type "Network": Third-party ad platform "Cross_Promotion": Cross-promotion "Adx": Taku Adx |
| network_placement_id | string | Get the Network's ad placement ID |
| ecpm_level | int | Get the eCPM level of the Ad Source. Header Bidding Ad Sources default to 0 |
| segment_id | int | Get the traffic group ID |
| scenario_id | string | Get the ad scenario ID |
| scenario_reward_name | string | Get the reward name of the ad scenario. Only supported for Rewarded Video |
| scenario_reward_number | int | Get the reward amount of the ad scenario. Only supported for Rewarded Video |
| sub_channel | string | Get sub-channel information |
| channel | string | Get channel information |
| custom_rule | Dictionary | Get the JSON string of the custom rules at Placement+App level |
Note: Currently only effective for Android Pangle
ATDownloadResponse property description:
DownloadStatus: Download status
placementID: placementID
extraMap: Callback info (see Ad Event Callback Content Description documentation)
totalBytes: Total file size (unit: bytes)
currBytes: Current downloaded size (unit: bytes)
fileName: File name
appName: App name corresponding to the file
downLoadListen() {
ATListenerManager.downloadEventHandler.listen((value) {
switch (value.downloadStatus) {
// Download started
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 update
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;
// Download paused
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 completed
case DownloadStatus.downloadFinished:
print("flutter downloadFinished ---- placementID: ${value.placementID}, totalBytes: ${value.totalBytes}, "
"fileName: ${value.fileName}, appName: ${value.appName}, extra: ${value.extraMap}");
break;
// Download failed
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;
// APK installation completed
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;
}
});
}