AdMob mediation reward video ads are not loading
<p>I am trying to implement AdMob Reward Video ads. As far as I am understanding from error log is that ads are being loaded by device but it is not being played in system. I also have read and write permission in android manifest file but it is still not playing video ad.</p>

<p>Plus it is showing me error at this function <code>onRewardedVideoAdFailedToLoad</code> which is Ref #2 in my codes.</p>

<p>Can any one read and point me where is my mistake?</p>

<p>Here is my error log I am getting for the ad which is not being displayed.</p>

<pre><code>06-29 15:54:05.021 1548-1548/test.my.app D/ViewRootImpl: ViewPostImeInputStage processPointer 0
06-29 15:54:05.071 1548-1548/test.my.app D/ViewRootImpl: ViewPostImeInputStage processPointer 1
06-29 15:54:05.111 1548-1548/test.my.app D/cr_Ime: [InputMethodManagerWrapper.java:59] isActive: true
06-29 15:54:05.111 1548-1548/test.my.app D/cr_Ime: [InputMethodManagerWrapper.java:68] hideSoftInputFromWindow
06-29 15:54:05.131 1548-1548/test.my.app I/Ads: Ad closing.
06-29 15:54:05.191 1548-1548/test.my.app I/Timeline: Timeline: Activity_launch_request id:test.my.app time:476669498
06-29 15:54:05.221 1548-1548/test.my.app W/DisplayListCanvas: DisplayListCanvas is started on unbinded RenderNode (without mOwningView)
06-29 15:54:05.231 1548-1548/test.my.app W/cr_BindingManager: Cannot call determinedVisibility() - never saw a connection for the pid: 1548
06-29 15:54:05.231 1548-1548/test.my.app D/cr_Ime: [InputMethodManagerWrapper.java:59] isActive: true
06-29 15:54:05.231 1548-1548/test.my.app D/cr_Ime: [InputMethodManagerWrapper.java:68] hideSoftInputFromWindow
06-29 15:54:05.231 1548-1548/test.my.app V/ActivityThread: updateVisibility : ActivityRecord{84787f5 token=android.os.BinderProxy@d104b02 {test.my.app/test.my.app.ShowAdActivity}} show : false
06-29 15:54:05.261 1548-1548/test.my.app W/ResourcesManager: getTopLevelResources: /data/app/vtest.my.app-2/base.apk / 1.0 running in test.my.app rsrc of package test.my.app
06-29 15:54:05.281 1548-1548/test.my.app I/AdColony: ==== Adapter version 1.1.0 ====
06-29 15:54:05.281 1548-1548/test.my.app I/AdColony: ==== Configuring AdColony 2.3.5 with app/zone ids: ====
06-29 15:54:05.281 1548-1548/test.my.app I/AdColony: ID_ID_ID
06-29 15:54:05.281 1548-1548/test.my.app I/AdColony: ID_ID_ID
06-29 15:54:05.301 1548-1548/test.my.app I/UnityAds: com.unity3d.ads.android.UnityAds.init() (line:474) :: Initializing Unity Ads version 1506 with gameId 1087874
06-29 15:54:05.501 1548-1548/test.my.app I/art: Rejecting re-init on previously-failed class java.lang.Class&lt;com.vungle.publisher.location.GoogleLocationClientDetailedLocationProvider&gt;
06-29 15:54:05.501 1548-1548/test.my.app I/art: Rejecting re-init on previously-failed class java.lang.Class&lt;com.vungle.publisher.location.GoogleLocationClientDetailedLocationProvider&gt;
06-29 15:54:05.501 1548-1548/test.my.app I/art: Rejecting re-init on previously-failed class java.lang.Class&lt;com.vungle.publisher.location.GoogleLocationClientDetailedLocationProvider&gt;
06-29 15:54:05.621 1548-1548/test.my.app W/ResourcesManager: getTopLevelResources: /data/app/com.google.android.gms-2/base.apk / 1.0 running in test.my.app rsrc of package com.google.android.gms
06-29 15:54:05.621 1548-1548/test.my.app D/ResourcesManager: For user 0 new overlays fetched Null
06-29 15:54:05.621 1548-1548/test.my.app I/InjectionManager: Inside getClassLibPath caller 
06-29 15:54:05.621 1548-1548/test.my.app D/DynamitePackage: Instantiating com.google.android.gms.ads.reward.ChimeraRewardedVideoAdCreatorImpl
06-29 15:54:05.631 1548-1548/test.my.app I/Ads: Starting ad request.
06-29 15:54:05.701 1548-1548/test.my.app D/Activity: performCreate Call Injection manager
06-29 15:54:05.701 1548-1548/test.my.app I/InjectionManager: dispatchOnViewCreated &gt; Target : test.my.app.ShowVideoAdActivity isFragment :false
06-29 15:54:05.701 1548-1548/test.my.app I/AdColony: [ADC] AdColony resume called.
06-29 15:54:05.701 1548-1548/test.my.app D/SecWifiDisplayUtil: Metadata value : SecSettings2
06-29 15:54:05.711 1548-1548/test.my.app D/ViewRootImpl: #1 mView = com.android.internal.policy.PhoneWindow$DecorView{d300ffa I.E...... R.....ID 0,0-0,0}
06-29 15:54:05.741 1548-1606/test.my.app D/mali_winsys: new_window_surface returns 0x3000,  [1440x2560]-format:1
06-29 15:54:05.761 1548-1548/test.my.app W/DisplayListCanvas: DisplayListCanvas is started on unbinded RenderNode (without mOwningView)
06-29 15:54:05.771 1548-1548/test.my.app D/ViewRootImpl: MSG_RESIZED_REPORT: ci=Rect(0, 96 - 0, 0) vi=Rect(0, 96 - 0, 0) or=1
06-29 15:54:05.781 1548-1548/test.my.app D/cr_Ime: [InputMethodManagerWrapper.java:59] isActive: false
06-29 15:54:05.781 1548-1548/test.my.app W/cr_ScreenOrientation: Removing an inexistent observer!
06-29 15:54:05.811 1548-1548/test.my.app I/Timeline: Timeline: Activity_idle id: android.os.BinderProxy@ae13e3e time:476670117
06-29 15:54:05.841 1548-3294/test.my.app I/UnityAds: com.unity3d.ads.android.webapp.UnityAdsWebData.initCampaigns() (line:223) :: Requesting Unity Ads ad plan from https://impact.applifier.com/mobile/campaigns?platform=android&amp;trackingEnabled=1&amp;advertisingTrackingId=276aa0d53c7c9fa84157df503f26c15c&amp;rawAdvertisingTrackingId=e2ab7fa8-1ff7-4c07-a28b-acfe938efd15&amp;gameId=1087874&amp;sdkVersion=1506&amp;softwareVersion=23&amp;hardwareVersion=samsung+SAMSUNG-SM-G920A&amp;deviceType=268435810&amp;connectionType=wifi&amp;screenSize=268435810&amp;screenDensity=640&amp;encrypted=false
06-29 15:54:05.841 1548-3328/test.my.app I/System.out: (HTTPLog)-Static: isSBSettingEnabled false
06-29 15:54:05.841 1548-3328/test.my.app I/System.out: (HTTPLog)-Static: isSBSettingEnabled false
06-29 15:54:06.001 1548-1561/test.my.app W/Ads: There was a problem getting an ad response. ErrorCode: 0
06-29 15:54:06.001 1548-1548/test.my.app W/Ads: Failed to load ad: 0
06-29 15:54:06.281 1548-3349/test.my.app W/System.err: stat failed: ENOENT (No such file or directory) : nullsession_info.txt
06-29 15:54:06.281 1548-3349/test.my.app W/System.err: stat failed: ENOENT (No such file or directory) : nullzone_state.txt
06-29 15:54:06.291 1548-3349/test.my.app W/System.err: remove failed: ENOENT (No such file or directory) : /data/user/0/test.my.app/files/adc/data/iap_cache.txt
06-29 15:54:06.331 1548-1548/test.my.app D/ViewRootImpl: #3 mView = null
06-29 15:54:06.331 1548-3350/test.my.app I/System.out: (HTTPLog)-Static: isSBSettingEnabled false
06-29 15:54:06.331 1548-3351/test.my.app I/System.out: (HTTPLog)-Static: isSBSettingEnabled false
06-29 15:54:06.331 1548-3350/test.my.app I/System.out: (HTTPLog)-Static: isSBSettingEnabled false
06-29 15:54:06.331 1548-3351/test.my.app I/System.out: (HTTPLog)-Static: isSBSettingEnabled false
06-29 15:54:07.731 1548-1548/test.my.app I/UnityAds: com.unity3d.ads.android.webapp.UnityAdsWebData.campaignDataReceived() (line:684) :: Unity Ads initialized with 19 campaigns and 2 zones
06-29 15:54:07.761 1548-3375/test.my.app I/System.out: (HTTPLog)-Static: isSBSettingEnabled false
06-29 15:54:07.761 1548-3375/test.my.app I/System.out: (HTTPLog)-Static: isSBSettingEnabled false
06-29 15:54:07.891 1548-1548/test.my.app D/cr_Ime: [InputMethodManagerWrapper.java:30] Constructor
06-29 15:54:07.891 1548-1548/test.my.app W/cr_AwContents: onDetachedFromWindow called when already detached. Ignoring
06-29 15:54:07.891 1548-1548/test.my.app D/cr_Ime: [InputMethodManagerWrapper.java:59] isActive: false
06-29 15:54:07.901 1548-1548/test.my.app I/cr_Ime: ImeThread is not enabled.
06-29 15:54:07.931 1548-1548/test.my.app W/cr_BindingManager: Cannot call determinedVisibility() - never saw a connection for the pid: 1548
06-29 15:54:07.931 1548-1548/test.my.app D/cr_Ime: [InputMethodManagerWrapper.java:59] isActive: false
06-29 15:54:08.271 1548-1548/test.my.app I/chromium: [INFO:CONSOLE(8603)] "Resize handler called", source: http://cdn-highwinds.unityads.unity3d.com/impact/webview/production/impact/index.html?version=be098269d319580b55cf71b48f32e4feb030c1ce (8603)
06-29 15:54:08.391 1548-1548/test.my.app I/chromium: [INFO:CONSOLE(8023)] "true", source: http://cdn-highwinds.unityads.unity3d.com/impact/webview/production/impact/index.html?version=be098269d319580b55cf71b48f32e4feb030c1ce (8023)
06-29 15:54:08.421 1548-1548/test.my.app I/chromium: [INFO:CONSOLE(8586)] "Hiding all views", source: http://cdn-highwinds.unityads.unity3d.com/impact/webview/production/impact/index.html?version=be098269d319580b55cf71b48f32e4feb030c1ce (8586)
06-29 15:54:08.431 1548-1548/test.my.app I/chromium: [INFO:CONSOLE(8584)] "Showing: none", source: http://cdn-highwinds.unityads.unity3d.com/impact/webview/production/impact/index.html?version=be098269d319580b55cf71b48f32e4feb030c1ce (8584)
06-29 15:54:20.381 1548-1548/test.my.app I/AdColony: [ADC] AdColony pause called.
06-29 15:54:20.971 1548-1548/test.my.app V/ActivityThread: updateVisibility : ActivityRecord{a9e58fe token=android.os.BinderProxy@ae13e3e {test.my.app/test.my.app.ShowVideoAdActivity}} show : true
06-29 15:54:31.591 1548-3348/test.my.app I/System.out: Exiting monitor
</code></pre>

