Добавление 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.: Код в картинках, чтобы люди хоть что-то запомнили, а не просто скопипастили за несколько секунд.
ссылка на оригинал статьи https://habrahabr.ru/post/316528/

Иллюзии мозга. Эффект большой рыбы в маленьком пруду

Что лучше — быть последним парнем в городе или первым на деревне? Перейти в гимназию в окружение умных ребят или оставаться лучшим учеником обычной школы? Уместно ли жертвовать социальным статусом (а возможно — и здоровьем) ради знаний, образования и большей зарплаты? Это сложные вопросы, ответы на которые каждый находит для себя лично. Но интересно посмотреть на научные исследования, которые помогают немного разобраться в том, как функционирует человеческий мозг и формируется субъективная самооценка человека (Я-концепция). Речь идёт об эффекте большой рыбы в маленьком пруду (Big-fish–little-pond effect, BFLPE), который впервые описан в литературе в 1984 году в научной работе психологов Герберта Марша и Джона Паркера.

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

В 1984 году учёные провели исследование академической успеваемости и самооценки студентов разных учебных заведений. Они выяснили, что ученики в школах низкого социоэкономического уровня (SES) с низким уровнем способностей аудитории имеют более высокую самооценку, чем ученики в школах высокого социоэкономического уровня с высоким уровнем способностей.

Этот довольно противоречивый вывод на самом деле не стал таким уж открытием. Похожие результаты давали и более ранние исследования, проведённые в американских школах в 1969 году (Soares A.T., Soares L. M. "Self-perceptions of culturally disadvantaged children", American Educational Research Journal) и 1972 году (Trowbridge N. T. "Self-concept and socio-economic status in elementary school children", American Educational Research Journal). Но исследование 1984 года показало, что эффект проявляется гораздо сильнее, чем предполагалось. Посещение школы высокого социоэкономического уровня сильно снижает школьную самооценку ученика, в то же время коррелирует с более высоким уровнем фактической успеваемости.

Исследование 1984 года выявило, что индивидуальная школьная самооценка обычно коррелирует с академической успеваемостью школьника, но только если оценивать в рамках одной школы. Если же сравнивать школьников из разных учебных заведений, то наблюдается тот самый эффект BFLPE.

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

Проведённые в последующие годы исследования подтвердили наличие эффекта на разных группах школьников, в разных окружениях, странах и т.д. Эффект подтвердился и при долговременных повторных исследованиях на тех же выборках. В общем, влияние окружения на самооценку учеников можно считать установленным фактом. В связи с этим авторы исследования считают, что эту информацию следует учитывать при организации школ и распределении учеников по школьным классам.

Научные исследования BFLPE проводились в начальной и средней школе, но можно предположить, что эффект большой рыбы в маленьком пруду вполне проявляет себя и во взрослой жизни. В любой высококонкурентной среде есть несколько «победителей», много «проигравших», а общая самооценка участников такой среды понижается. Так что с конкуренцией нужно быть осторожным — зачастую это не самый гуманный метод.

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

  • Чрезмерная самокритика.
  • Сверхчувствительность к критике. Возмущение и обида на критику. Чувство, что на него нападают.
  • Хроническая нерешительность и чрезмерная боязнь допустить ошибку.
  • Страстное желание угодить и нежелание расстроить каждого, кто его о чём-либо попросит.
  • Идеализм, который может привести к досаде, когда идеал не достигнут.
  • Постоянная враждебность, всеобщая защитная позиция и раздражительность без каких-либо на то причин.
  • Пессимизм и всеобщее негативное мировоззрение.
  • Зависть, пристрастность.
  • Недопустимость даже временных неудач.

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

В любом случае, заниженная самооценка — это всегда более высокий уровень стресса, увеличенный риск сердечно-сосудистых заболеваний и более низкая продолжительность жизни. Несмотря на все успехи в жизни, такие люди живут меньше. То есть когда мы говорим об эффекте BFLPE, то мы говорим о положительном эффекте. Ощущение себя в качестве большой рыбы в маленьком пруду позволяет избежать заниженной самооценки, которая опасна для здоровья.

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

