Admob объявления не отображаются - PullRequest
8 голосов
/ 08 августа 2011

Я пытаюсь внедрить Admob в Android и вижу запросы, поступающие в AdMob. Однако я не вижу рекламы эмулятора Admob на экране Android в эмуляторе, а также на моих тестовых телефонах Android.

Как указано выше, я вижу запросы, поступающие в мою учетную запись AdMob. Тем не менее, содержание не отображается. Есть ли что-то, что необходимо включить в моей учетной записи, main.xml, AndroidManifest.xml или в загрузке приложения?

Конфигурация и код моего приложения приведены ниже. Посоветуйте пожалуйста что нужно. Спасибо!

AndroidManifest:

          <meta-data 
            android:value="My Publisher ID"
            android:name="ADMOB_PUBLISHER_ID" />
        <activity android:name="com.admob.android.ads.AdMobActivity"/>
        <receiver 
            android:name="com.admob.android.ads.analytics.InstallReceiver"
            android:exported="true">
         <intent-filter>
         <action android:name="com.android.vending.INSTALL_REFERRER"/>
         </intent-filter>
         </receiver>
         <meta-data 
             android:value="true" 
             android:name="ADMOB_ALLOW_LOCATION_FOR_ADS"/>

Основной:

 <com.google.ads.AdView
    android:id="@+id/adView"
   android:layout_alignParentBottom="true"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    ads:adSize="BANNER"
    ads:adUnitId="My Publisher ID"
    ads:loadAdOnCreate="true"/>

При создании кода:

        AdView adView = (AdView)this.findViewById(R.id.adView);
        AdRequest re = new AdRequest();
        re.setTesting(true);
        adView.loadAd(re);

Любая помощь приветствуется !!

Ответы [ 12 ]

11 голосов
/ 11 августа 2011

Убедитесь, что макет, в который встроен AdView, не накладывает никаких дополнений на AdView. Размер AdView должен быть ровным 320x50. Он не отображается, если ему не хватает места.

Также проверьте вывод журнала вашего устройства. В Eclipse переключитесь на перспективу DDMS, выберите свое устройство и просмотрите выходные данные LogCat.

8 голосов
/ 02 февраля 2012

У меня была похожая проблема.Если у вас есть какие-либо отступы на родительском макете, то вам может не хватить ширины для объявлений.Если у вас есть это в книжной ориентации, попробуйте переключиться в альбомную ориентацию, чтобы увидеть, если он показывает.Если это так, то, скорее всего, у вас есть проблема с шириной где-то в макете.

5 голосов
/ 08 августа 2011

Обычно объявления начинают показываться через admob. Это происходит в том случае, если вы только что зарегистрировались на admob и запустили свое первое приложение. Если о предложениях, приведенных выше, позаботятся, и если ваша страница в AdMob будет иметь «зеленый» статус, я не буду слишком беспокоиться об этом. Как только ваша скорость заполнения увеличится, вы начнете видеть все больше и больше объявлений.

4 голосов
/ 18 февраля 2015

Убедитесь, что ваш макет Admob отображается в виде XML.Поместите свой взгляд на admob в RelativeLayout и попробуйте использовать android:alignparentBottom:true

    <?xml version="1.0" encoding="utf-8"?>
    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
        xmlns:ads="http://schemas.android.com/apk/lib/com.google.ads"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:orientation="vertical" >
     <RelativeLayout 
            android:layout_width="match_parent"
            android:layout_height="wrap_content">

<!--Do our code that you want to show in xml -->

<!--Put adview in bottom of screen -->
        <com.google.ads.AdView
                android:id="@+id/adView"
                android:layout_width="fill_parent"
                android:layout_height="wrap_content"
                ads:adSize="BANNER"
                android:layout_alignParentBottom="true"
                ads:adUnitId="@string/addmob_id"
                ads:loadAdOnCreate="true"
                ads:testDevices="HT9CWP803129" />
    </RelativeLayout>
    </LinearLayout>

. В вашем Java-коде поместите эти строки в onCreate метод

// Load addvertisment
        AdView adView = (AdView) findViewById(R.id.adView);
        // Request for Ads
        AdRequest adRequest = new AdRequest.Builder().addTestDevice("FF9CD441FA62FD456D7D571B91DD11DD").build();

        adView.loadAd(adRequest);

Это сработало в моем коде, надеюсьэто вам тоже поможет.

3 голосов
/ 15 октября 2018

