facebook instantgame 广告无法展示

最近刚刚开始研究facebook 的 instantgame,用官方提供的6.0版本的sdk,现在想展示广告,已经设置好了广告的id,但是确无法正常的展示广告
变量是这样定义的
@property
videoAdId:string="";
//@property
videoAd=null;

@property
picAdId:string="";
//@property
picAd=null;

id在编辑器里面填写

这个是预加载
LoadVideoAd()
{

    FBInstant.getRewardedVideoAsync(
        this.videoAdId, // Your Ad Placement Id
      ).then(function(rewarded) {
        // Load the Ad asynchronously
        this.videoAd = rewarded;
        return this.videoAd.loadAsync();
      }).then(function() {
        console.log('Rewarded video preloaded')
        Logger.instance.log('Rewarded video preloaded');
        // Ad loaded
        //this.showVideoButton.color=cc.Color.GREEN;
      }).catch(function(err){
        console.error('Rewarded video failed to preload: ' + err.message);
        Logger.instance.log('Rewarded video failed to preload: ' + err.message);

      });
}

这个是展示
ShowVideoAdCLick()
{
this.videoAd.showAsync()
.then(function() {
// Perform post-ad success operation
console.log(‘Rewarded video watched successfully’);
//video Ad watch
//this.showVideoButton.color=cc.Color.RED;
//再加载
this.LoadVideoAd();
})
.catch(function(e) {
console.error(e.message);
Logger.instance.log(e.message);
});

}

在iphone上 预加载的时候 显示预加载成功,但是却无法展示出来
在安卓手机上,预加载的时候直接失败了,显示错误“Client does not support the message:getrewardedvideoasync”

这里有人成功搞定了instantgame 的广告了吗?

1赞

补充一下
广告位已经设置OK 显示投放中 id也确认过没问题

直接用官网的写法

var ad = null;
FBInstant.getRewardedVideoAsync(
‘my_placement_id’,
).then(function(rewardedVideo) {
ad = rewardedVideo;
return ad.loadAsync();
}).then(function() {
// Ad loaded
return ad.showAsync();
}).then(function() {
// Ad watched
});

这样在iphone上是可以的,是我ts的语法不对吗?
但是在安卓上还是不行

准备接instant game ,不懂帮顶。遇到问题向你请教啊~:slightly_smiling:

1赞

我也遇到类似问题,如果有解决方案,麻烦您告知一下,万分感谢!

你好,我也遇到了你同样的问题,我按照官方的例子,在安卓里面显示的是“no fill”或者“ads_no_fill”;广告位设置也没问题,但是不知道为什么就是不能显示
FBInstant.getInterstitialAdAsync(id)
.then(interstitial => {
if(typeof interstitial !== ‘undefined’){
if (typeof interstitial.getPlacementID() === ‘undefined’){
this.setState({
adId: ‘can not get placement ID’
})
}
window.preloadedInterstitial = interstitial;
return window.preloadedInterstitial.loadAsync()
}else{
return Promise.reject(new Error(‘interstitial is undefined’))
}
})
.then(() => {
window._adsLoad = ‘ADV_LOADER’;
this.setState({
adId:‘ADV_LOADER’
})
})
.catch(error => {
window._adsLoad = error.code;
this.setState({
adId:error.code
})

			})

楼主广告的测试怎么解决的?据说是因为咱们的ID在中国,所以手机上小游戏都不能玩,也就没法测试

敢问楼主大大,那个广告的Id是怎么搞到的???

看FacebookInstantgame文档中的 指南 广告介绍

好的,我去找找看,最近才开始做Facebook instant game,所以了解的比较少!谢谢

因为你执行ShowVideoAdCLick的时候,videoAd还没有加载完 ,才能去点击调用showAsync,视频又分奖励视频跟插件视频,相应的ID要对应好就行,而且只能用手机在FB环境测试,
详情:https://developers.facebook.com/docs/games/instant-games/guides/ads-monetization

你的广告测试功能搞定了嘛?

楼主是怎么测试这个广告的啊?在iOS和Android上用Facebook打开小游戏测试?我接入了广告,但是就是不知道怎么看效果:sweat:

没测试呢,不知道咋测

你申请了吗?这个要申请的

申请了 广告版位 ,但必须在移动设备上才能测。但移动设备上,咱们中国的好像不能玩

应该可以吧,好多人都可以用的啊

我的也是这个问题 在苹果设备上广告播放正常 但在安卓设备上不能播放 我通过这个FBInstant.getSupportedAPIs() 这个API试过了 我自己的安卓设备是没有getRewardedVideoAsync这个API的 但在苹果设备上是有的 不清楚是怎么回事 有知道的大神求告知下 谢谢:pray:

同样的问题,目前看android上的游戏也是基本上没有广告的,觉得可能广告还不支持在android上吧。但是目前我ios上边请求加载广告,没有加载成功的回应,也没有报错。。。

1赞

我这怎么在苹果机上运行,总显示 意外加载错误,游戏不能加载。。。。。而且所有的小游戏都不能玩