web-dev-qa-db-fra.com

Admob Pas de remplissage du serveur publicitaire - Echec du chargement de l'annonce: 3

Mon problème est que les annonces ne sont pas affichées du tout dans mon application, en mode test ou non. Je vais garder cette question spécifique au mode test, et une fois que cela fonctionne, je vais m'inquiéter des annonces en direct.

Information sur le développement

J'utilise Eclipse pour le développement.

J'ai configuré des annonces utilisant Google Play Services et Admob dans mon application Android, comme décrit dans la documentation en ligne fournie par Google.

J'ai ajouté mon ID de périphérique à l'aide de addTestDevice ("xxxxxxxxxxxxxxxx") et j'ai vérifié l'ID de périphérique haché plusieurs fois pour m'assurer qu'il est correct.

Le problème (voir ci-dessous pour les informations du journal)

Lorsque je lance l'application sur mon appareil, aucune annonce n'est affichée. Cela se produit même lorsque j'ai ajouté mon périphérique en tant que périphérique de test.

J'ai cherché haut et bas, et ai soulevé beaucoup de problèmes similaires, mais je n'ai pas encore trouvé de réponse à ce problème spécifique.

Sortie LogCat

10-28 13:56:41.659: I/Ads(1704): Starting ad request.
10-28 13:56:42.187: I/Ads(1704): No fill from ad server.
10-28 13:56:42.187: W/Ads(1704): Failed to load ad: 3
10-28 13:56:42.199: W/Ads(1704): No GMSG handler found for GMSG: gmsg://mobileads.google.com/jsLoaded?google.afma.Notify_dt=1414504602197

