我有一个React-Native应用程序,它也安装了React-Native-Admob。我可以在应用内看到横幅,没有任何问题。但是,在显示插页式广告或奖励应用程序方面有些麻烦。
我更喜欢展示奖励的广告,所以我将从这个开始。用户可以免费将图片和信息上传到应用程序。单击报告按钮时,将打开一个模态,询问是否要付费。如果他们免费选择,则应该关闭模式并显示奖励应用程序。查看此内容后,上传应开始。
根据一个示例应用程序,我必须将它们放在ComponentdidMount中,所以我想将它们放置在useEffect挂钩中;
useEffect(() => {
AdMobRewarded.setTestDevices([AdMobRewarded.simulatorId]);
AdMobRewarded.setAdUnitID('ca-app-pub-3940256099942544/5224354917');
AdMobRewarded.addEventListener('rewarded', reward =>
console.log('AdMobRewarded => rewarded', reward),
);
AdMobRewarded.addEventListener('adLoaded', () =>
console.log('AdMobRewarded => adLoaded'),
);
AdMobRewarded.addEventListener('adFailedToLoad', error =>
console.warn(error),
);
AdMobRewarded.addEventListener('adOpened', () =>
console.log('AdMobRewarded => adOpened'),
);
AdMobRewarded.addEventListener('videoStarted', () =>
console.log('AdMobRewarded => videoStarted'),
);
AdMobRewarded.addEventListener('adClosed', () => {
console.log('AdMobRewarded => adClosed');
AdMobRewarded.requestAd().catch(error => console.warn(error));
});
AdMobRewarded.addEventListener('adLeftApplication', () =>
console.log('AdMobRewarded => adLeftApplication'),
);
AdMobRewarded.requestAd().catch(error => console.warn(error));
}, [])
因此,当点击模式中的免费按钮时,就会调用addUsingAdHandler;
const addUsingAdHandler = () => {
setIsAddMode(false)
console.log('Rewared video is shown')
AdMobRewarded.showAd().catch(error => console.warn(error));
但是,当我查看此页面时,我会立即收到警告;
{"framesToPop":1, "code": "E_AD_FAILED_TO_LOAD","nativeStackIOS etc. etc.
Error: Cannot send request while another ad is being presented. Another rewarded ad may be requested after the current ad closes.
at createErrorFromErrorData (utils.js:6)
at RNAdMobRewarded.js:30
at RCTDeviceEventEmitter.emit (EventEmitter.js:189)
at MessageQueue.__callFunction (MessageQueue.js:366)
at MessageQueue.js:106
at MessageQueue.__guard (MessageQueue.js:314)
at MessageQueue.callFunctionReturnFlushedQueue (MessageQueue.js:105)
at RNDebuggerWorker.js:2
如果我忽略此警告,然后单击免费按钮,则模态将按预期关闭,并且还会显示控制台日志“奖励视频”。但是,在日志之后,错误:广告尚未准备好显示。
所以我认为这是因为我使用的是来自Admob的测试ID,却没有在线激活我的帐户/应用中的奖励广告。因此,我拍摄了几天前启用的非页内广告。这将在没有任何警告的情况下起作用。但是,当关闭模式并显示广告时,什么也没有发生。
有人可以指导我让我的Admob与获得奖励的人一起工作吗?如果需要,我可以将代码再次更改为非页内广告,然后为您测试/显示代码。 React-native-cli:2.0.1 反应本机:0.59.10 React-native-admob:2.0.0-beta.6