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

💖 Нравится? Поделись с друзьями ссылкой

Со времени выхода о добавлении рекламы 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); //.... }

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

Вводим «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.: Код в картинках, чтобы люди хоть что-то запомнили, а не просто скопипастили за несколько секунд.

Во-первых, вам нужен аккаунт разработчика Google Play. Рекламу нельзя будет увидеть, если ваше приложение не находиться в Google Play или iTunes App Store .

Во-вторых вам нужен аккаунт в AdMob . Зайдите в свой Google-аккаунт и переходите по ссылке https://www.google.ru/admob/ . Укажите свои данные и пройдите регистрацию в AdMob.

Теперь ищите своё приложение из магазина Google Play Market или iTunes App Store .



Приложение можно найти даже если оно находиться в бета версии Google Play .

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

Форматы объявлений

  • Баннер — это маленький баннер, который может всё время находиться внизу или вверху игры.
  • Межстраничное объявление — реклама, которая открывается во весь экран в естественных паузах игры. Может использовать тип видеообъявления .
  • Межстраничное объявление с вознаграждением — нельзя сделать только с одним AdMod. Для создания такого объявления нужно использовать сторонние рекламные сети, показывающие видеообъявления с вознаграждением, такие как Chartboost .
  • Нативный — это настраиваемые объявления, ориентированные на установку приложений. Вы можете выбирать как будет выглядеть реклама в вашем приложении из предложенных шаблонов.

Все настройки можно оставить как есть. Но если хотите, можете изменить вид баннера. Для этого выберите стиль — Настраиваемый :

Если вы не видите образец баннера, то выключите AdBlock

Вы также можете настроить это с помощью действий объекта AdMob в менеджере событий:

Итак, введите название баннера и нажмите Сохранить .

Вы получите


Настройка баннера AdMob в Clickteam Fusion 2.5

Поместите объект AdMob на сцену игры. В его свойствах пропишите идентификатор рекламного блока в поле для баннера (Banner Id ) для Android :



Поле Interstitial Id используется для межстраничных полноэкранных объявлений.

Размеры баннера

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

Размер (ШxВ) Название Используется
320×50 Standard Banner Телефоны и планшеты
320×100 Large Banner Телефоны и планшеты
300×250 IAB Medium Rectangle Телефоны и планшеты
468×60 IAB Full-Size Banner Планшеты
728×90 IAB Leaderboard Планшеты
Screen width x 32|50|90 Smart Banner Телефоны и планшеты

Все размеры имеют определённую ширину и высоту, кроме последнего.

Smart Banner — это универсальный тип размера для баннера. Рекламный блок всегда растягивается на всю ширину на любой размер экрана на различных устройствах и в любой ориентации. Смарт-баннеры определяют ширину телефона в его текущей ориентации и показывают объявления соответствующего размера.

Для некоторых устройств, таких как телефоны, высота устройства зависит от его ориентации. Смарт-баннеры на телефонах в портретной ориентации занимают полную ширину и 50dp в высоту, в ландшафте — полную ширину и 32dp в высоту. А на планшетах объявления занимают полную ширину и 90dp в высоту в обоих случаях.

Вы можете изменить размер баннера в событиях:

Позиция баннера

Здесь всё просто. Вы должны выбрать расположении баннера: сверху, снизу или по центру:

Так же можете изменить расположение баннера в событиях:

В свойствах объекта остались ещё две опции: Display Overframe и Devices list. Честно говоря, я не понял зачем нужна опция Display Overframe . Пробовал и с ней и без неё, баннер отображается одинаково.

Опция Testing Devices во многом бесполезна на мой взгляд. Она нужна, когда вы уже опубликовали приложение, а потом решили внедрить в него рекламу. И что бы посмотреть, как будет выглядеть рекламный блок в вашем приложении, до того как его увидят ваши игроки, вы используете эту опцию. В столбик или через запятую вы должны перечислить какие-то хэш — идентификаторы устройств для тестирования. Я так и не понял где посмотреть этот самый хэш — идентификатор . Правда, я особо с этим и не заморачивался. Если знаете о чём тут речь, напишите, пожалуйста, комментарий с объяснением.

Показать рекламу

После настройки, создайте событие для отображения баннера:

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

В настройках приложения на вкладке Android Options необходимо отметить галочки:

INTERNET
ACCESS_NETWORK_STATE
READ_PHONE_STATE

Обязательно нужно установить API 10 в Android SDK Manager . Вы можете создать приложение с любым API, но вы должны установить 10, что бы правильно экспортировать admob .

Теперь постройте приложение и обновите APK файл в Google Play . Перейдите на страницу приложения, во вкладке Цены и распространение должно быть отмечено, что в игре есть реклама:

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

Мошенничество с кликами и недействительный трафик

  • Мошеннические клики – это клики, которые производятся с целью обмана или нанесения ущерба.
  • Недействительный трафик – это клики и показы объявлений AdWords , которые, по мнению Google , не вызваны заинтересованностью пользователя. К ним относятся клики, совершенные случайно или с целью обмана, а также другой автоматически созданный трафик. Хотя рекламодатели и не платят за них, подобный трафик может увеличить число конверсий и посещений сайта.

Настройка выплат

В аккаунте AdMob перейдите на страницу Платежи :

В разделе История транзакций вы можете посмотреть ваш текущий баланс. А в разделе Настройка платежей вы можете указать способ оплаты. Но сделать это и вывести свои деньги вы сможете, только когда ваш доход достигнет $10 .

На этом пока всё. Удачной вам монетизации игр! Поставь лайк и звездочку внизу↓

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» в 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.: Код в картинках, чтобы люди хоть что-то запомнили, а не просто скопипастили за несколько секунд.

Рассказать друзьям