Самый простой способ монетизации мобильного приложения заключается в том, чтобы заключить договор с рекламодателем и затем показывать в приложении релевантную рекламу. Это предельно просто: на экране отображается рекламное объявление, пользователи нажимают на него, и Вы делаете на этом деньги. Основным продуктом в этой отрасли является AdMob от Google, который предлагает SDKs для приложений как iOS, так и Android. И он может быть интегрирован в приложение буквально за несколько минут. Тем не менее в библиотеке Android есть один недостаток, который состоит в том, что последняя является частью сервисов Play Google, а они могут увеличивать размер приложения. Сегодня мы рассмотрим новую SDK для Android под названием Ads Lite, которая позволит нам уменьшить размер приложения и сократить количество обязательных зависимостей. Это может быть очень полезно, если Вы упираетесь в ссылочный лимит 64K и вынуждены мультидексировать приложение.
Монетизация приложения при помощи AdMob
Прежде чем мы сможем интегрировать SDK, мы должны создать наше приложение в AdMob. Если у Вас еще нет аккаунта в AdMob, то сейчас самое время для того, чтобы его создать. После того как учетная запись будет создана, Вы можете просто нажать на кнопку Monetize App, чтобы найти Ваше приложение в магазине приложений или же добавить его вручную. Следует выбрать режим Manual в том случае, если Вы еще не размещали приложение в Google Play.
Следующим шагом необходимо выбрать формат рекламы, которую мы хотим интегрировать в приложение. Самый простой формат рекламного объявления — это баннер, который размещается вдоль приложения. У нас есть контроль над тем, как часто будут показываться объявления и над тем, какой тип рекламы в них будет присутствовать. Затем мы можем привязать Firebase для расширенной аналитики или же пропустить этот пункт.
На этом этапе мы можем добавить дополнительные рекламные блоки или получить инструкции по установке. Если мы хотим добавить баннеры во многие Activities, тогда создание рекламных блоков для каждого из них окажется отличной практикой. Вернувшись на главный экран приложения, мы должны записать идентификатор приложения и идентификатор рекламного блока для интеграции в коде:
Приступаем к работе с Ads Lite SDK
Ads Lite — это совершенно новый SDK, который был введен с Google Play services 9.6.1. Этот комплект разработчика имеет гораздо меньше зависимостей, чем стандартный Ads SDK, но он все еще требует минимальной версии 24.2.1 библиотек поддержки Android. Это означает, что Ads Lite в настоящее время — на момент написания этой статьи — несовместимы с приложениями Xamarin.Forms (по этому вопросу ознакомитесь с моим материалом о добавлении рекламы в приложения Xamarin.Forms). Однако, Ads Lite могут быть с легкостью добавлены к традиционным приложениям Xamarin.Android при помощи пакета NuGet.
Добавление разрешений и Activity рекламы
После того как SDK будет добавлен, мы должны обновить наш Android Manifest несколькими разрешениями и дефолтным рекламным activity, чтобы запуск сервиса стал возможен.
Для корректной работы Google Mobile Ads Lite SDK требуют следующих разрешений: Internet и Access Network State. Мы можем добавить их со следующими атрибутами уровня сборки:
1 2 | [assembly: UsesPermission (Android.Manifest.Permission.Internet)] [assembly: UsesPermission (Android.Manifest.Permission.AccessNetworkState)] |
Или же мы можем добавить их непосредственно в Android Manifest вручную. Источник Android Manifest можно найти в папке Properties в Visual Studio или Xamarin Studio.
1 2 | <uses-permission android:name="android.permission.INTERNET" /> <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> |
Внутри тега приложения мы добавим этот очень специфический узел activity:
1 2 3 | <activity android:name="com.google.android.gms.ads.AdActivity" android:configChanges="keyboard|keyboardHidden|orientation|screenLayout|uiMode|screenSize|smallestScreenSize" android:theme="@android:style/Theme.Translucent" /> |
Интеграция AdView
Теперь мы можем начать добавлять AdViews во всем нашем приложении. Просто откройте файл макета, где будет находиться реклама, и в корневом узле добавьте кастомные xmlns для нашей рекламы под атрибутом xmlns:android:
1 | xmlns:ads="http://schemas.android.com/apk/res-auto" |
Далее, можно добавить элемент управления AdView:
1 2 3 4 5 6 7 | <com.google.android.gms.ads.AdView android:id="@+id/adView" android:layout_width="wrap_content" android:layout_height="wrap_content" ads:adSize="SMART_BANNER" ads:adUnitId="@string/banner_ad_unit_id"> </com.google.android.gms.ads.AdView> |
Обратите внимание, что мы используем ключевое слово SMART_BANNER для adSize, чтобы динамически заполнить ширину и высоту, и ссылаемся на @string/banner_ad_unit_id для adUnitId, который мы получаем от AdMob. Идентификатор должен быть помещен в папку ресурсов strings.xml. Этот идентификатор начинается с ca-app-pub и в нем имеется /.
1 | <string name="banner_ad_unit_id">YOUR_AD_UNIT_ID</string> |
Инициализация Ads SDK
Наш AdView готов к тому, чтобы начать показывать рекламу. Но сперва мы должны удостовериться в том, что SDK инициализирован с нашим идентификатором приложения. Производить инициализацию лучше всего при запуске приложения, например, в OnCreate нашего MainActivity. Этот идентификатор начинается с ca-app-pub, и у него есть ~.
1 2 | var id = "YOUR_ADMOB_APP_ID"; Android.Gms.Ads.MobileAds.Initialize(ApplicationContext, id); |
Наконец, мы должны отправить запрос на рекламное объявление в коде, показанном выше, где загружается макет:
1 2 3 | var adView = FindViewById<AdView>(Resource.Id.adView); var adRequest = new AdRequest.Builder().Build(); adView.LoadAd(adRequest); |
Смотрим работу в действии
На данный момент все готово к тому, чтобы мы могли запустить приложение. Следует использовать эмулятор Google Android с Google Play services или физическое устройство.
В результате все должно выглядеть очень похожим на стандартную тестовую рекламу AdMob, если Вы использовали стандартный Ads SDK в вашем приложении и знаете, что это такое. В действительности вы можете просто заменить стандартный Ads SDK на Lite SDK, не делая при этом абсолютно никаких изменений в коде!
Ограничения
Ads Lite является более легкой потому, что существенно отличается от стандартных Ads SDK, который включает в себя клиентские библиотеки сервисов Google Play. Ads Lite отсекает реализацию и оставляет для нас только интерфейс, над которым мы можем работать. Это означает, что на устройстве, на котором будет запускаться Ваше приложение, должны быть установлены и обновлены сервисы Google Play. Использовать Lite SDK рекомендуется только в том случае, если приложение будет распространяться через Google Play store. Если на устройстве не будут установлены сервисы Google Play, тогда появится сообщение об ошибке, и рекламные объявления отображаться не станут.
Заключение
Чтобы узнать больше о Ads Lite SDK, не забудьте ознакомиться с документацией Firebase и полной документацией Ads SDK по вопросу интеграции рекламных материалов. Вы можете изучить готовый пример интеграции Ads Lite SDK в моем приложении Monkeys App на GitHub. Если вы хотите интегрировать рекламу AdMob в Ваши приложения Xamarin.Forms, прочитайте эти посты об интеграции AdMob в приложения как iOS, так и Android Xamarin.Forms.
Автор: James Montemagno
Источник: Официальный блог Xamarin
Это не работает! Выдает кучу ошибок. Проверьте! Сделайте годный мануал.
Добрый день!
Я сделал все по мануалу и заработало, да проблема действительно была на этапе «Интеграция AdView» в этой строке:
xmlns:ads=»http://schemas.android.com/apk/res-auto»
на сайте стоит плагин для сокращения ссылок и он ее сократил.
Ошибок у в приложении никаких не сыпалось, единственно пришлось подождать пока активируется рекламный баннер, вычитал что на это может понадобиться до 5 часов после добавления баннера в панели AdMob
У меня получился вот такой баннер:
http://take.ms/459Br
Если проблемы все равно остались напиши в личку помогу решить https://vk.com/jasper777
«Легкая реклама» — звучит как издевательство.