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

Вводим «AdMob» в Google и первым сайтом уже будет не AdMob-ский, а Google-ский сайт. После перехода на оный Вас начнут по немногу переманивать на темную сторону Firebase (недавно купленный Google).

Firebase дает довольно обширные возможности по аналитике (по крайней мере для меня, как программиста, а не маркетолога) рекламы в вашем приложениее (рост, вес, страна, кол-во просмотров, версии Android куда установливалось и тд. и тп.).

Первым делом был найден пост , но он для Eclipse, а после первых попыток сделать по примеру - начались предупреждения о depricated да и вообще ошибки.

Прочитав больше информации стало понятно, что переход AdMob на firebase произошел недавно и разбиратся придется самому.

Давайте посмотрим как с этим жить теперь

Минимальные требования: (с учетом которых была написана статья).
  • Android Studio 2.2.2
  • Быть зарегистрированным в Google Developer Console
  • Быть зарегистрированным на AdMob
Шаг 1
Добавляем зависимости в build.gradle файлы. Первым делом в "Module: app":


Теперь во второй ("Project: AdMobOnHabr"):


После чего рекомендуется сделать Tools → Android → «Sync Project with Gradle Files» и скомпилировать проект. Видимого результата еще нету, но главное - ошибок нету? Отлично! Идем дальше.
Шаг 2
Входим в свой аккаунт на AdMob . Выбираем ручное добавление приложения (если Ваше приложение уже опубликовано в Google Play - воспользуйтесь поиском в первой вкладке).


Добавим в наше приложение рекламный баннер (с другими видами предлагаю ознакомится самостоятельно). Частоту обновления Я выбрал минимально допустимую - 30 сек., название рекламного блока на Ваше усмотрение.


Дальше Вам предложат «Настройте Firebase Analytics (необязательно )» - нужное слово подчеркул. Пока что это ни к чему - пропускаем . Ознакамливаемся с «инструкциями по интеграции», жмем Готово . После переадресации видим страницу и долгожданный ID рекламного блока:


Добавляем ad unit ID в strings.xml :


Не забудьте, что для рекламного блока на другой Activity нужен новый ID.
Шаг 3
Добавляем AdView элемент на activity_admobbanner.xml :


В атрибут "ads:adUnitId" записываем ресурс из strings.xml с ID рекламного блока.

Несколько советов и заметок:

Шаг 4
Инициализируем Google Mobile Ads SDK. Для этого Вам понадобится app ID взятый с AdMob. Жмем шестеренку справа вверху → Управление приложением:


Вот оно, счастье нужный app ID:


Пишем саму, собственно, инициализацию используя свой app ID:

Шаг 5
Последнее действие по версии Google - загрузить долгожданную рекламу в AdView элемент:


На эмуляторе следуя политике AdMob вы не можете выводить реальную рекламу (показывается только тестовая). Довольно логично. Но если у Вас есть реальное устройство - можете протестировать рекламу в действии на нем и порадовать себя успехом.



Вроде бы все сделали как написано, все должно работать, а нам пора ложится спать работать над следующей фичей но…
Шаг 6
Где-то между строк Вы должны были прочитать, что без google-services.json оно работать не будет. Скорее всего, даного файла у Вас еще нету. Давайте искать вместе.

Google любезно предоставляет Вам «простыни» инструкций как сделать google-services.json . Но у меня возник вопрос - неужели в 2к16 году нужно самому сидеть и писать этот файл, который, к всему, скорее всего довольно шаблонный?

Ответ находится в Google Developer Console , где все таки подумали про желание ленивого программиста.

Заполняем поля:


Жмем Continue. Выбираем Google Sing-In. Дальше просто - Вы же знаете на память свой SHA-1?


Если вдруг запамятовали - могу помочь. SHA-1 можно узнать с помощью keyltool или немного по-топорному - через gradle в самой AS . Так как лишних действий делать не хочется - выберем второй способ:

  1. Нажать на боковую вкладку Gradle (справа в окне AS);
  2. Выбрать Ваш проект (при надобности нажмите Refresh);
  3. Открыть Tasks -> android;
  4. Двойной клик по signingReport;
  5. Переключить в текстовый режим отображения Run console (см. скриншот ниже);
  6. Не забудьте выбрать потом свое приложение для билда (а не signingReport);
