Closed usmanmalik333 closed 1 year ago
Same Issue. Getting Reward Video Error : No fill from ad server. Failed to load ad. Please help if anyone can. App Open Ads, Banner Ads and Interstitial ads are working fine.
Using TestIds.Rewarded
need solution for this
@application-inoviotech This probably has nothing to do with this react native lib. Answer from the official Google Mobile Ads SDK team: "If the application is not published to the Play store, it is possible that you might have low fill rates which explains the no fill issue." See: https://groups.google.com/g/google-admob-ads-sdk/c/q7q9kKPvTAk
My app is published to playstore and have more than 10k downloads @dylancom
I'm getting this error : Possible Unhandled Promise Rejection (id: 1): Error: RewardedAd.show() The requested RewardedAd has not loaded and could not be shown. @dylancom
Sounds like you're calling .show() too early?
I'm calling it on button click @dylancom
const onPressWatchad = async () => {
rewarded.show(); }; @dylancom
if (loaded) {
rewarded.show()
}
this gives me always false @dylancom
Maybe rewarded.load(); is never reached in your code?
useEffect(() => { if (!isDownload) { rewarded.load(); const unsubscribeLoaded = rewarded.addAdEventListener( RewardedAdEventType.LOADED, () => { setLoaded(true); console.log('Ads Loaded Successfully'); }, );
const unsubscribeEarned = rewarded.addAdEventListener( RewardedAdEventType.EARNED_REWARD, reward => { console.log('reward', reward); }, );
return () => { unsubscribeLoaded(); unsubscribeEarned(); }; } }, []); this is my useeffect @dylancom
this returns me always false @dylancom
code don't goes in this function const unsubscribeLoaded = rewarded.addAdEventListener( RewardedAdEventType.LOADED, () => { setLoaded(true); console.log('Ads Loaded Successfully'); }, ); @dylancom
need your help in this @dylancom
As your code is in a conditional, might be that rewarded.load(); never gets called. It has to be something in your code, I just ran our example app and it is loading rewarded ads without problems.
i have debug the code the rewarded.load(); is called but not load the ad @dylancom can i have your example code ?
I'm Loading the ad in useeffect and showing it through button @dylancom
Can we have video meet ? let me show you my code @dylancom
I have implement the banner and interstitial ads both are working fine but rewarded ads are not working
now getting this error: error reward [Error: [googleMobileAds/no-fill] No fill.]
now getting this error: error reward [Error: [googleMobileAds/no-fill] No fill.] @dylancom
@dylancom
I'm getting this error my all other ads are working fine but in case of rewarded ads im getting this error : error reward [Error: [googleMobileAds/no-fill] No fill.] @dylancom @application-inoviotech @mikehardy @Ehesp Kindly need your help
Is your app published? You likely won't get fills fir that type unless it is published and you are using the published version
Also, please understand 7 posts like that is essentially spam. Please be reasonable with support expectations.
yes my app is published and I'm using it with test ids @mikehardy My other all ads are working fine with test ids
I have the same error. Surely I loaded an ad first and tried to show the ad, but it is said that I never loaded.
I'm having this error too. Any solutions?
Hello 👋, to help manage issues we automatically close stale issues.
This issue has been automatically marked as stale because it has not had activity for quite some time.Has this issue been fixed, or does it still require attention?
This issue will be closed in 15 days if no further activity occurs.
Thank you for your contributions.
I found a solution. I don't know exactly whether it's to prevent the abuse or for some reason, but after running rewarded.show(), you need a delay to prepare for the next rewareded ads
So you need a guard which won't run the show until the next rewarded ad is ready
const [loaded, setLoaded] = useState(false)
const rewardedRef = useRef<RewardedAd | null>(null)
useEffect(() => {
const rewarded = RewardedAd.createForAdRequest(adUnitId, {
requestNonPersonalizedAdsOnly: true,
})
rewardedRef.current = rewarded
const unsubscribeLoaded = rewarded.addAdEventListener(
RewardedAdEventType.LOADED,
() => {
setLoaded(true)
},
)
const unsubscribeEarned = rewarded.addAdEventListener(
RewardedAdEventType.EARNED_REWARD,
(reward) => {
rewarded.removeAllListeners()
},
)
rewarded.load()
return () => {
unsubscribeLoaded()
unsubscribeEarned()
}
}, [])
const onPressWatchad = () => {
if (rewardedRef.current !== null) {
if (loaded) { // <= add this
rewardedRef.current.show()
setLoaded(false) // <= add this
}
}
Eu resolvi dessa forma...
Envolva seu código de exibição em um block try
function showAdsOnPress() { try { rewarded.show(); } catch (error) { console.log(Falhou ao abrir, error); rewarded.load(); } }
What happened?
const [loaded, setLoaded] = useState(false);
const rewarded = RewardedAd.createForAdRequest(TestIds.REWARDED); useEffect(() => { if (!isDownload) { rewarded.load(); const unsubscribeLoaded = rewarded.addAdEventListener( RewardedAdEventType.LOADED, () => { setLoaded(true); console.log('Ads Loaded Successfully'); }, );
}, []);
const onPressWatchad = async () => {
}; useEffect(() => { if (!loaded) { rewarded.load(); } }, [loaded]);
giving error :
Possible Unhandled Promise Rejection (id: 1): Error: RewardedAd.show() The requested RewardedAd has not loaded and could not be shown.
Platforms
Only on Android
React Native Info
Are your using Typescript?
package.json
app.json
ios/Podfile
No response
android/build.gradle
No response
android/app/build.gradle
No response
android/settings.gradle
No response
AndroidManifest.xml
No response