How to check if AdView is visible?

I want to check if AdView actually downloaded ads and is visible, and therefore it requires space on the display or if the download has not been downloaded, for example, if the Internet connection is not available. If he didn’t load ads, I can use the space for something else.

How to do it?

+4
source share
2 answers

You can implement AdListener for this purpose. Just override onAdFailedToLoadand onAdLoaded.

+5
source
mAdView = (AdView) findViewById(R.id.adView);
mAdView.setAdListener(new AdListener() {
    // Called when an ad is loaded.
    @Override
    public void onAdLoaded() {
        Log.e(TAG, "Google onAdLoaded");
    }

    // Called when an ad failed to load.
    @Override
    public void onAdFailedToLoad(int error) {
        String message = "Google onAdFailedToLoad: " + getErrorReason(error);
        Log.e(TAG, message);
    }

    // Called when an Activity is created in front of the app
    // (e.g. an interstitial is shown, or an ad is clicked and launches a new Activity).
    @Override
    public void onAdOpened() {
        Log.e(TAG, "Google onAdOpened");
    }

    // Called when an ad is clicked and about to return to the application.
    @Override
    public void onAdClosed() {
        Log.e(TAG, "Google onAdClosed");
    }

    // Called when an ad is clicked and going to start a new Activity that will leave the application
    // (e.g. breaking out to the Browser or Maps application).
    @Override
    public void onAdLeftApplication() {
        Log.d(TAG, "Google onAdLeftApplication");
    }
});
mAdRequest = new AdRequest.Builder().build();
mAdView.loadAd(mAdRequest);


private String getErrorReason(int errorCode) {
    // Gets a string error reason from an error code.
    String errorReason = "";
    switch (errorCode) {
        case AdRequest.ERROR_CODE_INTERNAL_ERROR:
            errorReason = "Internal error";
            break;
        case AdRequest.ERROR_CODE_INVALID_REQUEST:
            errorReason = "Invalid request";
            break;
        case AdRequest.ERROR_CODE_NETWORK_ERROR:
            errorReason = "Network Error";
            break;
        case AdRequest.ERROR_CODE_NO_FILL:
            errorReason = "No fill";
            break;
    }
    return errorReason;
}
+1
source

Source: https://habr.com/ru/post/1529526/


All Articles