А вот и Ваш SHA-1. Вспомнили?


Вставляем полученый SHA-1 код, жмем «Enable Google Sign-In» и «Continue to Generate configuration files».


Ну, вы поняли. Скачиваем сгенерированный файл и копируем в корневой каталог приложения:


Собираем свой проект - готово . Путем подобных несложных манипуляций в Вашем приложении теперь есть реклама.

P.S.: Код в картинках, чтобы люди хоть что-то запомнили, а не просто скопипастили за несколько секунд.

Монетизация приложения является обычно самоцелью его создания: реклама является одним из способов получения прибыли от бесплатных приложений.

Сегодня рассмотрим как встроить в свое приложение простой рекламный блок AdMob.

Процесс регистрации в сервисе рассматривать не будем начнем сразу с создания рекламного блока.

AdMob. Часть 1. Добавляем простой рекламный блок AdMob в приложение Android
AdMob. Часть 2. Добавляем межстраничное объявление AdMob в приложение Android

Этап 1. Добавление приложения и рекламмного блока в AdMob

На этом этапе подразумевается, что приложение уже частично создано.
Входим в AdMob и нажимаем кнопку "Монетизировать новое приложение" .

Если приложение уже есть на Google Play, то пробуем найти его, если же приложение еще не опубликовано (или с момента публикации прошло мало времени и приложение не найти) нажимаем на "Добавить приложение вручную".

Вводим название нашего приложения, выбираем платформу (В нашем случае Android)

Жмем "Добавить приложение"

Теперь AdMob предлагает настроить индентификатор отслеживания Google Analitics, пока выбираем "Не анализировать приложение", добавить Google Analitics можно будет позднее.

Следующий этап — создание объявления:

Выбираем тип объявления: "Баннер", о межстраничных объявлениях поговорим позднее.

Тип объявления выбираем все.

Автоматическое обновление: оставляем по умолчанию или изменяем на целесообразное с вашей точки зрения.

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

AdMob создал объявление и присвоил ему id, в нашем случае "ca-app-pub-1861911852409612/3589765162", копируем идентификатор (если не скопировали — ничего страшного, он будет в списке объявлений).

Жмем "Готово".

Этап 2. Добавление баннера в приложение

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

Не забудьте сменитьads:adUnitId="" на свой.

А атрибутах разметки добавим:


Все, рекламный блок в разметку добавили.
Далее открываем Manifest нашего приложения и добавляем следующие разрешения:

Добавить разрешения можно непосредственно перед тегом

Так же добавим в манифест новую activity нашего баннера:

С редактированием manifest"а закончили, теперь необходимо подключить сервисы Google Play в приложение:

Открываем Gradle Scripts->build.gradle(Module: app) и в dependencies добавляем строку

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

Все, теперь баннер добавлен, через пару дней после публикации можно будет связать приложение в AdMob с приложение на Google Play.

PhoneGap это инструмент, позволяющий разрабатывать приложения на JavaScript и конвертировать их в нативные приложения мобильных платформ (такие как Android и iOS). AdMob это платформа для подключения рекламных баннеров в ваше приложения за просмотры и клики по которым можно получать деньги. Здесь я расскажу, как подключить к Android PhoneGap приложению рекламу от Google AdMob. Для этого понадобится сделать следующее

1. Зарегистрироваться в AdMob и получить Publisher ID для подключения рекламного баннера.
2. Внести изменения в Android проект для отображения рекламного баннера

1. Регистрация в AdMob и gполучение Publisher ID для подключения рекламы.