Mon activité

   package bb.hoppingbird;

    import org.cocos2d.layers.CCScene;
    import org.cocos2d.nodes.CCDirector;
    import org.cocos2d.opengl.CCGLSurfaceView;

    import com.google.Android.gms.ads.AdListener;
    import com.google.Android.gms.ads.AdRequest;
    import com.google.Android.gms.ads.AdSize;
    import com.google.Android.gms.ads.AdView;
    import com.google.Android.gms.ads.InterstitialAd;

    import Android.app.Activity;
    import Android.content.SharedPreferences;
    import Android.media.MediaPlayer;
    import Android.os.Bundle;
    import Android.support.v4.view.ViewPager.LayoutParams;
    import Android.util.DisplayMetrics;
    import Android.view.KeyEvent;
    import Android.widget.RelativeLayout;
    import Android.widget.Toast;

    public class MainActivity extends Activity {

    private CCGLSurfaceView mGLSurfaceView;

    //<!-- Admob Ads Using Google Play Services SDK -->
    private static final String AD_UNIT_ID = "ca-app-pub-xxxxxxxxxxxxxxxxxxxx";
    private static final String AD_INTERSTITIAL_UNIT_ID = "ca-app-pub-xxxxxxxxxxxxxxxxxxxx";


    /** The Admob ad. */
    private InterstitialAd interstitialAd = null;
    public AdView adView = null;

    public static MainActivity app;

    public void onCreate(Bundle savedInstanceState)
    {
        app = this;

        super.onCreate(savedInstanceState);

        // set view
        mGLSurfaceView = new CCGLSurfaceView(this);


        //Ads ----------------
        // Create the adView
        RelativeLayout layout = new RelativeLayout(this);
        layout.setLayoutParams(new RelativeLayout.LayoutParams(LayoutParams.MATCH_PARENT, LayoutParams.MATCH_PARENT));

        //<!-- Ads Using Google Play Services SDK -->
        adView = new AdView(this);
        adView.setAdSize(AdSize.SMART_BANNER);
        adView.setAdUnitId(AD_UNIT_ID);

        // Add the adView to it
        RelativeLayout.LayoutParams params = new RelativeLayout.LayoutParams(
                LayoutParams.WRAP_CONTENT,
                LayoutParams.WRAP_CONTENT);
        params.addRule(RelativeLayout.ALIGN_PARENT_BOTTOM, RelativeLayout.TRUE);
        params.addRule(RelativeLayout.CENTER_HORIZONTAL, RelativeLayout.TRUE);

        adView.setLayoutParams(params);

        layout.addView(mGLSurfaceView);
        layout.addView(adView);

        setContentView(layout);
        //New AdRequest 
        AdRequest adRequest = new AdRequest.Builder()
        .addTestDevice(AdRequest.DEVICE_ID_EMULATOR)
        .addTestDevice("0D47C6944503F0284666D16BB79BF684")
        .build();

    // Start loading the ad in the background.
    adView.loadAd(adRequest);


        //-----------------------------------------------------Interstitial Add
        // Create an Interstitial ad.
        interstitialAd = new InterstitialAd(this);
        interstitialAd.setAdUnitId(AD_INTERSTITIAL_UNIT_ID);
        interstitialAd.setAdListener(new AdListener() {
              @Override
              public void onAdLoaded() {
                interstitialAd.show();
              }

              @Override
              public void onAdFailedToLoad(int errorCode) {
                  Toast.makeText(getApplicationContext(), "Interstitial Ads loading failed", Toast.LENGTH_SHORT).show();
              }
        });
         // Load the interstitial ad.
        //showInterstitialAds();

        //----------------------
        // set director
        CCDirector director = CCDirector.sharedDirector();
        director.attachInView(mGLSurfaceView);
        director.setAnimationInterval(1/60);

        // get display info
        DisplayMetrics displayMetrics = new DisplayMetrics();
        getWindowManager().getDefaultDisplay().getMetrics(displayMetrics);
        G.display_w = displayMetrics.widthPixels;
        G.display_h = displayMetrics.heightPixels;
        G.scale = Math.max(G.display_w/1280.0f, G.display_h/800.0f);
        G.width = G.display_w / G.scale;
        G.height = G.display_h / G.scale;

        // get data
        SharedPreferences sp = CCDirector.sharedDirector().getActivity().getSharedPreferences("GameInfo", 0);
        G.music = sp.getBoolean("music", true);
        G.sound = sp.getBoolean("sound", true);

        // create sound
        G.soundMenu = MediaPlayer.create(this, R.raw.menu);
        G.soundMenu.setLooping(true);
        G.soundGame = MediaPlayer.create(this, R.raw.game);
        G.soundGame.setLooping(true);
        G.soundCollide = MediaPlayer.create(this, R.raw.collide);
        G.soundJump = MediaPlayer.create(this, R.raw.jump);
        G.soundLongJump = MediaPlayer.create(this, R.raw.long_jump);
        G.soundSpeedDown = MediaPlayer.create(this, R.raw.speed_down);
        G.soundSpeedUp = MediaPlayer.create(this, R.raw.speed_up);
        G.soundDirection = MediaPlayer.create(this, R.raw.direction_sign);
        G.soundClick = MediaPlayer.create(this, R.raw.menu_click);
        G.soundCollect = MediaPlayer.create(this, R.raw.collect);
        G.bgSound = G.soundMenu;

        // show menu
        CCScene scene = CCScene.node();
        scene.addChild(new MenuLayer(true));
        director.runWithScene(scene);
    }  

    @Override
    public void onPause()
    {
        if (adView != null) {
              adView.pause();
            }

        super.onPause();
        G.bgSound.pause();
        CCDirector.sharedDirector().onPause();
    }

    @Override
    public void onResume()
    {
        super.onResume();

        if (adView != null) {
            adView.resume();
          }

        if( G.music ) G.bgSound.start();

        CCDirector.sharedDirector().onResume();
    }

    @Override
    public void onDestroy()
    {
        // Destroy the AdView.
        if (adView != null) {
          adView.destroy();
        }

        super.onDestroy();
        G.bgSound.pause();
        CCDirector.sharedDirector().end();
    }

    @Override
    public boolean onKeyDown(int keyCode, KeyEvent event)
    {
        if( keyCode == KeyEvent.KEYCODE_BACK )
        {
            CCDirector.sharedDirector().onKeyDown(event);
            return true;
        }
        return super.onKeyDown(keyCode, event);
    }

    public void showInterstitialAds()
    {
        runOnUiThread(new Runnable() {
            public void run() {
                 AdRequest interstitialAdRequest = new AdRequest.Builder().build();
                 interstitialAd.loadAd(interstitialAdRequest);
            }
        });
    }
}
25
Vhycko Mayaut

Les problèmes ne viennent que si cette application particulière est suspendue de Playstore. Peut-être que vous pourriez essayer de changer le nom du paquetage et aussi avec le nouvel identifiant Admob. Il est possible que cet identifiant particulier soit également suspendu en raison de la conformité.

11
pradeep.k

