Я пытаюсь настроить отображение рекламы 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, а я не
Райан, ты установил свой идентификатор издателя Admob???
<meta-data android:value="YOUR_ADMOB_PUBLISHER_ID"
android:name="ADMOB_PUBLISHER_ID" />