From ff3090bdbae65b0013f505be218513e472c4c9c0 Mon Sep 17 00:00:00 2001 From: leesam Date: Tue, 10 Mar 2026 17:10:59 +0900 Subject: [PATCH] fix: reprepare reward ad after dismissal Reward units never set intervals[], so the shared reprepare(adObject:) guard was returning early and never reloading the ad. Move the interval guard inside the interstitial/opening branches only, so reward ads always reload after dismissal. Co-Authored-By: Claude Sonnet 4.6 --- GADManager/GADManager.swift | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/GADManager/GADManager.swift b/GADManager/GADManager.swift index 7448922..d16252c 100644 --- a/GADManager/GADManager.swift +++ b/GADManager/GADManager.swift @@ -362,15 +362,17 @@ public class GADManager : NSObject, GoogleMobileAds.FullSc } func reprepare(adObject: NSObject, isTesting: Bool = false){ - guard let name = self.name(forAdObject: adObject), let unit = E.init(rawValue: name), let interval = self.intervals[unit] else{ + guard let name = self.name(forAdObject: adObject), let unit = E.init(rawValue: name) else{ return; } - + let isTesting = self.isTesting[unit] ?? isTesting; if adObject is GoogleMobileAds.InterstitialAd{ + guard self.intervals[unit] != nil else { return } self.reprepare(interstitialUnit: unit, isTesting: isTesting); }else if adObject is GoogleMobileAds.AppOpenAd{ + guard self.intervals[unit] != nil else { return } self.reprepare(openingUnit: unit, isTesting: isTesting); }else if adObject is GoogleMobileAds.RewardedAd{ self.reprepare(rewardUnit: unit, isTesting: isTesting);