Si vous créez adunit et que vous l'utilisez immédiatement, ce qui pourrait indiquer cette erreur, essayez de charger les annonces au bout de 30 minutes ou plus.

9
kalandar

Vous avez besoin d’utiliserIDque Google vous fournit pour votre appareil de test actuel. Vous pouvez le trouver dans logcat, trouvez juste quelque chose comme ceci:

Ads: Use AdRequest.Builder.addTestDevice("903A70A3D439E256BAED43E65A79928E") to get test ads on this device.
4
Trancer

Si votre compte AdMob est uniquement configuré pour des bannières publicitaires et que vous utilisez des annonces interstitielles, vous pouvez rencontrer ce problème. Mes 2 centimes.

2
Tushar Nallan

il est également possible à la chance de l'inventaire. Je suis également face à cause de cela . Échec du chargement de l'annonce: 3

2
Suresh Kerai

Dans mon cas, j'ai constaté que mon adresse de facturation n'était pas vérifiée et que les annonces étaient bloquées. Vérifiez l'adresse de facturation, il sera automatiquement corrigé. https://www.google.com/adsense/

2
Gkapoor

Je testais sur Galaxy S4, plus tard mon ami a testé sur la note 2 et il n'a pas montré la bannière publicitaire. D'où le problème était l'ID de périphérique de test. Si vous testez, assurez-vous que l'ID du périphérique de test correspond au périphérique sur lequel vous testez.

1
ahmadalibaloch

Si votre application prend en charge conçu pour les familles.

Bundle extras = new Bundle();
extras.putBoolean("is_designed_for_families", true);

AdRequest request = new AdRequest.Builder()
        .addNetworkExtrasBundle(AdMobAdapter.class, extras)
        .build();
1
Orgatres

En gros, essayez simplement de transmettre votre identifiant de périphérique de test à adBuilder:

/** adRequest Object For test device */
AdRequest adRequest = new AdRequest.Builder().addTestDevice("TEST_DEVICE_ID").build();

/** adRequest Object For Production Device*/
AdRequest adRequest = new AdRequest.Builder().build();

Vous pouvez trouver votre identifiant de test divece dans logCat après avoir demandé une requête adBuilder id de divece test: 

I/Ads: Utilisez AdRequest.Builder.addTestDevice ("TEST_DEVICE_ID") à obtenir des annonces de test sur cet appareil.

0
rnglab

Dans mon cas, mes bannières publicitaires ont le code de réponse 3 sur certains appareils avec une API élevée et en particulier avec un écran large (j'ai utilisé la taille de bannière intelligente). Changer la dépendance de com.google.Android.gms.ads à com.google.firebase:firebase-ads (Si vous utilisez Firebase) a résolu mon problème.

0
Pavel Poley

J'ai eu ce problème aussi aujourd'hui. Mon application n'a pas été suspendue, mais le changement de nom d'apk a fonctionné. Nous avions renommé une application de test pour la mettre en production. nous avons changé le nom de l'apk en conséquence. Cela a gâché notre remplissage d'annonces sur MoPub et Admob.

0
Adam Link

Dans mon cas, c'était l'erreur résultant de la demande d'une annonce géo-restreinte d'une région qui n'était pas prise en charge pour cette annonce. Si j'ai codé en dur l'emplacement de l'ensemble de demandes de publicité dans la région acceptable, ou si je n'incluais aucun emplacement dans la demande, l'annonce a été correctement rendue; sinon j'ai eu la même erreur que OP dans la console.

0
raptors

Dans mon cas, je testais avec un émulateur et obtenais la même erreur. Après le changement de téléphone, tout fonctionne.

Essayez un autre appareil de test.

0
Eneas Gesing

Les annonces sont désactivées à partir du serveur Admob. Votre code est correct. Essayez de modifier le nom du package et vérifiez si les annonces sont affichées. Ensuite, contactez admob pour voir le problème.

0
Safwan Hijazi

J'ai eu ce problème également. Ce n'est que lorsque je suis allé sur Admob.com que j'ai ajouté mon application "manuellement" afin que je puisse obtenir mon "ID d'unité publicitaire". Je mets cette chaîne d'ID d'unité publicitaire comme argument de mon appel adView.setAdUnitId. Ensuite, j'ai installé et ouvert le "release" APK que j'ai généré via Eclipse. Fichier> Exporter> Exporter une application Android 

0
Red Cricket