2015-09-25 22 views
8

Sto utilizzando admob nella mia app, funzionava bene ma improvvisamente ha smesso di mostrare annunci pubblicitari. Bellow è i miei codici ho usato:Annuncio banner AdMob non visualizzato

mainActivity.xml:

<com.google.android.gms.ads.AdView 
     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="@string/banner_ad_unit_id"> 
    </com.google.android.gms.ads.AdView> 

MainActivity.java

 AdView mAdView = (AdView) findViewById(R.id.adView); 

     AdRequest adRequest = new AdRequest.Builder().build(); 

     mAdView.loadAd(adRequest); 

AndroidManifest:

<uses-sdk 
     android:minSdkVersion="9" 
     android:targetSdkVersion="19" /> 

<uses-permission android:name="android.permission.INTERNET"/> 
     <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/> 

<meta-data android:name="com.google.android.gms.version" 
      android:value="@integer/google_play_services_version" /> 

<!--Include the AdActivity configChanges and theme. --> 
<activity android:name="com.google.android.gms.ads.AdActivity" 
      android:configChanges="keyboard|keyboardHidden|orientation|screenLayout|uiMode|screenSize|smallestScreenSize" 
      android:theme="@android:style/Theme.Translucent" /> 

Ho seguito tutte le istruzioni dal sito AdMob come ho detto, funzionava pochi giorni fa.

Bellow sono pochi linea da logcat che possono essere correlati al mio problema:

09-25 22:44:50.292: E/dalvikvm(18554): Could not find class 'android.app.AppOpsManager', referenced from method com.google.android.gms.common.GooglePlayServicesUtil.zza 

