React-Native-Admob非页内广告和奖励广告未按预期显示

时间:2020-01-08 19:10:06

标签: react-native admob admob-rewardedvideoad

我有一个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

0 个答案:

没有答案