Подтвердить что ты не робот

Admob Не заполняется с сервера объявлений - не удалось загрузить объявление: 3

Моя проблема заключается в том, что объявления не отображаются вообще в моем приложении, в тестовом режиме или нет. Я собираюсь сохранить этот вопрос в тестовом режиме, и как только я получу эту работу, я буду беспокоиться о рекламных объявлениях в реальном времени.

Информация о развитии

Я использую Eclipse для разработки.

У меня есть настройки объявлений с помощью Google Play Services и Admob в приложении для Android, как описано в онлайн-документации, предоставленной Google.

Я добавил свой идентификатор устройства, используя addTestDevice ( "xxxxxxxxxxxxxxxx" ), и проверил идентификатор хэшированного устройства несколько раз, чтобы убедиться в его правильности.

Проблема (см. ниже информацию о журнале)

Когда я запускаю приложение на своем устройстве, объявления вообще не отображаются. Это происходит даже тогда, когда я добавил свое устройство в качестве тестового устройства.

Я искал высоко и низко, и обнаружил много подобных проблем, но я еще не нашел ответа на эту конкретную проблему.

Выход 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

Моя активность

   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);
            }
        });
    }
}
4b9b3361

Ответ 1

Проблемы возникают только в том случае, если это приложение приостановлено с игрового магазина. Возможно, вы можете попробовать изменить имя пакета, а также с помощью нового идентификатора Admob. Существует вероятность того, что конкретный id admob также может быть приостановлен из-за соответствия.

Ответ 2

Если вы создадите рекламный блок и сразу его используете, это может показать эту ошибку, попробуйте загрузить рекламу через 30 минут или более.

Ответ 3

Если ваша учетная запись AdMob настроена только для баннеров, и вы используете межстраничные объявления, вы можете получить эту проблему. Мои 2 цента.

Ответ 4

Если вы поддерживаете приложение Designed for Families.

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

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

Ответ 6

У меня тоже была эта проблема. Только когда я отправился на Admob.com и "вручную" добавил свое приложение, чтобы получить свой "Идентификатор рекламного блока". Я помещаю эту строку идентификатора рекламного блока в качестве аргумента my adView.setAdUnitId. Затем я установил и открыл "выпуск" APK I, сгенерированный через Eclipse. Файл > Экспорт > Экспорт приложений для Android

Ответ 7

У меня тоже был этот вопрос. Мое приложение не было приостановлено, но изменение имени apk действительно сработало. Мы переименовали тестовое приложение, чтобы выпустить его на производство; в результате мы изменили имя apk. Это наполнило наше объявление как на MoPub, так и на Admob.

Ответ 8

Объявления отключены с сервера Admob, ваш код в порядке, попробуйте изменить имя пакета и посмотреть, отображаются ли объявления. Затем свяжитесь с admob, чтобы увидеть проблему.

Ответ 9

В моем случае это была ошибка в результате запроса объявления с ограниченным доступом из региона, который не поддерживается для этого объявления. Если я жестко запрограммировал местоположение пакета запросов объявлений внутри приемлемого региона или вообще не включал местоположение в запрос, объявление было отображено просто отлично; в противном случае я имел ту же ошибку, что и OP в консоли.

Ответ 10

Я тестировал Galaxy S4, позже мой друг протестировал на заметке 2, и он не показывал баннерное объявление. Следовательно, проблемой было тестовое устройство Id. Если вы тестируете, удостоверьтесь, что идентификатор тестового устройства находится на тестируемом устройстве.

Ответ 11

Вам нужно использовать ID, который Google предоставляет для текущего тестового устройства. Вы можете найти его в logcat, просто найдите что-то вроде этого:

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

Ответ 12

В моем случае у моих баннеров есть код ответа 3 на некоторых устройствах с высоким API и особенно с широким экраном (я использовал размер интеллектуального баннера), изменяя зависимость от com.google.android.gms.ads до com.google.firebase:firebase-ads (если вы используете Firebase ) решил мою проблему.

Ответ 13

В моем случае я обнаружил, что мой платежный адрес не был проверен, а объявления заблокированы. Проверьте адрес выставления счета, который он автоматически установит. https://www.google.com/adsense/