péguelo para las etiquetas español entre código configurar como codigo automaticos anuncios amp java android admob

java - para - como configurar anuncios adsense



El tamaño del anuncio y la Id. Del bloque de anuncios deben configurarse antes de llamar a loadAd (6)

Tengo esto en mi archivo xml principal:

<com.google.android.gms.ads.AdView xmlns:ads="http://schemas.android.com/apk/lib/com.google.ads" android:layout_width="wrap_content" android:layout_height="wrap_content" ads:adUnitId="******************" ads:adSize="BANNER" android:id="@+id/adView"/>

Ya configuré el tamaño del anuncio y la id. De la unidad, pero cuando esto se ejecuta (desde MainActivity.java),

AdView adView = (AdView)this.findViewById(com.example.lovetestactual.R.id.adView); AdRequest adRequest = new AdRequest.Builder().build(); adView.loadAd(adRequest);

Arrojó una excepción de lo que está en el título.


Encontré una solución en el ejemplo de github, es decir:

en lugar de

xmlns:ads="http://schemas.android.com/apk/lib/com.google.ads"

eliminar la etiqueta xmlns: ads *** y agregar

xmlns:ads="http://schemas.android.com/apk/res-auto"

etiqueta a su etiqueta LinearLayout de la siguiente manera:

<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:ads="http://schemas.android.com/apk/res-auto" android:orientation="vertical" android:layout_width="match_parent" android:layout_height="match_parent"> <TextView android:layout_width="match_parent" android:layout_height="wrap_content" android:text="@string/hello"/> <com.google.android.gms.ads.AdView android:id="@+id/adView" android:layout_width="match_parent" android:layout_height="wrap_content" ads:adSize="BANNER" ads:adUnitId="INSERT_YOUR_AD_UNIT_ID_HERE"/> </LinearLayout>

Eso es :)

enlace github para este xml


Esto va a ser vago ya que no ha indicado qué tipo de vista es su archivo XML (relativo, lineal, etc.)

En mi aplicación con un diseño relativo desplazable, he incluido:

<RelativeLayout android:id="@+id/test" android:layout_width="fill_parent" android:layout_height="fill_parent" android:layout_below="@+id/TextView07" android:paddingTop="20dp" > </RelativeLayout>

Ahora, dentro de mi clase real, quiero el anuncio que incluí:

private AdView adView; /* Your ad unit id. Replace with your actual ad unit id. */ private static final String AD_UNIT_ID = "ca-app-pub-xxxxxx/yyyyyy"; /** * Simply loads the xml about page layout to display the text. */ public void onCreate(Bundle start) { super.onCreate(start); setContentView(R.layout.about); final TelephonyManager tm = (TelephonyManager) getBaseContext() .getSystemService(Context.TELEPHONY_SERVICE); //String deviceid = tm.getDeviceId(); adView = new AdView(this); adView.setAdSize(AdSize.SMART_BANNER); adView.setAdUnitId(AD_UNIT_ID); // Add the AdView to the view hierarchy. The view will have no size // until the ad is loaded. RelativeLayout layout = (RelativeLayout) findViewById(R.id.test); layout.addView(adView); // Create an ad request. Check logcat output for the hashed device ID to // get test ads on a physical device. AdRequest adRequest = new AdRequest.Builder() .build(); //.addTestDevice(AdRequest.DEVICE_ID_EMULATOR) //.addTestDevice(deviceid).build(); // Start loading the ad in the background. adView.loadAd(adRequest); }

Ahora, idealmente, desea utilizar un banner inteligente para optimizar su diseño para todos los dispositivos, como ya he dicho anteriormente, esto es estándar ahora.

Si esto no es de ayuda diríjase a here


Mucha gente que migra aplicaciones existentes al método de servicios de google play agrega incorrectamente la información incorrecta.

Algo que me gustaría señalar es que muchas personas con la misma pregunta han estado usando esto como plantilla

<com.google.android.gms.ads.AdView xmlns:ads="http://schemas.android.com/apk/lib-auto" android:id="@+id/adView" android:layout_width="match_parent" android:layout_height="50dp" ads:adSize="BANNER" ads:adUnitId="ca-app-pub-XXXXXXXXXXXXXXXX/XXXXXXXXXX" ads:loadAdOnCreate="true" > </com.google.android.gms.ads.AdView>

Esto es incorrecto como xmlns: los anuncios se deben cambiar a: - xmlns:ads="http://schemas.android.com/apk/res-auto"

Al igual que

<com.google.android.gms.ads.AdView xmlns:ads="http://schemas.android.com/apk/res-auto" android:id="@+id/adView" android:layout_width="match_parent" android:layout_height="50dp" ads:adSize="BANNER" ads:adUnitId="ca-app-pub-XXXXXXXXXXXXXXXX/XXXXXXXXXX" ads:loadAdOnCreate="true" > </com.google.android.gms.ads.AdView>


Traté de cambiar la declaración del espacio de nombres, pero simplemente no funciona. Lo solucioné especificando un valor de altura para el adView en lugar de wrap_content . Esto funciona para mi

<com.google.android.gms.ads.AdView android:id="@+id/adView2" android:layout_width="match_parent" android:layout_height="50dp" android:layout_alignParentBottom="true" android:layout_centerHorizontal="true" android:layout_gravity="center|bottom" ads:adSize="BANNER" ads:adUnitId="@string/banner_ad_unit_id" />



eliminar xmlns:ads="http://schemas.android.com/tools" desde la vista raíz

luego agrega AdView

<com.google.android.gms.ads.AdView xmlns:ads="http://schemas.android.com/apk/res-auto" android:id="@+id/adView" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_centerHorizontal="true" android:layout_alignParentBottom="true" ads:adSize="BANNER" ads:adUnitId="ca-app-pub-3940256099942544/6300978111"> </com.google.android.gms.ads.AdView>

Recuerde estos pasos:

  1. Puede definir xmlns:ads="http://schemas.android.com/apk/res-auto" en la vista raíz de este.

  2. si no ha definido xmlns:ads="http://schemas.android.com/apk/res-auto" dentro de rootView, entonces debe agregar xmlns:ads="http://schemas.android.com/apk/res-auto" dentro de AdView.

  3. si ha definido adSize dentro de su archivo AdView xml, no lo configure dinámicamente, como: adView.setAdSize(AdSize.BANNER); o bien, a través de una excepción java.lang.IllegalStateException: The ad size can only be set once on AdView.

  4. xmlns:ads="http://schemas.android.com/apk/res-auto" y xmlns:app="http://schemas.android.com/apk/res-auto" tienen el mismo aspecto pero hay una diferencia que es xmlns: ads y xmlns: aplicación, así que no te confundas.

Creo que resolverá tu problema ... Feliz de ayudar :)