Объявление AdMob никогда не отображается в представлении

Я пытаюсь настроить отображение рекламы AdMob в моем приложении для Android, но мне это не удается. Я связался с их службой поддержки и не получил ответа почти через неделю, поэтому решил, что сейчас попрошу здесь о помощи.

Сначала немного кода:
AndroidManifest.xml


  
    
  

  

Да, admob- publisher-id-here - это мой реальный идентификатор издателя в фактическом файле манифеста.

main_layout.xml


  

attr.xml


              
    
    
    
    
    
  

MainActivity.java

import android.app.Activity;
import android.os.Bundle;
import android.util.Log;
import com.admob.android.ads.AdManager;
import com.admob.android.ads.AdView;

import com.foo.application.R;

public class MainActivity extends Activity {
  private AdView ad;

  public MainActivity ( ) {
        AdManager.setTestDevices ( new String[] {
      // made this up for this
            "012345678994814751742145548AAAAAAA" 
        } );
        AdManager.setTestAction ( "url" );
    }

    @Override
    public void onCreate ( Bundle savedInstanceState ) {
      super.onCreate ( savedInstanceState );
        setContentView(R.layout.main_layout);

        if ( AdManager.isTestDevice ( this ) ) {
          // this logs
            Log.w ( "foo-app", "we are on a test device" );
        }

        ad = ( AdView ) this.findViewById ( R.id.ad );
        if ( ad != null ) {
            ad.setVisibility ( View.VISIBLE );
            ad.setAdListener ( new AdListener () );
        }
    }
}

AdListener.java

package com.foo.application

import android.util.Log;

import com.admob.android.ads.AdView;
import com.admob.android.ads.SimpleAdListener;

class AdListener extends SimpleAdListener {
    @Override
    public void onFailedToReceiveAd ( AdView adView ) {
      // this is what logs
        Log.w ( "foo-app", "failed to receive ad" );
        super.onFailedToReceiveAd ( adView );
    }

    @Override
    public void onFailedToReceiveRefreshedAd ( AdView adView ) {
        Log.w ( "foo-app", "failed to receive refreshed ad" );
        super.onFailedToReceiveRefreshedAd ( adView );
    }

    @Override
    public void onReceiveAd ( AdView adView ) {
        Log.w ( "foo-app", "receive ad" );
        super.onReceiveAd ( adView );
    }

    @Override
    public void onReceiveRefreshedAd ( AdView adView ) {
        Log.w ( "foo-app", "receive refreshed ad" );
        super.onReceiveRefreshedAd ( adView );
    }
}

В logcat, Я вижу следующее:

INFO/AdMobSDK(29541): To get test ads on this device use AdManager.setTestDevices( new String[] { "012345678994814751742145548AAAAAAA" } )
WARN/AdMobSDK(29541): Ignoring requestFreshAd() because we are requesting an ad right now already.
WARN/AdMobSDK(29541): Ignoring requestFreshAd() because we are requesting an ad right now already.
WARN/foo-app(29541): we are on a test device
WARN/foo-app(29541): failed to receive ad

AdListener указывает, что не может получить объявление. У меня есть активное соединение для передачи данных, к тому же я нахожусь в тестовом режиме, поэтому, согласно вики admob , он должен показывать рекламу всегда. В logcat нет ни ошибок, ни принудительного закрытия приложения.

У кого-нибудь есть идеи или вы видите, что я что-то делаю не так?

update: Я получил ответ от admob, но все, что они сказали, это то, что я дважды создавал aeveiw, а я не

12
задан Ryan Conrad 1 September 2010 в 10:47
поделиться