Додавання AdMob реклами в Android додаток з використанням Firebase

Передмова

Вводимо «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 рекламного блоку.

Кілька порад і нотаток:

  • Не переплутайте ads та app при додаванні namespace в батьківський ViewGroup;

  • На API < 16 додавши View елемент реклами і помилково прописавши xmlns:app='http://schemas.android.com/apk/res-auto' видало просто помилку рендеринга з-за атрибуту 'adSize' (adSize was missing). Згадую це так як подібна помилка може виникнути і в інших випадках. Рішення яке мені допомогло: додати xmlns:ads='http://schemas.android.com/apk/res-auto' тег View елемента реклами (Рада взято з SO;

  • Якщо значення атрибуту 'ads:adSize' виставлено BANNER, то рекламний блок буде, швидше за все, не на весь екран пристрою (по ширині). Мене таке обрізання не влаштувало. Рішення просте — змінити значення атрибута на SMART_BANNER. Є невелике АЛЕ — після додавання даного значення банер може стати великим на preview і закрити собою корисні елементи, виправимо це додавши атрибут і виставивши потрібну Вам висоту:


    Не забудьте додати namespace для tools в батьківський ViewGroup:


  • Рада за Code Style тегаGoogle рекомендує писати тег закриваючи так:


    Але, AS говорить, що тіло тега порожнє, а в рекомендаціях хорошого тону з написання коду бажано взагалі писати "/>" з нового рядка. Рекомендую щось середнє, так як порожній тег не дає додаткової інформації, тільки додаючи зайву рядок коду:


Крок 4
Ініціалізуємо Google Mobile Ads SDK. Для цього Вам знадобиться app ID взятий з AdMob. Тиснемо шестірню праворуч угорі → Керування додатком:


Ось воно, щастя потрібний app ID:


Пишемо саму, власне, ініціалізацію використовуючи свій app ID:


Крок 5
Остання дія за версією Google — завантажити довгоочікувану рекламу в AdView елемент:


На емуляторі слідуючи політиці AdMob ви не можете виводити реальну рекламу (показується тільки тестова). Досить логічно. Але якщо у Вас є реальний пристрій — можете протестувати рекламу в дії на ньому і порадувати себе успіхом.

Тест реклами на реальному девайсі
  • Для відображення реклами на реальному тестовому девайсі перепишіть код:


    Залишається питання — де взяти чарівний DEVICE_ID_EMULATOR? Всі в один голос рекомендують дуже «трушний» спосіб: пишіть замість DEVICE_ID_EMULATOR будь-яке значення, наприклад:


    Після чого запускаєте додаток на своєму пристрої і дивіться logcat. Там знайдете лог подібний цьому:


    Що робити далі ясно — скопіюйте отриманий код в метод згаданий вище і радійте життю.

    Примітка:
    Справа була вночі, спати хотілося, загалом не повторюйте моїх помилок:
    При пошуку ID вашого реального пристрою — не забудьте вибрати logcat девайсу, на якому запущено програму (у мене, наприклад, було запущено ще кілька емуляторів і Я вперто не міг зрозуміти чому в лог емулятора не виводиться так потрібний мені ID)

Начебто все зробили як написано, все повинно працювати, а нам пора лягає спати працювати над наступною фичей але…

Крок 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.: Код в картинках, щоб люди хоч щось запам'ятали, а не просто скопипастили за кілька секунд.
Джерело: Хабрахабр

0 коментарів

Тільки зареєстровані та авторизовані користувачі можуть залишати коментарі.