5.1 Troubleshooting Guide
This guide is for developers who have completed the Mediation SDK integration but cannot load or display ads. Troubleshoot in this order: initialization → cloud configuration → ad source integration → request and fill → display. Do not click production ads unless test mode has been confirmed.
30-Second Checklist
- Use the current documented version of
mediation-liband the corresponding ad source*-lib. Do not mix versions. - Initialize with a valid production App ID and confirm that the application package name matches the platform configuration.
- Make sure the Placement ID, ad format, and API match. For example, use
TInterstitialAdfor an interstitial placement. - Confirm that the device is online and its country or region is included in the placement's delivery scope.
- Complete the Integration Testing setup. Test mode may need to be configured separately for each ad source.
- Call
loadAd()only afteronCloudCompletehas finished. - Implement and record the error code and message returned by
onError()andonShowError().
Step 1: Confirm Initialization and Cloud Configuration
Set the cloud configuration callback during initialization and record its code and message. Request ads only after code == 0. Resolve initialization or cloud configuration errors first when the code is non-zero.
.setCloudCompleteListener(new TAdManager.OnCloudCompleteListener() {
@Override
public void onCloudComplete(int code, String message) {
// Record code and message with the application logging system
if (code == 0) {
// Request ads here
}
}
})
Common branches:
60001: The App ID is empty or invalid. Check the initialization parameters.70001–70006: A cloud request, App ID, package name, operating system, or platform application status error occurred.70007: No local placement configuration was found. Confirm that the placement is active and available in the current region, and load only after cloud configuration succeeds.70011–70013: No ad source is configured, the API does not match the ad format, or the placement is disabled.
See Error Location for the complete error-code actions.
Step 2: Confirm the Ad Source Integration
If cloud configuration succeeds but ads never load, check the following:
- The corresponding ad source
*-libis included and uses the same version asmediation-lib. - All platform-specific Maven repository, Manifest, App ID, ProGuard, and network requirements are configured.
- The ad source SDK version matches the Third-Party Library Compatibility table.
- If another ad source does not deliver ads, first confirm that it is integrated successfully. Enable SDK logs and check the following output.
exist = truemeans that the ad source is integrated:
For example:
...
platform classname = com.hisavana.adxlibrary.check.ExistsCheck exist = true
platform classname = com.hisavana.admoblibrary.check.ExistsCheck exist = true
platform classname = com.hisavana.fblibrary.excuter.check.ExistsCheck exist = true
...
Error 30001 normally indicates ad source initialization failure. Check dependencies and platform parameters first. If it persists, provide the complete initialization log to SDK support.
Step 3: Enable Logs and Record Callbacks
Use .setDebug(BuildConfig.DEBUG) to enable SDK logs in Debug builds, or run the following commands on a test device:
adb shell setprop log.tag.ADSDK DEBUG
adb shell setprop log.tag.AD_NET_LOG DEBUG
adb logcat | grep ADSDK
ADSDK_M contains the mediation flow logs, and ADSDK_N contains ad network request logs. Record the error code and message from onError() and onShowError() while reproducing the issue:
@Override
public void onError(TAdErrorCode errorCode) {
if (errorCode == null) {
return;
}
int code = errorCode.getErrorCode();
String message = errorCode.getErrorMessage();
// Record code and message with the application logging system
}
@Override
public void onShowError(TAdErrorCode errorCode) {
if (errorCode == null) {
return;
}
int code = errorCode.getErrorCode();
String message = errorCode.getErrorMessage();
// Record code and message with the application logging system
}
Step 4: Branch by Result
| Symptom | Common Error Codes | What to Check |
|---|---|---|
| Initialization or cloud configuration is incomplete | 60001, 70001–70007 | Check the App ID, package name, network, and platform configuration, then wait for the cloud callback |
| Ad source initialization fails | 30001 | Check the corresponding *-lib, platform App ID, Manifest, ProGuard rules, and version compatibility |
| Request times out or returns no fill | 20001–20008, 30002–30006, Hisavana SSP 9000 series | Check the network, test mode, placement delivery, platform inventory, and ad source parameters |
onLoad() fires but the ad cannot be displayed | 40001–40002, 50001, 60002, 60006–60007 | Display only after load success, ensure the object is not destroyed, avoid duplicate display, and check scene restrictions |
Only a successful onLoad() means that an ad has loaded. Use onShowError() to diagnose display-stage failures. Continue with Frequently Asked Questions for platform-specific issues.
Information to Include in a Support Request
If the issue remains unresolved, provide all of the following instead of only a screenshot saying that no ad appeared:
- Mediation SDK version and ad source Adapter version.
- Application package name, Placement ID, ad format, and target ad source.
- Incident time with time zone, country or region, network type, device model, and Android version.
- Whether test mode is enabled and whether a test or production placement is used.
- Complete
code/messagefromonCloudComplete,onError, oronShowError. ADSDK_MandADSDK_Nlogs from initialization through the failure callback.
Remove unrelated user information before sharing logs. Do not publish production App IDs, placement credentials, or complete ad responses.