Так что в следующий раз хорошенько подумайте — действительно ли вы хотите работать в самой крутой компании или отправить своего ребёнка в самую лучшую школу, в какую он только может поступить. Что будет, если ваш одарённый сын станет худшим в классе? Как это повлияет на его характер? И что будет с вашей собственной самооценкой, если вы со своим IQ 135 будете подносить кофе ведущим сотрудникам самой крутой компании, у которых IQ выше 150?
ссылка на оригинал статьи https://geektimes.ru/post/283196/

ЕКА и Роскосмос опубликовали первые результаты научных наблюдений «ЭкзоМарс-2016»


Пролёт TGO по высокоэллиптической орбите (синяя линия). Перицентр был пройден 22 ноября 2016 г. в 16:29:43, зелёным показано направление на Землю, желтым — на Солнце. Пунктиром обозначена орбита Фобоса, стрелками — направление поля зрения приборов. (с) РОСКОСМОС/ЕКА/ЭкзоМарс/АЦС/ИКИ

Несмотря на неудачу со спускаемым модулем "Скиапарелли", миссию «Экзомарс» все же признали удачной. Во многом благодаря тому, что вторая часть миссии — выход на расчетную орбиту зонда TGO (Trace gas orbiter), прошла, как и было задумано. В настоящее время зонд находится на эллиптической орбите Марса, приближаясь в ходе движения к поверхности планеты на 230-300 км и удаляясь на 98 000 км. Период обращения составляет 4,2 суток.

20-28 ноября этого года научные приборы на борту модуля впервые провели проверочные измерения. Собранные в течение 8 дней данные были отправлены на Землю, где ученые провели анализ полученной информации. Телеметрия позволила откалибровать аппарат, оптимизировав режим его работы. За восемь дней были проверены практически все научные инструменты TGO, проблем не выявлено.

Один из инструментов — это камеры CaSSIS (Colour and Stereo Surface Imaging System). Они сфотографировали поверхность Марса с высоты в 5300 км. Разрешение при этом составило 60 метров на пиксель.

«Первые изображения, которые мы получили, чрезвычайно зрелищны — хотя это и всего лишь тест. Мы видели Hebes Chasma с разрешением 2,8 метра на пиксель. Это подобно тому, как если бы мы летели над Берном со скоростью 15 000 км/ч и одновременно получили бы четкие изображения машин в Цюрихе», — заявил Николас Томас из Бернского университета.

Кроме камер, свои данные передал и европейский научный прибор NOMAD (Nadir and Occultation for Mars Discovery). С его помощью ученым удалось получить первые данные измерений марсианской атмосферы. Эти измерения были проведены с использованием двух методов: изучение отраженного поверхностью Марса потока солнечных лучей и наблюдение за рассеянным светом в атмосфере при «заходе» Солнца. Благодаря динамике спектра солнечного излучения специалисты могут понять, какие вещества и элементы содержатся в атмосфере.

Были впервые включены и два российских прибора. Их разработал Институт космических исследований РАН. Первый прибор — это целый комплекс спектрометров для изучения химии атмосферы АСЦ, второй — нейтронный детектор ФРЕНД.

Детектор включили первый раз еще во время перелета. ФРЕНД вел мониторинг радиационной обстановки, собрав за время путешествия целый массив данных, который необходим для составления четкой картины динамики уровня космического излучения при полете на Марс. После изучения этих данных оказалось, что вся эта информация коррелирует с данными других аналогичных экспериментов. При анализе учитывалось и фоновое излучение от самого аппарата.

Отключили ФРЕНД 15 сентября перед торможением, а 31, после выхода TGO на орбиту Марса, его снова включили. За месяц система провела несколько сеансов наблюдений нейтронного альбедо Марса. По словам представителей проекта, эти измерения очень важны, поскольку позволяют просчитать динамику потоков частиц на удалении от планеты и при сближении с ней. В будущем это поможет картировать распределение воды или льда под поверхностью красной планеты.


Спектр марсианской атмосферы, полученный каналом ТИРВИМ спектрометрического комплекса АЦС. По горизонтали — длина волны, по вертикали — интенсивность излучения (яркостная температура в градусах Цельсия) (с) РОСКОСМОС/ЕКА/ЭкзоМарс/АЦС/ИКИ