<p>Here is code of my ShowVideoAdActivity file</p>

<pre><code>import android.app.Activity;
import android.content.pm.ActivityInfo;
import android.os.Bundle;
import android.support.design.widget.Snackbar;
import android.support.v7.app.AlertDialog;
import android.view.View;
import android.view.WindowManager;

import com.chartboost.sdk.Chartboost;
import com.google.ads.mediation.admob.AdMobAdapter;
import com.google.android.gms.ads.AdRequest;
import com.google.android.gms.ads.MobileAds;
import com.google.android.gms.ads.reward.RewardItem;
import com.google.android.gms.ads.reward.RewardedVideoAd;
import com.google.android.gms.ads.reward.RewardedVideoAdListener;
import com.jirbo.adcolony.AdColony;
import com.unity3d.ads.android.IUnityAdsListener;
import com.unity3d.ads.android.UnityAds;
import com.vungle.publisher.VunglePub;
import com.vungle.publisher.EventListener;
import com.vungle.publisher.AdConfig;
import com.vungle.publisher.Orientation;
import com.vungle.publisher.VunglePub;


public class ShowVideoAdActivity extends Activity implements RewardedVideoAdListener, IUnityAdsListener {

    //dialog builder for dialogs
    private AlertDialog.Builder dialog;

    private static final String AD_UNIT_ID = "ca-app-pub-";
    private static final String APP_ID = "ca-app-pub-";

