title: AdMob using Google Play Services - Test ads - No fill from ad server
body: <p>Good morning,</p>
  
  <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>I am using a real device for testing. HTC Sensation with Android 4.1.2. Ads run fine for other apps installed on the device.</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>I have tried numerous things:</p>
  
  <ul>
  <li>Running in an emulator (issues here running newer versions of Android on my old slow laptop). Same problem.</li>
  <li>Rewriting the whole of the ad code from scratch.</li>
  <li>Reimporting Google Play Services.</li>
  <li>Reinstalling eclipse - now using the latest Android Developer Tools.</li>
  <li>Downloading Google Play Services and importing the project again.</li>
  <li>Cleaning my project several times.</li>
  <li>Googling, Googling and more Googling.</li>
  </ul>
  
  <p>I simply cannot get to the bottom of this issue. I will be most grateful to anyone who can help me out here. I have a feeling I may be missing something very small yet important out that is causing me these issues.</p>
  
  <p>The lines I am concernet about I have placed in the filtered log below ('no fill from ad server'). In the full log, there is also a line 'the google play services resources were not found', but after some research this seems not to be the cause of my problems, and looks to be something we can ignore.</p>
  
  <p>Anyway, I think that's about all the info I have - thank you in advance to anyone who looks into this for me.</p>
  
  <p><strong>Filtered Logs</strong></p>
  
  <p>LogCat outputs the following, when filtered by 'log:ads':</p>
  
  <pre><code>03-15 09:51:46.549: I/Ads(12405): Use AdRequest.Builder.addTestDevice("A24031FACA2D8B7F7AFB280EB4E87A11") to get test ads on this device.
  03-15 09:51:46.569: I/Ads(12405): Starting ad request.
  03-15 09:51:48.642: I/Ads(12405): No fill from ad server.
  03-15 09:51:48.652: W/Ads(12405): Failed to load ad: 3
  </code></pre>
  
  <p><strong>Full logcat output</strong></p>
  
  <pre><code>03-15 10:07:56.980: D/IntroActivity(15242): ++onCreate
  03-15 10:07:59.432: I/Ads(15242): Use AdRequest.Builder.addTestDevice("A24031FACA2D8B7F7AFB280EB4E87A11") to get test ads on this device.
  03-15 10:07:59.442: I/Ads(15242): Starting ad request.
  03-15 10:07:59.572: D/webcoreglue(15242): netstack: Memory Cache feature is ON
  03-15 10:07:59.953: W/(15242): init htc webcore
  03-15 10:08:00.013: E/GooglePlayServicesUtil(15242): The Google Play services resources were not found. Check your project configuration to ensure that the resources are included.
  03-15 10:08:00.123: I/KENLOG(15242): setSpellCheckEnabled &lt;enabled: false&gt; delay: 1000
  03-15 10:08:00.143: I/KENLOG(15242): setSpellCheckEnabled &lt;enabled: true&gt; delay: 1000
  03-15 10:08:00.233: I/Adreno200-EGL(15242): &lt;qeglDrvAPI_eglInitialize:299&gt;: EGL 1.4 QUALCOMM build: AU_LINUX_ANDROID_JB_REL_RB1.04.01.01.06.043_msm8660_surf_JB_REL_RB1.2_CL2428086_release_AU (CL2428086)
  03-15 10:08:00.233: I/Adreno200-EGL(15242): Build Date: 11/15/12 Thu
  03-15 10:08:00.233: I/Adreno200-EGL(15242): Local Branch: 
  03-15 10:08:00.233: I/Adreno200-EGL(15242): Remote Branch: m/jb_rel_rb1.2
  03-15 10:08:00.233: I/Adreno200-EGL(15242): Local Patches: NONE
  03-15 10:08:00.233: I/Adreno200-EGL(15242): Reconstruct Branch: AU_LINUX_ANDROID_JB_REL_RB1.04.01.01.06.043 + e534df6 + 951c251 + 07bf631 + 6aa3ec7 + e04e486 + 9f5646a + 855d11b +  NOTHING
  03-15 10:08:00.333: D/memalloc(15242): ion: Mapped buffer base:0x5a4a0000 size:2088960 offset:0 fd:86
  03-15 10:08:00.333: D/memalloc(15242): ion: Mapped buffer base:0x564cd000 size:4096 offset:0 fd:88
  03-15 10:08:00.353: E/GooglePlayServicesUtil(15242): The Google Play services resources were not found. Check your project configuration to ensure that the resources are included.
  03-15 10:08:00.433: D/memalloc(15242): ion: Mapped buffer base:0x5b4ed000 size:2088960 offset:0 fd:93
  03-15 10:08:00.433: D/memalloc(15242): ion: Mapped buffer base:0x56787000 size:4096 offset:0 fd:95
  03-15 10:08:00.433: D/HostStatisticManager(15242): netstack: DNS Host Prioritization is: ON, Version: 5.0.1
  03-15 10:08:00.433: I/(15242): netstack: LIB_MGR - Lib loaded: libdnshostprio.so
  03-15 10:08:00.433: E/(15242): netstack: STAT_HUB - Processor name is undefined
  03-15 10:08:00.433: E/(15242): netstack: STAT_HUB - Failed to load plugin: libdnshostprio.so
  03-15 10:08:00.433: E/(15242): netstack: LIB_MGR - Error loading lib spl_proc_plugin.so
  03-15 10:08:00.433: E/(15242): netstack: STAT_HUB - Failed to load plugin: spl_proc_plugin.so
  03-15 10:08:00.443: W/dalvikvm(15242): [GC Control] disableGcForExternalAlloc: false
  03-15 10:08:00.453: E/(15242): netstack: LIB_MGR - Error loading lib pp_proc_plugin.so
  03-15 10:08:00.453: E/(15242): netstack: STAT_HUB - Failed to load plugin: pp_proc_plugin.so
  03-15 10:08:00.453: E/(15242): netstack:  STAT_HUB - App quizHarness.quiz isn't supported
  03-15 10:08:00.493: E/GooglePlayServicesUtil(15242): The Google Play services resources were not found. Check your project configuration to ensure that the resources are included.
  03-15 10:08:00.533: D/memalloc(15242): ion: Mapped buffer base:0x5b7eb000 size:2088960 offset:0 fd:92
  03-15 10:08:00.533: D/memalloc(15242): ion: Mapped buffer base:0x567dd000 size:4096 offset:0 fd:98
  03-15 10:08:00.583: W/(15242): init htc webcore
  03-15 10:08:01.234: I/Ads(15242): No fill from ad server.
  03-15 10:08:01.254: W/dalvikvm(15242): [GC Control] disableGcForExternalAlloc: false
  03-15 10:08:01.254: E/SQLiteLog(15242): (14) cannot open file at line 30178 of [00bb9c9ce4]
  03-15 10:08:01.254: E/SQLiteLog(15242): (14) os_unix.c:30178: (2) open(/NotificationPermissions.db) - 
  03-15 10:08:01.254: D/WebKit(15242): ERROR: 
  03-15 10:08:01.254: D/WebKit(15242): SQLite database failed to load from /NotificationPermissions.db
  03-15 10:08:01.254: D/WebKit(15242): Cause - unable to open database file
  03-15 10:08:01.254: D/WebKit(15242): external/webkit/Source/WebCore/platform/sql/SQLiteDatabase.cpp(71) : bool WebCore::SQLiteDatabase::open(const WTF::String&amp;, bool)
  03-15 10:08:01.264: W/Ads(15242): Failed to load ad: 3
  </code></pre>
  
  <p><strong>Code</strong></p>
  
  <pre><code>// Create the adView.
  adView = new AdView(this);
  adView.setAdUnitId(admobUnitID);
  adView.setAdSize(AdSize.BANNER);
  
  // Lookup LinearLayout
  LinearLayout layout = (LinearLayout)findViewById(R.id.adLayout);
  
  // Add the adView to it.
  layout.addView(adView);
  
  // Initiate a generic request.
  AdRequest adRequest = new AdRequest.Builder()
  .addTestDevice(AdRequest.DEVICE_ID_EMULATOR)       // Emulator
  .addTestDevice("A24031FACA2D8B7F7AFB280EB4E87A11")
  .build();
  
  // Load the adView with the ad request.
  adView.loadAd(adRequest);
  </code></pre>