title: Admob No fill from ad server - failed to load ad: 3
body: <p>My issue is that ads are not being displayed at all in my app, test mode or not. I am going to keep this question specific to test mode, and once I get that working I will worry about live ads.</p>
  
  <p><strong>Development Information</strong></p>
  
  <p>I am using Eclipse for development.</p>
  
  <p>I have setup ads using Google Play Services and Admob in my Android app, as described in the online documentation provided by Google.</p>
  
  <p>I have added my device ID using addTestDevice("xxxxxxxxxxxxxxxx"), and have checked the hashed device ID a number of times to be sure it is correct.</p>
  
  <p><strong>The Issue (see below for log info)</strong></p>
  
  <p>When I run the application on my device, no ads are displayed at all. This happens even when I have added my device as a test device.</p>
  
  <p>I have searched high and low, and turned up many similar issues, but am yet to find an answer to this specific problem.</p>
  
  <p><strong>LogCat Output</strong></p>
  
  <pre><code>10-28 13:56:41.659: I/Ads(1704): Starting ad request.
  10-28 13:56:42.187: I/Ads(1704): No fill from ad server.
  10-28 13:56:42.187: W/Ads(1704): Failed to load ad: 3
  10-28 13:56:42.199: W/Ads(1704): No GMSG handler found for GMSG: gmsg://mobileads.google.com/jsLoaded?google.afma.Notify_dt=1414504602197
  </code></pre>
  
  <p><strong>My Activity</strong></p>
  
  <pre><code>   package bb.hoppingbird;
  
      import org.cocos2d.layers.CCScene;
      import org.cocos2d.nodes.CCDirector;
      import org.cocos2d.opengl.CCGLSurfaceView;
  
      import com.google.android.gms.ads.AdListener;
      import com.google.android.gms.ads.AdRequest;
      import com.google.android.gms.ads.AdSize;
      import com.google.android.gms.ads.AdView;
      import com.google.android.gms.ads.InterstitialAd;
  
      import android.app.Activity;
      import android.content.SharedPreferences;
      import android.media.MediaPlayer;
      import android.os.Bundle;
      import android.support.v4.view.ViewPager.LayoutParams;
      import android.util.DisplayMetrics;
      import android.view.KeyEvent;
      import android.widget.RelativeLayout;
      import android.widget.Toast;
  
      public class MainActivity extends Activity {
  
      private CCGLSurfaceView mGLSurfaceView;
  
      //&lt;!-- Admob Ads Using Google Play Services SDK --&gt;
      private static final String AD_UNIT_ID = "ca-app-pub-xxxxxxxxxxxxxxxxxxxx";
      private static final String AD_INTERSTITIAL_UNIT_ID = "ca-app-pub-xxxxxxxxxxxxxxxxxxxx";
  
  
      /** The Admob ad. */
      private InterstitialAd interstitialAd = null;
      public AdView adView = null;
  
      public static MainActivity app;
  
      public void onCreate(Bundle savedInstanceState)
      {
          app = this;
  
          super.onCreate(savedInstanceState);
  
          // set view
          mGLSurfaceView = new CCGLSurfaceView(this);
  
  
          //Ads ----------------
          // Create the adView
          RelativeLayout layout = new RelativeLayout(this);
          layout.setLayoutParams(new RelativeLayout.LayoutParams(LayoutParams.MATCH_PARENT, LayoutParams.MATCH_PARENT));
  
          //&lt;!-- Ads Using Google Play Services SDK --&gt;
          adView = new AdView(this);
          adView.setAdSize(AdSize.SMART_BANNER);
          adView.setAdUnitId(AD_UNIT_ID);
  
          // Add the adView to it
          RelativeLayout.LayoutParams params = new RelativeLayout.LayoutParams(
                  LayoutParams.WRAP_CONTENT,
                  LayoutParams.WRAP_CONTENT);
          params.addRule(RelativeLayout.ALIGN_PARENT_BOTTOM, RelativeLayout.TRUE);
          params.addRule(RelativeLayout.CENTER_HORIZONTAL, RelativeLayout.TRUE);
  
          adView.setLayoutParams(params);
  
          layout.addView(mGLSurfaceView);
          layout.addView(adView);
  
          setContentView(layout);
          //New AdRequest 
          AdRequest adRequest = new AdRequest.Builder()
          .addTestDevice(AdRequest.DEVICE_ID_EMULATOR)
          .addTestDevice("0D47C6944503F0284666D16BB79BF684")
          .build();
  
      // Start loading the ad in the background.
      adView.loadAd(adRequest);
  
  
          //-----------------------------------------------------Interstitial Add
          // Create an Interstitial ad.
          interstitialAd = new InterstitialAd(this);
          interstitialAd.setAdUnitId(AD_INTERSTITIAL_UNIT_ID);
          interstitialAd.setAdListener(new AdListener() {
                @Override
                public void onAdLoaded() {
                  interstitialAd.show();
                }
  
                @Override
                public void onAdFailedToLoad(int errorCode) {
                    Toast.makeText(getApplicationContext(), "Interstitial Ads loading failed", Toast.LENGTH_SHORT).show();
                }
          });
           // Load the interstitial ad.
          //showInterstitialAds();
  
          //----------------------
          // set director
          CCDirector director = CCDirector.sharedDirector();
          director.attachInView(mGLSurfaceView);
          director.setAnimationInterval(1/60);
  
          // get display info
          DisplayMetrics displayMetrics = new DisplayMetrics();
          getWindowManager().getDefaultDisplay().getMetrics(displayMetrics);
          G.display_w = displayMetrics.widthPixels;
          G.display_h = displayMetrics.heightPixels;
          G.scale = Math.max(G.display_w/1280.0f, G.display_h/800.0f);
          G.width = G.display_w / G.scale;
          G.height = G.display_h / G.scale;
  
          // get data
          SharedPreferences sp = CCDirector.sharedDirector().getActivity().getSharedPreferences("GameInfo", 0);
          G.music = sp.getBoolean("music", true);
          G.sound = sp.getBoolean("sound", true);
  
          // create sound
          G.soundMenu = MediaPlayer.create(this, R.raw.menu);
          G.soundMenu.setLooping(true);
          G.soundGame = MediaPlayer.create(this, R.raw.game);
          G.soundGame.setLooping(true);
          G.soundCollide = MediaPlayer.create(this, R.raw.collide);
          G.soundJump = MediaPlayer.create(this, R.raw.jump);
          G.soundLongJump = MediaPlayer.create(this, R.raw.long_jump);
          G.soundSpeedDown = MediaPlayer.create(this, R.raw.speed_down);
          G.soundSpeedUp = MediaPlayer.create(this, R.raw.speed_up);
          G.soundDirection = MediaPlayer.create(this, R.raw.direction_sign);
          G.soundClick = MediaPlayer.create(this, R.raw.menu_click);
          G.soundCollect = MediaPlayer.create(this, R.raw.collect);
          G.bgSound = G.soundMenu;
  
          // show menu
          CCScene scene = CCScene.node();
          scene.addChild(new MenuLayer(true));
          director.runWithScene(scene);
      }  
  
      @Override
      public void onPause()
      {
          if (adView != null) {
                adView.pause();
              }
  
          super.onPause();
          G.bgSound.pause();
          CCDirector.sharedDirector().onPause();
      }
  
      @Override
      public void onResume()
      {
          super.onResume();
  
          if (adView != null) {
              adView.resume();
            }
  
          if( G.music ) G.bgSound.start();
  
          CCDirector.sharedDirector().onResume();
      }
  
      @Override
      public void onDestroy()
      {
          // Destroy the AdView.
          if (adView != null) {
            adView.destroy();
          }
  
          super.onDestroy();
          G.bgSound.pause();
          CCDirector.sharedDirector().end();
      }
  
      @Override
      public boolean onKeyDown(int keyCode, KeyEvent event)
      {
          if( keyCode == KeyEvent.KEYCODE_BACK )
          {
              CCDirector.sharedDirector().onKeyDown(event);
              return true;
          }
          return super.onKeyDown(keyCode, event);
      }
  
      public void showInterstitialAds()
      {
          runOnUiThread(new Runnable() {
              public void run() {
                   AdRequest interstitialAdRequest = new AdRequest.Builder().build();
                   interstitialAd.loadAd(interstitialAdRequest);
              }
          });
      }
  }
  </code></pre>