Fableon/Fableon/Object/Libs/AdManager/Rewarded/FATradPlusRewardedAd.swift
2026-02-04 17:25:54 +08:00

91 lines
2.2 KiB
Swift

//
// FATradPlusRewardedAd.swift
// Fableon
//
// Created by on 2026/1/24.
//
import UIKit
#if canImport(TradPlusAds)
import TradPlusAds
#endif
class FATradPlusRewardedAd: NSObject, FARewardedAd {
#if canImport(TradPlusAds)
private var rewardedAd: TradPlusAdRewarded?
#endif
weak var delegate: FARewardedAdDelegate?
var adPlatform: FAAdPlatform = .tradPlus
var adType: FAAdType {
return .rewarded
}
var adUnitID: String {
return self.adPlatform.rewardedUnitId
}
var networkName: String = ""
var isReady: Bool {
#if canImport(TradPlusAds)
return self.rewardedAd?.isAdReady ?? false
#else
return false
#endif
}
func loadAd() {
#if canImport(TradPlusAds)
rewardedAd = TradPlusAdRewarded()
rewardedAd?.setAdUnitID(self.adUnitID)
rewardedAd?.delegate = self
rewardedAd?.loadAd()
#endif
}
func showAd() {
#if canImport(TradPlusAds)
guard isReady else { return }
self.rewardedAd?.showAd(withSceneId: nil)
#endif
}
}
#if canImport(TradPlusAds)
extension FATradPlusRewardedAd: TradPlusADRewardedDelegate {
func tpRewardedAdLoaded(_ adInfo: [AnyHashable : Any]) {
self.networkName = (adInfo["adNetworkName"] as? String) ?? "unknown"
self.delegate?.fa_rewardedAdDidLoadFinish(ad: self)
}
func tpRewardedAdLoadFailWithError(_ error: any Error) {
self.delegate?.fa_rewardedAd(ad: self, didLoadFail: error)
}
func tpRewardedAdImpression(_ adInfo: [AnyHashable : Any]) {
self.delegate?.fa_rewardedAdDidShow(ad: self)
}
func tpRewardedAdShow(_ adInfo: [AnyHashable : Any], didFailWithError error: any Error) {
self.delegate?.fa_rewardedAd(ad: self, didDisplayFail: error)
}
func tpRewardedAdClicked(_ adInfo: [AnyHashable : Any]) {
self.delegate?.fa_rewardedAdDidClick(ad: self)
}
func tpRewardedAdDismissed(_ adInfo: [AnyHashable : Any]) {
self.delegate?.fa_rewardedAdDidDismiss(ad: self)
}
func tpRewardedAdReward(_ adInfo: [AnyHashable : Any]) {
// self.delegate?.fa_rewardedAdDidShow(ad: <#T##any BRRewardedAd#>)
}
}
#endif