1. Зайти на сайт http://www.google.com/ads/admob/
2. Выбираем в меню Add Site/App
3. Выбираем Android App
4. Заполняем App Name, Category и App description. Не надо заполнять Android Package URL пока наше приложение не находится в Google Play. Оставляем это поле полностью пустым. (Нужно удалить из поля то, что там уже введено по умолчанию - это market://)
5. Нажимаем OK
6. Далее вы увидите экран на котором вам предлагают скачать AdMob Android SDK. Скачаем AdMob SDK потом, пока что нажимаем здесь Go to Sites/Apps.
7. Теперь вы видите список ваших приложений. Найдите добавленное только что приложение и наведите на его имя указатель мыши. Вы увидите появится кнопка Manage Settings. Нажимаем ее.
8. Теперь мы видим Publisher ID. его значение нужно будет вставить в качестве значения поля AdMob_Ad_Unit в нашем Android приложении.

2. Подключение AdMob к Android проекту

Скачать AdMob SDK можно здесь

После того как скачали необходимо положить скачанный файл в папку libs нашего android проекта.


1. Если работаем в Intellij Idea то нажимаем правой кнопкой по добавленному jar файлу и выбираем Add as Library...
2. Если работаем в Eclipse, то нажимаем правой кнопкой на проекте и выбираем Build Path --> Configure Build Path. Теперь выбираем вкладку Libraries и нажимаем кнопку Add Jars. Выбираем yourProject/libs/GoogleAdMobAdsSdk-*.*.*.jar

В главном java файле вашего android приложения необходимо добавить следующее.
1. Добавить к импорту
import com.google.ads.* ; import android.widget.LinearLayout ;

2. Добавить константу и переменную в класс
private static final String AdMob_Ad_Unit = "xxxxxxxxxxxxxxx" ; private AdView adView;

3. В методе onCreate после строчек
super .loadUrl (Config.getStartUrl () ) ;
добавить следующие строчки
adView = new AdView(this , AdSize.BANNER , AdMob_Ad_Unit) ; LinearLayout layout = super .root ; layout.addView (adView) ; AdRequest request = new AdRequest() ; // для запуска на эмуляторе можно раскомментировать adView.loadAd (request) ; Вот как главный файл проекта выглядит у меня
import android.os.Bundle ; import org.apache.cordova.* ; import com.google.ads.* ; import android.widget.LinearLayout ; public class MyCoolApp extends DroidGap { private static final String AdMob_Ad_Unit = "xxxxxxxxxxxxxxx" ; private AdView adView; @Override public void onCreate(Bundle savedInstanceState) { super .onCreate (savedInstanceState) ; // Set by in config.xml super .loadUrl (Config.getStartUrl () ) ; //super.loadUrl("file:///android_asset/www/index.html") adView = new AdView(this , AdSize.BANNER , AdMob_Ad_Unit) ; LinearLayout layout = super .root ; layout.addView (adView) ; AdRequest request = new AdRequest() ; //request.addTestDevice(AdRequest.TEST_EMULATOR); adView.loadAd (request) ; } }
Добавляем в AndroidManifest в раздел aplication следующее
android:name ="com.google.ads.AdActivity" />
Также нужно проверить чтобы в AndroidManifest в разделе manifest были строки

Вот как выглядит AndroidManifest у меня
android:versionCode ="3" android:versionName ="1.0.0" android:windowSoftInputMode ="adjustPan" package ="com.danilov.mycoolapp" xmlns:android ="http://schemas.android.com/apk/res/android" > android:normalScreens ="true" android:resizeable ="true" android:smallScreens ="true" android:xlargeScreens ="true" /> android:icon ="@drawable/icon" android:label ="@string/app_name" > android:configChanges ="orientation|keyboardHidden|keyboard|screenSize|locale" android:label ="@string/app_name" android:name ="Badlibs" android:theme ="@android:style/Theme.Black.NoTitleBar" > "android.intent.category.LAUNCHER" /> android:configChanges ="keyboard|keyboardHidden|orientation|screenLayout|uiMode|screenSize|smallestScreenSize" android:name ="com.google.ads.AdActivity" /> "android.permission.ACCESS_NETWORK_STATE" />

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

Теперь нужно импортировать библиотеку с 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.
Рекламе необходим интернет и проверка текущего состояния сети, поэтому нашему приложению понадобятся разрешения (указываем в теге ):

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

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

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

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

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

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

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

ca-app-pub-xxxxxxxxxxxxxxxx/xxxxxxxxxx

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

@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); //.... }

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