Объявления AdMob не отображаются?

Я в отчаянии. У меня есть специальный LinearLayout для рекламы

<LinearLayout
            android:id="@+id/layout1"
            android:layout_width="fill_parent"
            android:layout_height="52dp"
            >
</LinearLayout>

Я заполняю его рекламой из кода

adView = new AdView(this, AdSize.BANNER, MY_AD_UNIT_ID);
LinearLayout bout = (LinearLayout) findViewById(R.id.layout1);
bout.addView(adView);
// Initiate a generic request to load it with an ad
adView.loadAd(new AdRequest());

Файл манифеста выглядит так

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

<activity android:name="com.google.ads.AdActivity"
          android:configChanges="keyboard|keyboardHidden|orientation"
/>

И в путь добавляется JAR GoogleAdMobAdsSdkAndroid-4.1.1.

Никакая реклама НИКОГДА не появляется. В Logcat я вижу, что

08-23 12:03:04.527: WARN/Ads(28980): IOException при подключении к URL-адресу объявления.
08-23 12:03:04.527: INFO/Ads(28980): onFailedToReceiveAd(Произошла ошибка сети.)

Я проверяю это на реальном устройстве.

Какие-либо предложения?


person sandalone    schedule 23.08.2011    source источник


Ответы (2)


В последней версии admob (я думаю, 4.1) простая форма для размещения рекламы admob — это xml. Вы должны только поставить:

//В начале xml
xmlns:ads="http://schemas.android.com/apk/lib/com.google.ads"

        <com.google.ads.AdView
            android:id="@+id/Ads"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"

            ads:adUnitId="a14daeadccXXXXX"
            ads:adSize="BANNER"
            ads:loadAdOnCreate="true"/> 

Затем разрешите и помните, не добавляйте отступы к линейному макету, иначе реклама не появится.

person Aracem    schedule 23.08.2011
comment
stackoverflow .com/questions/6727369/ stackoverflow.com/questions/6905291/ Вы можете попробовать приложение в эмуляторе - person Aracem; 23.08.2011
comment
да. Пожалуйста, посмотрите на ответ ниже. Это может быть нелогично, но это сработало :). Я предлагаю использовать его в случае, если метод по умолчанию не работает. - person sandalone; 24.08.2011

Похоже, файлу манифеста по-прежнему НЕОБХОДИМЫ метаданные, хотя официальные документы ничего об этом не говорят. Итак, в файле манифеста добавьте метаданные (помимо других данных), и реклама будет отображаться.

<application android:label="App Name" android:icon="@drawable/icon">
        <meta-data
            android:name="ADMOB_PUBLISHER_ID"
            android:value="XXXXXXXXXXXXXX"
            >
        </meta-data>
...

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

person sandalone    schedule 24.08.2011
comment
Я не думаю, что это необходимо, если вы создадите свой AdView в xml и поместите туда атрибут ads:adUnitId. - person IgorGanapolsky; 06.07.2012