¿Cómo especificar adUnitId mediante programación para AdMob?
Estoy intentando establecer adUnitId mediante programación con los anuncios de los nuevos servicios de Google Play (antigua AdMob).
Tengo esto en XML (utilizado en un <include>
):
- Adview (admob) con carga de datos asincrónica
- ¿Cómo puedo mostrar y ocultar los anuncios de banner de admob?
- AdView causa pérdida de memoria
- Error de AdMob (Error al inflar la clase com.google.ads.AdView)
- Android: PublisherInterstitialAd y DoubleClick for Publishers de Google Play Services
<com.google.android.gms.ads.AdView xmlns:android="http://schemas.android.com/apk/res/android" xmlns:ads="http://schemas.android.com/apk/res-auto" android:id="@+id/adView" android:layout_width="match_parent" android:layout_height="wrap_content" ads:adSize="BANNER"/>
Y esto en onCreate ():
AdView mAdview = (AdView)findViewById(R.id.adView); mAdview.setAdUnitId(((App)getApplication()).getAdmobKey()); mAdview.setAdListener(new AdListener() { @Override public void onAdLoaded() { super.onAdLoaded(); findViewById(R.id.adView).setVisibility(View.VISIBLE); } }); AdRequest adRequest = new AdRequest.Builder() .addTestDevice(AdRequest.DEVICE_ID_EMULATOR) .build(); mAdview.loadAd(adRequest);
Y obtengo:
El tamaño del anuncio y el ID de la unidad de anuncio deben configurarse antes de que se llame loadAd.
Así que la segunda opción era hacer el anuncio programáticamente.
El nuevo XML:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_height="wrap_content" android:layout_width="match_parent" android:id="@+id/adView" />
El nuevo código:
AdView mAdview = new AdView(this); ... ((LinearLayout)findViewById(R.id.adView)).addView(mAdview); mAdview.loadAd(adRequest);
Pero tengo el mismo error.
También intenté heredar de com.google.android.gms.ads.AdView para crear una vista personalizada, pero es definitiva.
¿Cualquier sugerencia?
- Cómo implementar AdView AdView en la aplicación para Android
- Android: El uso de adjustPan y adjustResize no funciona, pero necesito ambos
- Carpeta IDFA / GAID
- Mediación de Admob - ID de editor y ID de mediación
- Excepción de seguridad de Admob: denegación de permisos
- Admob en múltiples actividades?
- ¿Cómo comprobar si AdView está visible?
- ¿Cómo obtener el mejor tamaño de admob para la configuración actual de la pantalla?
El método loadAd()
comprueba si (mAdView.getAdSize() == null || mAdView.getAdUnitId() == null)
cuando loadAd sucede.
Intente registrar la salida booleana de (mAdView.getAdSize() == null || mAdView.getAdUnitId() == null)
antes de llamar a loadAd para determinar su estado:
mAdView = new AdView(this); mAdView.setAdSize(AdSize.BANNER); mAdView.setAdUnitId(AD_UNIT_ID); AdRequest adRequest = new AdRequest.Builder() .addTestDevice(AdRequest.DEVICE_ID_EMULATOR) .build(); if(mAdView.getAdSize() != null || mAdView.getAdUnitId() != null) mAdView.loadAd(adRequest); // else Log state of adsize/adunit ((LinearLayout)findViewById(R.id.adView)).addView(mAdview);
- ¿Es posible que VM de Android recolecte basura de variables estáticas sin matar a toda la aplicación de Android?
- EditText con teclado suave y botón "Atrás"