Я вижу, что в вашем коде есть две проблемы, основанные на том, что вы опубликовали: -

  1. Раздел <metadata> должен содержать ADMOB_APP_ID вместо вашего ID издателя. Это должно быть объявлено в теге <application> в ApplicationManifest.xml.

    <meta-data
        android:name="com.google.android.gms.ads.APPLICATION_ID"
        android:value="[ADMOB_APP_ID]"/>
    

    вы можете найти ADMOB_APP_ID на панели инструментов ADMOB, нажмите на приложение
    и проверьте «Настройки приложения». Вы можете увидеть APP_ID, который начинается
    обычно с ca-app-pub-0123456789012345 .

  2. Вторая проблема заключается в том, что вы объявили AdView в своем макете. Помните, что вы должны предоставить рекламный блок, а не ваш идентификатор издателя, который вы можете создать в панели управления ADMOB, нажав на вкладку "Рекламный блок"
    по вашему заявлению. Поместите правильный "рекламный блок" против вашего AdView, как показано ниже.

    ads:adUnitId="ca-app-pub-3940256099942544/6300978111" <!-- remember this is adUnit not App ID and this value above is for test banner Ad. -->
    

После устранения вышеуказанных проблем выполните следующие действия: -

MobileAds.initialize(this, "YOUR_ADMOB_APP_ID"); в onCreate вашей первой деятельности. Это нужно сделать только один раз, и, таким образом, правильное место - либо ваше первое действие, либо обратный вызов приложения onCreate.

Найдите AdView в упражнении onCreate, где вы включили AdView в макет.

mAdView = findViewById(R.id.adView);
AdRequest adRequest = new AdRequest.Builder().build();
mAdView.loadAd(adRequest);

Тестовые объявления работают, предоставляя тестовый Adunit, опубликованный Google.

mAdView.setAdSize(AdSize.BANNER);
mAdView.setAdUnitId("ca-app-pub-3940256099942544/6300978111");

Кроме того, если вы хотите обрабатывать рекламные события, сделайте следующее: -

mAdView.setAdListener(new AdListener() {
    @Override
    public void onAdLoaded() {
        // Code to be executed when an ad finishes loading.
    }

    @Override
    public void onAdFailedToLoad(int errorCode) {
        // Code to be executed when an ad request fails.
    }

    @Override
    public void onAdOpened() {
        // Code to be executed when an ad opens an overlay that
        // covers the screen.
    }

    @Override
    public void onAdLeftApplication() {
        // Code to be executed when the user has left the app.
    }

    @Override
    public void onAdClosed() {
        // Code to be executed when when the user is about to return
        // to the app after tapping on an ad.
    }
});
3 голосов
/ 18 июня 2014

Вы используете ads: adUnitId = "Мой идентификатор издателя" заменить его на ads: adUnitId = "Здесь AdUnitId для этого приложения" Примечание. Вам необходимо создать приложение на Admob, и вы получите AdUnitId для этого созданного приложения. Вам не нужно использовать идентификатор издателя.

3 голосов
/ 06 мая 2014

Будьте осторожны с идентификатором, есть 2 кода: номер редактора (например, pub-xxxxxxxxxxxxxxxx), а другой - идентификатор баннера (например, ca-app-pub-xxxxxxxxxxxxxxxx / xxxxxxxxxx)

Вам нужно использовать последний, если первый не работает :)

2 голосов
/ 18 февраля 2015

Возможно, проблема с пробелом. Необходимо убедиться, что это место доступно для показа рекламы.Если у вас есть отступ на родительском макете, это может уменьшить доступное пространство.Согласно документам google Admob объявление не будет отображаться, если для его показа не будет места.

"SDK запросит любой размер, для которого был создан запрашивающий AdView.Если на экране устройства недостаточно места для показа рекламы, ничего не будет показано. "

Поэтому я предлагаю убедиться, что на родительском макете нет отступов, и фактически назначить высоту и ширинубаннерное объявление, подобное этому

<com.google.ads.AdView
    android:id="@+id/adView"
    android:layout_alignParentBottom="true"
    android:layout_width="@dimen/banner_width"
    android:layout_height="@dimen/banner_height"
    ads:adSize="BANNER"
    ads:adUnitId="My Publisher ID"
    ads:loadAdOnCreate="true"/>

И сохраните соответствующие размеры в ваших измерениях. xml в папке значений.

2 голосов
/ 11 сентября 2011

убедитесь, что ваш адмоб издатель правильный ID. Это случилось со мной однажды, и я не мог понять ошибку примерно 15 дней.

В Admob каждое отправляемое вами приложение получает другой идентификатор издателя. Он уникален для каждого приложения, а не для пользователя.

2 голосов
/ 08 августа 2011

Некоторые из этих возможных решений могут показаться очевидными, но убедитесь, что они выполнены:

-замените «Мой идентификатор издателя» в android: value = «Мой идентификатор издателя» с вашим фактическим идентификатором издателя.

- убедитесь, что в файле манифеста указано разрешение на подключение к Интернету:

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

Если вы выполнили эти действия, вы также можете попробовать поместить следующий код в раздел «При создании» вместоваш текущий:

   AdView adView = (AdView)this.findViewById(R.id.adView);
   AdRequest adRequest = new AdRequest();
   adRequest.setTesting(true);
   adView.loadAd(adRequest);
   adView.loadAd(new AdRequest());

или

    AdManager.setTestDevices( new String[] {AdManager.TEST_EMULATOR});

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

Перед публикацией не забудьте, однако, избавиться от setTestDevice!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...