2016-05-20 16 views
6

Ho cercato di integrare annunci nativi espliciti nella mia applicazione. Nella documentazione espressa sugli annunci nativi, ho letto che funzionano meglio se visualizzati con la dimensione dell'annuncio FULL_WIDTH. Ho cercato di impostare la mia taglia annuncio a FULL_WIDTH ma non riesce con IllegalStateException:I nuovi annunci nativi di Admob Express falliscono con IllegalStateException

Caused by: java.lang.IllegalStateException: The ad size and ad unit ID must be set before loadAd is called. 

Ecco il mio codice XML:

<com.google.android.gms.ads.NativeExpressAdView 
android:id="@+id/adView" 
android:layout_width="wrap_content" 
android:layout_height="wrap_content" 
ads:adSize="FULL_WIDTH" 
ads:adUnitId="@string/native_ad_unit"/> 

L'unità pubblicitaria è corretto, funziona con altri formati di annunci come 320x150 ecc.

C'è qualcosa di sbagliato nella mia implementazione?

Cheers

risposta

19

ho trovato una soluzione, che funzionerà se lo si utilizza in questo modo:

<com.google.android.gms.ads.NativeExpressAdView 
android:id="@+id/adView" 
android:layout_width="wrap_content" 
android:layout_height="wrap_content" 
ads:adSize="FULL_WIDTHx80" 
ads:adUnitId="@string/native_ad_unit"/> 
+0

Grazie mille, mi hai risparmiato un sacco di tempo, il problema era adSize. –

+0

Ciao, sto usando un annuncio nativo e il suo messaggio mostra Errore interno. sono passati due giorni e niente ha funzionato per me. Il mio tag XML chetan

+0

NOTA:' ads: adSize = "FULL_WIDTHxsome_height" 'non funziona se' NativeExpressAdView' ha margini orizzontali. Perché cerca di occupare tutta la larghezza del dispositivo. –

1

È possibile impostarlo solo a livello di programmazione. Ecco un estratto dalla documentazione:

I publisher possono anche utilizzare la costante FULL_WIDTH durante la creazione a livello di codice di AdSize per NativeExpressAdView. In questo caso, l'annuncio occuperà l'intera larghezza dello schermo del dispositivo.

Fonte: https://firebase.google.com/docs/admob/android/native-express#nativeexpressadview

+0

NativeExpressAdView ADView = (NativeExpressAdView) v.findViewById (R.id.adView); adView.setAdSize (AdSize.FULL_WIDTH); questo non funziona ... –

+0

Puoi impostare AdSize solo se stai creando NativeExpressAdView a livello di codice. Sono stato in grado di trovare un esempio [qui] (https://firebase.google.com/docs/reference/android/com/google/android/gms/ads/NativeExpressAdView). Basta usare FULL_WIDTH anziché la larghezza 400 come indicato nell'esempio. –