我有一个 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 React-native:0.59.10 React-native-admob:2.0.0-beta.6