字节小程序
开发者社区
小程序小游戏
登录
小游戏广告无法加载和显示

小游戏广告无法加载和显示

923浏览作者: danxm

创建激励广告成功,但是显示不出来,加载也没反馈。

在开发者工具中的打印如下:


[TMG] [v-ad] createVideoAd success {errMsg: "createVideoAd:ok"}

load 之后就没有任何输出!麻烦帮忙看下!

没有资源的话,也要超时啊,不然很尴尬啊,直接卡死了。

/**
     * 显示激励广告
     * @param adId 广告单元 ID
     * @param promiseFunc
     * @returns 
     */
    showRewardedVideo(adUnitId: string, promiseFunc: IPromiseFunc<IResult<number>>): Promise<IResult<number>> {
        // 用户触发广告后,显示激励视频广告
        return promiseFunc(rs => {
            const that = this;

            let onceResolve = N_CALL(rs, 1);
            // 延迟创建机制:如果没有激励视频,那么创建一个单例...
            const videoAd = tt.createRewardedVideoAd({
                adUnitId: adUnitId
            });
            videoAd
                .load()
                .then(() => {
                    console.log(`激励广告加载完毕`)
                    videoAd
                        .show()
                        .then(()=> {
                            console.log(`激励广告 show 完毕`)
                        })
                        .catch(() => {
                            console.log(`激励广告 show catch`)
                            onceResolve(result.FAIL(ETTADErrCode.AD_SHOW_FAIL));
                        })
                })
                .catch(() => {
                    console.log(`激励广告 load catch`)
                    rs(result.FAIL(ETTADErrCode.AD_LOAD_FAIL))
                })

            videoAd.onError(err => {
                let DYErrCodeMap = {
                    1000: '后端接口调用失败',
                    1001: '参数错误',
                    1002: '广告单元无效',
                    1003: '内部错误',
                    1004: '无合适的广告',
                    1005: '广告组件审核中',
                    1006: '广告组件被驳回',
                    1007: '广告组件被封禁',
                    1008: '广告单元已关闭',
                    20002: '不支持 banner 广告 API',
                    120002: '广告发送次数已达当日上限',
                }
                console.log(`播放广告失败: ${err.errCode} `, DYErrCodeMap[err.errCode]);
                onceResolve(result.FAIL(ETTADErrCode.AD_ERR_CODE));
            });
            videoAd.onClose(res => {
                /**
                 * 展示过一次激励视频广告后,后续需要展示插屏广告的情况下,需要与激励视频广告的展示间隔60s。
                 * https://developer.open-douyin.com/docs/resource/zh-CN/mini-game/develop/api/ads/interstitial-ad/interstitial-ad-notice
                 */
                that._nextInterstitialADTs = that.timeService.ts + 60;
                if (res && res.isEnded) {
                    // 正常播放结束,可以下发游戏奖励
                    onceResolve(result.SUCC(res.count));
                } else {
                    // 播放中途退出,不下发游戏奖励
                    onceResolve(result.FAIL(ETTADErrCode.AD_EXIT_WITHOUT_REWARD));
                }
            })
        });
    }
最后一次编辑于 2024年04月15日
加载中