In this section you will learn what to do with some of the most common error messages you will get when loading ads.
1. No Fill
- Placement/Country/Frequency configuration
Check your configuration here to see if it allows your ads to fill.
- Switch to a new mobile device, or a new IP address
To rule out the possibility of device or country related cause.
- Make sure the GooglePlay services is present and enabled on your device
OpenMediation SDK functions on top of the GooglePlay services. In the rare cases developers have reported some custom ROMs do not include the GooglePlay services or fail to let the SDK interact with it.
- Make sure the mediated adNetworks and their adapters are present
2. Not init
- Make sure init() was called
Refer to the Guide of Android SDK Integration and follow the details about initialization to make sure the SDK initialization is performed correctly.
- Diagnose initialization failure
See here to find the cause of the error when initialization onError callbacks are triggered, and follow the Guide of Android SDK Integration to make sure the SDK integration is performed correctly..
3. Init is running
- SDK initialization is not complete when an ad is about to load
Always wait until the initialization phase is over before trying to load any ads. It is a good choice to invoke the first load method in the onSuccess callback.
4. Placement type match error
- Check if the placement type matches the SDK method type you called in your app
Log on to the OpenMediation Platform and check your placement type.
5. Placement id is empty
- Pass the correct placement ID
Make sure the placement ID in your code is correct.
6. Activity is null or destroyed
- The activity instance was destroyed before ad loading
Make sure the activity instance would not be destroyed.
7. Config does not contain this placement
- PlacementId and appKey mismatch
Check if the placementId belongs to the app corresponding to the appKey.
- PlacementId not matching configuration
Logon to the OpenMediation Platform to make sure the PlacementId was actually configured.
8. This ad object has been destroyed
- The ad object was destroyed by calling the SDK's destroy()
Do not call destroy() on an ad object if you want to reference it later. Or re-create the object after it was destroyed.
9. Create ad object failed
- Something went wrong during the ad object creation
The object may be referenced but will likely malfunction. Go back to check what went wrong.
10. Callbacks not triggered
- The listener setup
Check whether the listener was set up correctly for the event type.
- Missing load()
Make sure you called ad load() in your app.
- Make sure you have added the adapter for that AdNetwork
SDK switches to a modular design, and developers need to have both the core SDK and the adapter for each AdNetwork to be able to mediate that AdNetwork through Open. Failing to do so will result in no ad requests to be sent to the AdNetwork, and no corresponding callback to be tiggered.
- Rare case scenario: wait out the timeout
All of your ads are waiting for the resources to be downloaded from the internet. Sometimes they are done in parallel, and occasionally due to reasons like poor connection, none of them could be completed before it times out, so your callbacks don't get called.
Grab a coffee, sit back and relax a bit when you give it a couple of more tries and wait it out. You should eventually get a "No fill" in one of the failed callbacks in the worst case where it keeps timing out.
Article is closed for comments.