This is my code.
var ad;
FBInstant.getRewardedVideoAsync('1234_1234')
.then(function(rewardedVideo) {
if(typeof rewardedVideo !== 'undefined'){
if(typeof rewardedVideo.getPlacementID() === 'undefined'){
console.log('can not get placement ID')
}
ad = rewardedVideo;
return rewardedVideo.loadAsync()
} else {
return Promise.reject(new Error('rewardedVideo is undefined'))
}
})
.then(function(){ //adv loaded
console.log('adv loaded')
})
.catch(function(error){
console.log(error.code, error.message);
});
I always get {code: "ADS_NO_FILL", message: 'No fill'}. The document said: "ADS_NO_FILL string We were not able to serve ads to the current user. This can happen if the user has opted out of interest-based ads on their device, or if we do not have ad inventory to show for that user."
But my app still in development.
These days I had the same problem as you, but found the solution!
The fact that your app is "in development" doesn't mean that you can't see live ads. You have the right code in your Facebook Instant Game, i guess you have obtained a real
INTERSTITIAL_PLACEMENT_ID
especially for your Game using the Monetization Manager.Once you get the
ADS_NO_FILL
error, the status in Monetization Manager changes from Awaiting integration into Successful ad delivery besides the error. To view live ads, you need to specify your payment information (your personal and bank data, especially the IBAN number for the income account). Then live ads will be served (regardless of your game being not approved by Facebook).