Small one, spotted next to the rewarded-ad issue. In AdManager.showRewardAd, the FullScreenContentCallback is attached AFTER show() has already been called:
rewardID = rewardedAd;
rewardedAd.show(context, rewardItem -> {}); // shown first
rewardedAd.setFullScreenContentCallback(new FullScreenContentCallback() { // callback set after
@Override public void onAdDismissedFullScreenContent() { ... }
@Override public void onAdClicked() { isClickedAd = true; }
});
The full-screen content callback should be set before calling show(), otherwise there's a window where early lifecycle events (impression/clicked/dismissed if the ad resolves very fast) can fire before the callback is registered and get missed. AdMob's own guidance is to set the callback before show. Swap the order so the callback is attached first, then show().
File: android/src/com/focus/kingdom/platform/AdManager.java, showRewardAd, around line 127-142.
Small one, spotted next to the rewarded-ad issue. In AdManager.showRewardAd, the FullScreenContentCallback is attached AFTER
show()has already been called:The full-screen content callback should be set before calling show(), otherwise there's a window where early lifecycle events (impression/clicked/dismissed if the ad resolves very fast) can fire before the callback is registered and get missed. AdMob's own guidance is to set the callback before show. Swap the order so the callback is attached first, then show().
File:
android/src/com/focus/kingdom/platform/AdManager.java, showRewardAd, around line 127-142.