Как добавить рекламу Android AdMob Ads — используем новый Google Play Services.

Admob Ads English version English version

Upd: новая статья о добавлении AdMob + Firebase

Со времени выхода предыдущей статьи о добавлении рекламы AdMob произошли кое-какие изменения, и сегодня я расскажу о них поподробнее.
Работать мы будем не с новым проектом, а с уже существующим, используя Eclipse. Google составил хорошую инструкцию о том, как добавить рекламу, работая в Android Studio, а я расскажу об альтернативе.
Проект я возьму из предыдущих статей о ContentProvider, исходный файлы разметки и код Activity можно посмотреть здесь.
Итак, для начала нам нужно скачать (или проверить) последнюю версию пакета Google Play Services:
1. Открываем Android SDK Manager (Window -> Android SDK Manager)
2. Прокручиваем окно пакетов вниз до секции Extras и смотрим, есть ли обновления или установлена последняя версия.

sdk_manafer_admob

Теперь нужно импортировать библиотеку с Google Play Services, чтобы потом подключить ее к нашему проекту:

1. File -> Import… -> Existing Android Code into Workspace
2. Библиотека лежит в папке с Android SDK: \sdk\extras\google\google_play_services\libproject\google-play-services_lib
3. Выбираем данную папку и нажимаем Finish.

Осталось только подключить данную библиотеку к проекту:

1. Открываем свойства нашего проекта: выделяем в Eclipse папку с проектом, File -> Properties
2. В окне свойств открываем секцию Android, и снизу в табличке Library нажимаем Add…
3. В появившемся окне выбираем google-play-services_lib — готово, библиотека подключена.

Теперь нужно задать необходимые настройки в файле AndroidManifest.xml.
Рекламе необходим интернет и проверка текущего состояния сети, поэтому нашему приложению понадобятся разрешения (указываем в теге <manifest>):

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

Также для корректной работы AdMob необходимо указать используемую версия библиотеки Google Play Services и определить рекламную Activity (указываем в теге <application>):

<meta-data android:name="com.google.android.gms.version"
	android:value="@integer/google_play_services_version" />

<activity android:name="com.google.android.gms.ads.AdActivity"
	android:configChanges="keyboard|keyboardHidden|orientation|screenLayout|uiMode|screenSize|smallestScreenSize"
	android:theme="@android:style/Theme.Translucent" />

Теперь переходим к файлу разметки. Ранее он имел такой вид:

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

    <ListView
        android:id="@+id/lvItems"
        android:layout_width="match_parent"
        android:layout_height="0dp"
        android:layout_weight="1" >
    </ListView>

</LinearLayout>

Мы разместим рекламу под списком, добавив вот этот элемент:

<com.google.android.gms.ads.AdView
	android:id="@+id/adView"
	android:layout_width="match_parent"
	android:layout_height="wrap_content"
	ads:adSize="BANNER"
	ads:adUnitId="@string/banner_ad_unit_id">
</com.google.android.gms.ads.AdView>

И activity_main.xml будет выглядеть следующим образом:

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

    <ListView
        android:id="@+id/lvItems"
        android:layout_width="match_parent"
        android:layout_height="0dp"
        android:layout_weight="1" >
    </ListView>
    
    <com.google.android.gms.ads.AdView
        android:id="@+id/adView"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        ads:adSize="BANNER"
        ads:adUnitId="@string/banner_ad_unit_id">
    </com.google.android.gms.ads.AdView>

</LinearLayout>

!!! Не забудьте прописать пространство имен

xmlns:ads="http://schemas.android.com/apk/res-auto"

чтобы не выдавалась ошибка на неизвестные ads:adSize и ads:adUnitId.

Ad unit ID для удобства можно добавить в /res/values/strings.xml в виде:

<string name="banner_ad_unit_id">ca-app-pub-xxxxxxxxxxxxxxxx/xxxxxxxxxx</string>

Не забудьте вставить реальный идентификатор рекламы! Найти его можно на сайте Admob, в разделе App Management, нажав на надпись в столбце Ad units.

Осталось только начать загрузку рекламы в методе onCreate() класса MainActivity:

@Override
protected void onCreate(Bundle savedInstanceState) {
	super.onCreate(savedInstanceState);
	setContentView(R.layout.activity_main);
	//....
	AdView mAdView = (AdView) findViewById(R.id.adView);
	AdRequest adRequest = new AdRequest.Builder().build();
	mAdView.loadAd(adRequest);
	//....
}

И запустить наше приложение:

00_new_admob_example

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

Translate »