Что касается комплекса АЦС, то в его состав входит сразу три инфракрасных спектрометра. Главная цель эксперимента — поиск тех компонентов атмосферы, концентрация которых очень мала. В основном, ведется поиск метана — основного признака биологической активности на планете. В дальнейшем ученые планируют определять местоположение источников этого газа.

Также отправил данные наблюдений Фурье-спектрометр теплового инфракрасного диапазона ТИРВИМ. Задача этого устройства — поиск аэрозолей в атмосфере (пыль и кристаллы льда), составление температурных профилей и концентраций газов. Результаты первого наблюдения показали, что в наблюдаемой области температура поверхности составляет около 0 градусов Цельсия. В атмосфере обнаружена силикатная пыль, видны полосы поглощения углекислого газа.

«Мы рады и гордимся тем, что все инструменты работают так хорошо в условиях Марса, это первое впечатление — лишь фантастический предварительный обзор того, что мы получим, когда начнем собирать данные в конце следующего года», — сказал Хакан Сведхем (Håkan Svedhem), главный научный специалист проекта TGO.
ссылка на оригинал статьи https://geektimes.ru/post/283194/

Осенняя Распродажа Steam 2016 в нескольких цифрах

Вчера закончилась Осенняя Распродажа в Стиме, так что мы решили подвести её небольшие итоги и сделать пробу пера в жанре инфографики.
image

  • Более половины игр, участвующих в Осенней Распродаже, не старше трех лет. Более того, чем моложе игра, тем вероятнее, что она будет участвовать в распродаже. Казалось бы нонсенс, но…
  • У размера скидки с «молодостью» игры связь обратная. Новее игра, меньше скидка. Факт достаточно очевидный. Можно сделать вывод, что издатели, выпустившие игру незадолго до Осенней Распродажи, участвуют в ней по большей части символически и только ради участия, а не пускаются во все тяжкие, лишь бы сбыть товар.
  • На 1000 руб можно купить 120 игр со скидками в 80+% и средней ценой в 7 (!) руб. Помните об этом, покупая рандомные ключи (если есть такие, кто их еще покупает) в надежде получить за 60 руб Watch Dogs 2.
  • Самый доброжелательный к игрокам издатель — Square Enix, и базовая цена на игры у них ниже, и скидки больше. А приз в номинации «Самый алчный» издатель получает Bethesda. Это им еще и за Skyrim. Special Edition.
  • Наконец, средняя температура по палате скидка по всей распродаже меняется слабо, второй год подряд она находится на уровне 60%, что вполне достойный результат.

Некоторые пояснения к инфографике + комментарии.

Вопросы к уважаемой публике:
1) Что вы лично приобрели на этом сейле?
2) Как еще лучше анализировать такие распродажи? Постараемся покачественнее сравнить эту и распродажу и грядущую зимнюю.
ссылка на оригинал статьи https://geektimes.ru/post/283200/

Злоумышленники используют 0day уязвимость в веб-браузере Tor для кибератак

Новая уязвимость в веб-браузере Tor/Firefox используется для установки вредоносного ПО на компьютеры пользователей. Одной из первых эта информация появилась в списке рассылки (mailing list) Tor Project. Для эксплуатации уязвимости эксплойт использует специальным образом сформированные файлы HTML и CSS. По информации известного security-ресерчера Dan Guido, уязвимость относится к типу use-after-free и затрагивает Scalable Vector Graphics (SVG) парсер Firefox.

Основатель Tor Project Roger Dingledine уведомил пользователей, что разработчики Firefox в курсе данной проблемы и работают над исправлением для уязвимости. Пользователям веб-браузера Tor рекомендуют отключить использование JavaScript до выхода соответствующего исправления.

Уязвимость может быть актуальна и для пользователей Tor/Firefox на OS X, однако, замеченный в использовании атакующими эксплойт актуален только для пользователей Windows. Так как веб-браузер Mozilla Firefox для пользователей Windows не содержит таких актуальных мер защиты от эксплойтов, как веб-браузеры Google Chrome и MS Edge, его пользователи не защищены от деструктивных действий 0day эксплойта.

Мы рекомендуем пользователям дождаться выпуска соответствующего обновления веб-браузера Tor и установить его.
ссылка на оригинал статьи https://habrahabr.ru/post/316524/