web-dev-qa-db-fra.com

La bannière publicitaire AdMob ne s'affiche pas

J'utilise admob dans mon application, cela fonctionnait bien, mais tout à coup, les annonces ne se diffusaient plus du tout.

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" />

J'ai suivi toutes les instructions du site adMob car je disais que cela fonctionnait il y a quelques jours.

Vous trouverez ci-dessous quelques lignes de logcat pouvant être liées à mon problème:

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

Je reçois des avertissements ci-dessous à plusieurs reprises et il apparaît davantage lorsque je clique sur la zone vide dans laquelle l'annonce doit être diffusée.

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

Ceci est logcat filtré avec "annonces"

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.

J'ai cherché partout la solution et en ai examiné d'autres similaires, mais aucun d'eux ne m'a aidé. 

15
Darshan

Ce problème est résolu en désinstallant l'application manuellement et en le réinstallant sans apporter de modifications!

8
Darshan

Utilisez les lignes de code ci-dessous 

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 );

au lieu d'utiliser cela

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

car cette ligne sera utilisée lorsque votre application sera prête à être publiée sur Google Play Store.

Vous pouvez placer l'identifiant de votre appareil à la place de "AC98C820A50B4AD8A2106EDE96FB87D4". Code pour obtenir l'identifiant de l'appareil:

String Android_id = Settings.Secure.getString(getContext().getContentResolver(),
            Settings.Secure.Android_ID);

Veuillez les lire attentivement:

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

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

Regarde ça

 enter image description here

 enter image description here

14
Ashish Tiwari

Vérifiez si vous disposez des dernières versions de adMob et de GooglePlayServices lib.

2
mohax

Mettez la bannière dans un LinearLayout juste comme ceci, j'ai rencontré le même problème et je l'ai corrigé en le mettant dans une disposition linéaire

  <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>
1
Mahmoud M

Dans mon cas, l'annonce ne s'est pas montrée jusqu'à ce que je lui donne assez de place.

Avant c'était comme

<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"/>

Ici, la vue a une hauteur de wrap_content, elle s’ajuste donc pour atteindre sa hauteur, mais son parent (LinearLayout) a une hauteur stricte de 90dip qui ne permet pas à adView de prendre assez d’espace pour afficher des annonces.

Donc, ce que j'ai fait était de changer la hauteur de LinearLayout en wrap_content, puis tout s'est bien passé

1
Sayka

Êtes-vous retourné sur votre compte admob pour enregistrer votre application spécifique pour les annonces et obtenir un nouveau numéro d'éditeur plus long avec la préface 'ca-app-pub-' au lieu de la préface 'pub-'?

Nulle part dans les instructions "bannières 1" du site de développement de Google Admob "SDK Google Ads Ads SDK" ne mentionnez le fait de devoir retourner à votre compte admob pour le faire.

Cette erreur stupide m'a retenu pendant des jours.

0
Ahmer Afzal

Dans mon cas, j'avais le code ci-dessous dans la section buildscript du niveau de projet build.gradle

Assurez-vous que maven {url "https://maven.google.com"} est sous allProjects > repositories:

allprojects {
    repositories {
        jcenter()
        maven {
            url "https://maven.google.com"
        }
    }
}
0
A-Sharabiani