    // get the VunglePub instance
    final VunglePub vunglePub = VunglePub.getInstance();



    private boolean mIsRewardedVideoLoading;
    private RewardedVideoAd mAd;
    private final Object mLock = new Object();

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

        super.onCreate(savedInstanceState);


        //Keeping screen lights on
        getWindow().addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);

        //Screen rotation off
        this.setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);


        AdColony.configure(this, "version:0.1,store:google",
                "id",
                "id");
        AdColony adColony = new AdColony();

        UnityAds.init(this, "id", this);

        // initialize the Publisher SDK
        vunglePub.init(this, "id");
        vunglePub.setEventListeners(vungleDefaultListener, vungleSecondListener);

        Chartboost.startWithAppId(this, "id", "id");
        Chartboost.onCreate(this);


        mAd = MobileAds.getRewardedVideoAdInstance(this);
        mAd.setRewardedVideoAdListener(this);


        loadRewardedVideoAd();

        setContentView(R.layout.activity_show_video_ad);

    }

    private void loadRewardedVideoAd() {
        synchronized (mLock) {
            if (!mIsRewardedVideoLoading &amp;&amp; !mAd.isLoaded()) {
                mIsRewardedVideoLoading = true;
                Bundle extras = new Bundle();
                extras.putBoolean("_noRefresh", true);

                AdRequest adRequest = new AdRequest.Builder().addTestDevice("B9E3469F4F5B561227675DC9167EFC16")
                        .addNetworkExtrasBundle(AdMobAdapter.class, extras)
                        .build();
                mAd.loadAd(AD_UNIT_ID, adRequest);
            }
        }
        showRewardedVideo();
    }

    private void showRewardedVideo() {
        if (mAd.isLoaded()) {
            mAd.show();
        }
    }


    @Override
    public void onHide() {

    }

    @Override
    public void onShow() {

    }

    @Override
    public void onVideoStarted() {

    }

    @Override
    public void onVideoCompleted(String s, boolean b) {

    }

    @Override
    public void onFetchCompleted() {

    }

    @Override
    public void onFetchFailed() {
        Snackbar snackbar = Snackbar.make(getWindow().getDecorView().getRootView(),
                "Ad loading failed!!! #1", Snackbar.LENGTH_LONG);

        snackbar.show();
    }

    @Override
    public void onRewardedVideoAdLoaded() {

    }

    @Override
    public void onRewardedVideoAdOpened() {

    }

    @Override
    public void onRewardedVideoStarted() {

    }

    @Override
    public void onRewardedVideoAdClosed() {
        Snackbar snackbar = Snackbar.make(getWindow().getDecorView().getRootView(),
                "Thank you for watching this ad. ", Snackbar.LENGTH_LONG);

        snackbar.show();
    }

    @Override
    public void onRewarded(RewardItem rewardItem) {

    }

    @Override
    public void onRewardedVideoAdLeftApplication() {

    }

    @Override
    public void onRewardedVideoAdFailedToLoad(int i) {
        Snackbar snackbar = Snackbar.make(getWindow().getDecorView().getRootView(),
                "Ad loading failed!!! #2", Snackbar.LENGTH_LONG);

        snackbar.show();
    }





    private final EventListener vungleDefaultListener = new EventListener() {
        @Deprecated
        @Override
        public void onVideoView(boolean isCompletedView, int watchedMillis, int videoDurationMillis) {
            // This method is deprecated and will be removed. Please use onAdEnd() instead.
        }

        @Override
        public void onAdStart() {
            // Called before playing an ad.
        }

        @Override
        public void onAdUnavailable(String reason) {
            // Called when VunglePub.playAd() was called but no ad is available to show to the user.

            Snackbar snackbar = Snackbar.make(getWindow().getDecorView().getRootView(),
                    "Ad loading failed!!! #3", Snackbar.LENGTH_LONG);

            snackbar.show();

            System.out.println("~~");
            System.out.println("~~");
            System.out.println("~~");
            System.out.println("~~");
            System.out.println("1");
            System.out.println(reason);
            System.out.println("~~");
            System.out.println("~~");
            System.out.println("~~");

        }

        @Override
        public void onAdEnd(boolean wasCallToActionClicked) {
            // Called when the user leaves the ad and control is returned to your application.
        }

        @Override
        public void onAdPlayableChanged(boolean isAdPlayable) {
            // Called when ad playability changes.
            final boolean enabled = isAdPlayable;
            runOnUiThread(new Runnable() {
                @Override
                public void run() {

                }
            });
        }
    };

    private final EventListener vungleSecondListener = new EventListener() {
        // Vungle SDK allows for multiple listeners to be attached. This secondary event listener is only
        // going to print some logs for now, but it could be used to Pause music, update a badge icon, etc.
        @Deprecated
        @Override
        public void onVideoView(boolean isCompletedView, int watchedMillis, int videoDurationMillis) {}

        @Override
        public void onAdStart() {}

        @Override
        public void onAdUnavailable(String reason) {
            Snackbar snackbar = Snackbar.make(getWindow().getDecorView().getRootView(),
                    "Ad loading failed!!! #4", Snackbar.LENGTH_LONG);

            snackbar.show();

            System.out.println("~~");
            System.out.println("~~");
            System.out.println("~~");
            System.out.println("~~");
            System.out.println("2");
            System.out.println(reason);
            System.out.println("~~");
            System.out.println("~~");
            System.out.println("~~");

        }

        @Override
        public void onAdEnd(boolean wasCallToActionClicked) {}

        @Override
        public void onAdPlayableChanged(boolean isAdPlayable) {

        }
    };

}
</code></pre>