Troubleshooting with the SDK Debugger for Android

The Audience Network SDK debugger for Android is a tool to help developers troubleshoot their integration of the Audience Network SDK for Android. This tool will be helpful to you if you are experiencing some of the following issues:

  • Failing to initialize the SDK. Calling SDK.init is required, and failing to call it can block you from integrating successfully.
  • Slow performance.
  • Calling show() before load().
  • Not calling load() at all.
  • Unviewable ad. If an ad is displayed in a way that doesn't meet viewability standards, it won't be displayed.
  • Unexpected server error.
  • NO FILLs.
  • Unsuccessful caching due to low memory.
  • Memory leak due to ads not getting destroyed.

How to access it

In your application, include the following code before any initialization.

AdSettings.setDebugBuild(true)

Then, while you are running the app, either in an emulator, or on a phone attached with a USB cable, run the following command in the terminal.

adb logcat -s ADNW_DEBUG_LOGGER

To clear the logs, run the following command.

adb logcat -c

How to interpret logs

Below are some example logs showing successful and unsuccessful integrations. The first example shows a successful integration.

In this example, you can see the following:

  • That the SDK was initialized. (It is critical to ensure this has happened.)
  • How long SDK initialization took. (This should take roughly 150 ms.)
  • When the ad was requested, and the type of ad requested. You should ensure that the ad requested matches the one configured in Monetization Manager or your mediation platform.
  • Whether the server replied successfully to that request, or whether there was an error. If the server does not reply successfully, you may experience a NO FILL.
  • How long caching took. You should ensure that you account for caching delays in your integration, requesting the ad with this delay in mind.
  • When the ad was shown and when the impression was fired. (Receiving an impression is critical for receiving payment.)
  • Whether the ad was destroyed. (This is critical for ensuring that there is no memory leak in your app over time.)

The example above shows a successful flow with all the steps that must occur for a successful integration. Below you can see an example of an unsuccessful integration where a NO FILL error occurs.

You can see that at 16:14:07 the server replied successfully, but a "NO FILL" was received, meaning that we could not return an ad. The following line explains that the placement_id was invalid. In this case, the publisher needs to fix the placement_id.