09-25 22:45:07.209: E/Ads(18554): JS: Uncaught ReferenceError: renderAd is not defined (https://googleads.g.doubleclick.net/mads/gma:1) 
09-25 22:45:07.209: E/Web Console(18554): Uncaught ReferenceError: renderAd is not defined:1 
09-25 22:45:07.209: E/Ads(18554): JS: Uncaught ReferenceError: onLoad is not defined (https://googleads.g.doubleclick.net/mads/gma:1) 
09-25 22:45:07.209: E/Web Console(18554): Uncaught ReferenceError: onLoad is not defined:1 

ricevo avvertimento soffietto ripetutamente e appare più quando scatto l'area vuota in cui dovrebbe mostrare

09-25 22:46:10.911: W/PicturePileLayerContent(18554): Warning: painting PicturePile without content! 

Questo viene filtrato logcat con "annunci"

09-25 23:39:25.948: I/Ads(28874): Starting ad request. 
09-25 23:39:25.948: I/Ads(28874): Use AdRequest.Builder.addTestDevice("8FCD71CAAE776558876AAA9BA964245A") to get test ads on this device. 

09-25 23:39:26.919: I/Ads(22050): App index is not enabled 
09-25 23:39:30.432: E/Ads(28874): JS: Uncaught ReferenceError: renderAd is not defined (https://googleads.g.doubleclick.net/mads/gma:1) 
09-25 23:39:30.442: E/Ads(28874): JS: Uncaught ReferenceError: onLoad is not defined (https://googleads.g.doubleclick.net/mads/gma:1) 
09-25 23:39:30.442: I/Ads(28874): Scheduling ad refresh 60000 milliseconds from now. 
09-25 23:39:30.472: I/Ads(28874): Ad finished loading. 

Ho cercato ovunque per la soluzione e hanno visto anche alcuni simili, ma non di loro mi ha aiutato.

+0

viene visualizzato questo errore dopo aver aggiunto builder(). AddTestDevice ("******") '09-26 14: 26: 49.691: E/Ads (28853): JS: Uncunto RiferimentoErrore: renderAdad non definito (https://googleads.g.doubleclick.net/mads/gma:1) 09-26 14: 26: 49.701: E/Ads (28853): JS: Uncaught ReferenceError: onLoad non è definito (https: // googleads.g.doubleclick.net/mads/gma:1) ' – Darshan

risposta

5

Questo problema è risolto disinstallando l'applicazione manualmente e reinstallando di nuovo senza apportare modifiche !!

+0

Funziona! La tua domanda non riguardava il test, giusto? –

2

Controlla se disponi delle ultime versioni di adMob e GooglePlayServices lib.

+0

Ho appena aggiunto Google Play Services che mostra Rev. 26, non so sulla versione di AdMob non ci sono istruzioni per questa lib sul sito ufficiale. – Darshan

11

Usa sotto le righe di codice

AdView mAdView = (AdView) findViewById(R.id.adView); 

AdRequest request = new AdRequest.Builder() 
.addTestDevice(AdRequest.DEVICE_ID_EMULATOR)  // All emulators 
.addTestDevice("AC98C820A50B4AD8A2106EDE96FB87D4") // My Galaxy Nexus test phone 
.build(); 


mAdView.loadAd(request); 

invece di utilizzare questo

AdRequest adRequest = new AdRequest.Builder().build(); 

perché verrà utilizzata questa linea quando l'applicazione sarà pronta per la pubblicazione su Google Play Store.

È possibile posizionare l'id del dispositivo al posto di "AC98C820A50B4AD8A2106EDE96FB87D4".Codice per ottenere dispositivo ID:

String android_id = Settings.Secure.getString(getContext().getContentResolver(), 
      Settings.Secure.ANDROID_ID); 

Si prega di leggere con attenzione questi:

https://developers.google.com/admob/android/targeting#test_ads

https://developers.google.com/admob/android/quick-start

Vai a questa

enter image description here

enter image description here

+1

ho provato il codice, ha rimosso le righe da logcat '09-25 23: 39: 25.948: I/Ads (28874): utilizzare AdRequest.Builder.addTestDevice (" 8FCD71F44FG4H6D7DAAA9BA964245A ") per ottenere annunci di prova su questo dispositivo', ma annuncio ancora non mostrato !!! – Darshan

+0

Google ha richiesto di non utilizzare quel codice (utilizzato in precedenza) quando la tua app è in modalità di sviluppo. Potrebbe essere il tuo add id è stato respinto. Prova qualche altra email e crea un'altra richiesta di aggiunta. –

+0

Ho dato alcuni collegamenti, per favore leggi attentamente. –

1

Mettere il banner in un LinearLayout proprio come questo, ho affrontato lo stesso problema e ho riparato dal mettendo in un layout lineare

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:ads="http://schemas.android.com/apk/res-auto" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:orientation="vertical" 
    android:layout_alignParentTop="true" 
    android:layout_alignParentRight="true" 
    android:layout_alignParentEnd="true" 
    android:id="@+id/linearLayout"> 

    <com.google.android.gms.ads.AdView 
     android:id="@+id/adView" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     ads:adSize="BANNER" 
     ads:adUnitId="ca-app-pub-8056472942589154/2652831823" 
     android:layout_alignBottom="@+id/saida" 
     android:layout_alignParentLeft="true" 
     android:layout_alignParentStart="true" /> 
</LinearLayout> 
+0

Non funziona !. – Darshan

1

Nel mio caso l'annuncio non si è presentato finché non ho dato abbastanza spazio per questo.

Prima era come

<LinearLayout 
     android:orientation="vertical" 
     android:background="@color/primary" 
     android:layout_width="match_parent" 
     android:layout_height="90dip"> 
      <ImageView 
       android:onClick="goBack" 
       android:clickable="true" 
       android:src="@drawable/ic_arrow_back_white_48dp" 
       android:layout_width="50dip" 
       android:layout_height="50dip"/> 
      <com.google.android.gms.ads.AdView 
       android:layout_gravity="center_horizontal" 
       android:id="@+id/adView" 
       android:layout_width="wrap_content" 
       android:layout_height="wrap_content" 
       ads:adSize="BANNER" 
       ads:adUnitId="@string/dwn_bnr_ad"/> 

Qui l'ADView sta avendo un'altezza di wrap_content, in modo che si regola per raggiungere la sua altezza, ma il suo genitore (LinearLayout) ha un'altezza rigorosa di 90dip che pretende molto consentire al ADView prendere abbastanza spazio per visualizzare annunci.

Quindi quello che ho fatto è stato appena cambiato l'altezza del LinearLayout per wrap_content poi le cose sono andate bene

0

sei tornata al tuo account AdMob per registrare l'app specifica per gli annunci e ottenere un nuovo numero più editore con la prefazione 'ca-app-pub-' al posto della prefazione 'pub-'?

Da nessuna parte nelle istruzioni "banner ads 1" nel sito di sviluppo "Google Mobile Ads SDK" di Google Admob fa menzione di dover tornare al tuo account admob per farlo.

Questo stupido errore mi ha tenuto sveglio per giorni.