Fabric - MoPub: No ads found for ad unit - ios

I am currently developing an iOS app (could be Android or sth else, that's not the issue here) and have just included the MoPub kit through fabric in order to monetize the app through ads.
After implementing a full screen/interstitial ad with the test unit id, the interstitial shows perfectly. However, when using my personal ad unit ID, the ad doesn't show up. What I get from the console is the following:
MOPUB: Interstitial controller is loading ad with MoPub server URL: https://ads.mopub.com/m/ad?v=8&udid=ifa:XXXX&id=1234567890&nv=4.7.0&o=p&sc=2.0&z=+0100&mr=1&ct=2&av=1.5&cn=EE&iso=gb&mnc=30&mcc=234&dn=iPhone7%2C2&w=640&h=1136&bundle=com.company.appId
MOPUB: Interstitial ad view is fetching ad network type: clear
MOPUB: No ads found for ad unit: 1234567890
N.B: if I do the exact same process with the banner, no issues; for some reason I ignore, it only happens to me with the interstitial.
Does anyone know how to solve this issue?

One thing I noticed is that it takes steady requests to get the ad unit 're-loaded' and be responsive. If there has been a period of no requests. I think it is officially referred to as a "warm up" period. But you can 'stim' your ad unit by making and saving a change to the ad unit on the MoPub portal. I usually get a better response if I make an edit (then change it back) a few minutes before testing. This is just an empirical observation.
Edit Just had another parting thought. Make sure your NOT paused in the segment for all networks for that ad unit!

It happened to me when I tried to load a fullscreen ad with image creatives that exceeded the size available to show them in the app.

Related

Google AdMob Publisher data not found. error iOS

I have a problem with AdMob.I add all implementations for AdMob.When I tried I had an error: Publisher data not found. Then I searched on google. They mention to check id but it is no problem with my id. (My ad type is rewarded)
Google gives next recommendations:
...Always test with test ads
When building and testing your apps, make sure you use test ads rather
than live, production ads. Failure to do so can lead to suspension of
your account.
The easiest way to load test ads is to use our dedicated test ad unit
ID for iOS rewarded ads:
ca-app-pub-3940256099942544/1712485313
It's been specially configured to return test ads for every request,
and you're free to use it in your own apps while coding, testing, and
debugging. Just make sure you replace it with your own ad unit ID
before publishing your app...
More information here

Google ads are not showing in a particular app

I am getting the following error when loading an interstitial in an iOS app:
Error Domain=com.google.ads Code=1 "Request Error: No ad to show." UserInfo={NSLocalizedDescription=Request Error: No ad to show., NSLocalizedFailureReason=Request Error: No ad to show.}
I have tried with various live AD IDs, but the ad never shows. However, if I use a test AD ID, the ad shows.
If I use the live AD IDs in other apps, the ads show. It seems that the problem is with the particular app when using live AD IDs.
Any help?
Mainly there are 2 types of Google Ads, Banner ads and Interstitial ads. Banner ads are received as a complete view from the Google API's, whereas for interstitial ads you only get the params that you can display on your custom UI.
For live Ad ID's to work, you need to get your App whitelisted by Google. Since you are able to use the test Ad ID's and not the live Ad ID's, your app might not have been whitelisted yet. After your app gets whitelisted you should be able to receive the ads from Google Ads.
In addition to #Krishna's answer: the issue may be simply that there are no ads to show. Google tries to pick an ad based on targeting parameters that you pass in (e.g. location), user's AdID (a unique ad-specific identifier used for targeting) and your AdUnitID settings (on the server side) and other things (device type, possibly IP address, current time, etc.). Sometimes it just can't find a suitable ad.
In test mode you always get an ad (for testing purposes). But, of course, I'd recommend exploring the "whitelisting" first.

AdMob displays different Ads with same ID on iOS

I’ve made a game with libgdx, and imported Google Ads SDK to add ads.
I downloaded a sample project to see how I should have imported Interstital.
But soon I found out that the interstial shown in my app were very different from the one shown in the sample project, but I don’t know why
Does somebody knows what this could be all about?
Sample project interstitial:
My game interstitial:
EDIT: the two projects use the same AdMob account and Ad ID
You can't fully control what you want the users to see in your Interstitial ad. And you have to be mindful of the Google AdMob's best practices and policies too.
If you want a custom layout, you can use Native Ads Advanced (Unified) https://developers.google.com/admob/ios/native-unified
And if you ONLY want a video rewarded ad, there's another format of ad available:
Rewarded Video Ads https://developers.google.com/admob/ios/rewarded-video
I hope this helps.
EDIT: OP knows the info above, apparently. What OP wanted to know is the reason why the two projects have different ad content.
There should be multiple reasons why you experienced that.
Bundle Ids of the apps.
Either of the two projects has set test device id (or simulator id) to generate test ad, and the other one has not, thus giving you different ads.
Some AdMob's FAQs:
Do I have to choose which ads to show in my app?
No. AdMob automatically serves ads to your apps from the AdMob Network
and third-party networks of your choosing. These ads can be targeted
to your app content and audience.
If you do want control over what appears in your app, you can block
ads from certain advertisers and categories from being shown in your
app.
Who decides which ads to show in my app?
AdMob uses an ad auction to automatically select the ads that will
appear on your pages from all the available ad sources. Generally, the
highest performing ads will be shown in your app.
If you do want control over what appears in your app, you can block
ads from certain advertisers and categories from being shown in your
app.
To know more, read: https://support.google.com/admob/answer/7356092?hl=en

AdMob Automatically Requesting Another Interstitial Ad

I'm seeing some very strange behavior with AdMob interstitials on iOS.
After closing an interstitial, AdMob automatically requests another interstitial without me creating a new GADInterstitial or calling loadRequest.
I can see this because I use GADCustomEventInterstitals, and I log when they're being used.
The next time I allocate a GADInterstitial and call loadRequest, AdMob loads the ad immediately without running through the ad mediation stack. The ad it loads is the one that was received when AdMob requested an ad without me asking for it.
It's as if AdMob is trying to automatically cache the next ad as soon as the previous ad has finished. I don't particularly want this behavior, and if I did, I could implement it myself.
In testing different versions of the Google-Mobile-Ads-SDK, I noticed that this behavior doesn't occur in version 7.6. But it does happen in version 7.16, 7.19, and 7.26.
Has anyone else noticed this sort of thing? Is there a way to turn it off or prevent it from happening?

iAds: Displaying own ads when didFailToReceiveAdWithError

Outside the US and a few other countries (UK, France, Deutschland, Italia, España, Japan/日本), ads from the iAd Network aren't showing up much on iOS, yet.
In the meantime, besides using AdMob and the like to fill the blanks, I wonder if it's possible to display our own ads built with the iAd Producer.
So, the mechanism would be that when advertisements are not available, therefore triggering bannerView:didFailToReceiveAdWithError:, it triggers our own ad instead.
If so, any ideas on: (1) if it's effectively possible to run our own iAd-Producer ads; (2) if so, how to implement that mechanism?
You can also create what adMob calls "In-house" ads. You can upload an image to use as the ad, or simply specify some text and a small icon and AdMob will make it look like their standard ads. This way, you can have your house ads filling up the remaining inventory when iAds aren't being displayed (100% house ads), or whatever amount of space you would like.
I've built an open-source library to handle both iAds and fallback AdMob ads in a single container with a single line of code in each view. This allows me to customize everything about my users' ad experience when there are no iAds to display. Just set your google publisher id to your account's and you're good to go.
You can use custom events in AdWhirl to basically make your iAd-Producer ads its own ad network, where you can assign it a percentage and backfill order.
You will have to implement the code to create the ad and replace the bannerView with your new ad.

Resources