Untitled
user_8820868
swift
2 years ago
2.4 kB
438
Indexable
class AppDelegate:NSObject,UIApplicationDelegate{
func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey : Any]? = nil) -> Bool {
GADMobileAds.sharedInstance().start()
return true
}
}
class InterstitialAdsManager: NSObject, GADFullScreenContentDelegate, ObservableObject {
// Properties
@Published var interstitialAdLoaded:Bool = false
var interstitialAd:GADInterstitialAd?
override init() {
super.init()
}
// Load InterstitialAd
func loadInterstitialAd(){
GADInterstitialAd.load(withAdUnitID: "ca-app-pub-5210617288495859/1394707600", request: GADRequest()) { [weak self] add, error in
guard let self = self else {return}
if let error = error{
print("🔴: \(error.localizedDescription)")
self.interstitialAdLoaded = false
return
}
print("🟢: Loading succeeded")
self.interstitialAdLoaded = true
self.interstitialAd = add
self.interstitialAd?.fullScreenContentDelegate = self
}
}
// Display InterstitialAd
func displayInterstitialAd(){
let scenes = UIApplication.shared.connectedScenes
let windowScene = scenes.first as? UIWindowScene
guard let root = windowScene?.windows.first?.rootViewController else {
return
}
if let add = interstitialAd{
add.present(fromRootViewController: root)
self.interstitialAdLoaded = false
}else{
print("🔵: Ad wasn't ready")
self.interstitialAdLoaded = false
self.loadInterstitialAd()
}
}
// Failure notification
func ad(_ ad: GADFullScreenPresentingAd, didFailToPresentFullScreenContentWithError error: Error) {
print("🟡: Failed to display interstitial ad")
self.loadInterstitialAd()
}
// Indicate notification
func adWillPresentFullScreenContent(_ ad: GADFullScreenPresentingAd) {
print("🤩: Displayed an interstitial ad")
self.interstitialAdLoaded = false
}
// Close notification
func adDidDismissFullScreenContent(_ ad: GADFullScreenPresentingAd) {
print("😔: Interstitial ad closed")
}
}
Editor is loading...
Leave a Comment