1***@qq.com
1***@qq.com
  • 发布:2023-02-17 20:32
  • 更新:2023-09-13 02:06
  • 阅读:360

微信小程序激励视频回调要多久?

分类:uni-app

微信小程序激励视频回调要多久?已经一个小时了还没有收到回调呢?

2023-02-17 20:32 负责人:无 分享
已邀请:
7***@qq.com

7***@qq.com

建议你们看看 微信小程序 官方的文档。不用这么复杂。我把我代码粘出来给你们看看。。
在 onReady 里面初始化这个函数

//初始化激励
initVideoAd() {
if (uni.createRewardedVideoAd) {
rewardedVideoAd = uni.createRewardedVideoAd({
adUnitId: adConfig.video,
});
rewardedVideoAd.onLoad(() => {
console.log('激励视频加载成功');
})
rewardedVideoAd.onError((err) => {
console.log('激励视频加载失败', err)
})
rewardedVideoAd.onClose((res) => {
console.log('用户点击了【关闭广告】按钮', res);
if (res && res.isEnded || res === undefined) { // 小于 2.1.0 的基础库版本,res 是一个 undefined
console.log('视频正常关闭 下发奖励')
this.mode = '广告';
this.artworkMasterDownloadTap()
} else { // 播放中途退出,进行提示
uni.showToast({
title: '请观看完整视频进行下载',
icon: 'none'
})
}
})
}
},

触发这个就是显示广告

showVideoAd() { // 用户触发广告后,显示激励视频广告
if (rewardedVideoAd) {
rewardedVideoAd.show().catch((err) => {
console.error('激励视频显示失败', err);
// 失败重试
rewardedVideoAd.load()
.then(() => rewardedVideoAd.show())
.catch(err => {
console.log('激励视频 广告显示失败', err)
let title = this.videoAdErrHandle(err);
uni.showToast({
title: title,
icon: 'none',
duration: 2000
});
})
})
}
},

7***@qq.com

7***@qq.com

你写的不对吧?不是立即生效的吗?看看代码

  • 1***@qq.com (作者)

    我是直接复制的官方文档的例子,已经发在下面了 麻烦帮忙看下

    2023-02-18 12:21

  • 7***@qq.com

    回复 1***@qq.com: 抱歉,刚刚清理记录的时候才发现忘记回复你了。

    2023-09-13 02:07

1***@qq.com

1***@qq.com (作者)

'use strict';  

const crypto = require('crypto');  

const db = uniCloud.database();  

const collectionName = "ad-callback-log"; // 如果选择了腾讯云,需要手动预创建表  

class DB {  

    static save(data) {  
        return new DB().add(data);  
    }  

    add(data) {  
        const collection = db.collection(collectionName);  
        const data2 = Object.assign(data, {  
            ad_type: 0,  
            create_date: new Date()  
        })  
        return collection.add(data2);  
    }  
}  

exports.main = async (event, context) => {  
    //event为客户端上传的参数  
    console.log('event : ', event);  

    const {  
        path,  
        queryStringParameters  
    } = event;  

    const data = {  
        adpid: event.adpid,  
        platform: event.platform,  
        provider: event.provider,  
        trans_id: event.trans_id,  
        sign: event.sign,  
        user_id: event.user_id,  
        extra: event.extra  
    }  

    // 注意::必须验签请求来源  
    const secret =  
        ""; // uni-AD Web控制台,找到广告位,点击配置激励视频,展开当前广告位项,可看到生成的 Security key  
    const trans_id = event.trans_id;  
    const sign2 = crypto.createHash('sha256').update(`${secret}:${trans_id}`).digest('hex');  
    if (event.sign !== sign2) {  
        return null;  
    }  
    uniCloud.logger.log('adNotifyLog', data)  
    //请求转发  
    const res = await uniCloud.httpclient.request('', {  
        method: 'POST',  
        data: {  
            key:'',  
            info:data  
        },  
        contentType: 'json', // 指定以application/json发送data内的数据  
        dataType: 'json' // 指定返回值为json格式,自动进行parse  
    })  
    // 可选将回调记录保存到uniCloud,避免用户服务器没有响应时有日志可查,如果选择了保存记录需要做定时清理日志,避免日志过多影响性能  
    // try {  
    //   await DB.save(data);  
    // } catch (e) {  
    //   console.log(e);  
    // }  

    // 开发者在此处处理自己的回调业务,需要返回值  

    return {  
        isValid: true  
    }  
};  
1***@qq.com

1***@qq.com (作者)

这个是小程序激励视频广告的配置

DCloud_uniAD_HDX

DCloud_uniAD_HDX

点击关闭广告后5S内可收到回调结果

2***@qq.com

2***@qq.com

我也是,按照文档配置后一直没有,服务回调

1***@163.com

1***@163.com

请问解决了吗,我也遇到了这个问题

要回复问题请先登录注册