Создать APK бесплатно

Заработок

Интеграция AdMob

Настройка монетизации

1Создайте аккаунт AdMob#

Зарегистрируйте аккаунт Google AdMob. Для начала понадобится аккаунт Google. AdMob — это рекламная платформа Google для мобильных приложений.

2Добавьте приложение#

В панели AdMob:

  • Нажмите «Apps» в боковом меню
  • Нажмите «Add App»
  • Выберите «No» в вопросе «Is your app listed on a supported app store?»
  • Введите название приложения
  • Выберите «Android» как платформу
  • Нажмите «Add»

3Получите ID приложения#

После создания приложения:

  • Скопируйте показанный ID приложения (формат: ca-app-pub-XXXXXXXXXXXXXXXX~XXXXXXXXXX)
  • Это не то же самое, что ID рекламного блока
  • Вы будете использовать это в AndroidManifest.xml
App ID format:
ca-app-pub-1234567890123456~1234567890

4Создайте рекламный блок (баннер)#

В вашем аккаунте AdMob:

  • Откройте вкладку «Ad units»
  • Нажмите «Add ad unit»
  • Выберите «Banner»
  • Введите название рекламного блока (например, «Main Banner»)
  • Нажмите «Create ad unit»
  • Скопируйте ID рекламного блока
Banner Ad Unit ID format:
ca-app-pub-1234567890123456/1234567890

5Настройка в AppMint#

В AppMint, шаг 3:

  1. Включите «AdMob Ads» и вставьте ID приложения AdMob (тот, где есть ~)
  2. Ad Control: оставьте «Automatic» — приложение само разместит рекламу
  3. Включите «Banner Ad», выберите положение (внизу или вверху) и вставьте ID баннерного блока (тот, где есть /)
  4. Продолжите с остальными настройками и создайте приложение
Ad Unit ID (not App ID):
ca-app-pub-XXXXXXXXXXXXXXXX/YYYYYYYYYY

6Тестовая реклама в вашем приложении#

Во время разработки используйте официальные тестовые ID от Google, чтобы не нарушать правила. Скопируйте их в генератор:

📋 ID приложения AdMob:
ca-app-pub-3940256099942544~3347511713

📋 ID баннерного блока:
ca-app-pub-3940256099942544/6300978111

📋 ID блока полноэкранной рекламы между экранами:
ca-app-pub-3940256099942544/1033173712

📋 ID блока рекламы с вознаграждением:
ca-app-pub-3940256099942544/5224354917

📋 ID издателя:
pub-3940256099942544

📋 Сайт разработчика:
https://example.com

Эти тестовые ID показывают рекламу, похожую на настоящую, без дохода и без нарушения правил. Для публикации замените их своими настоящими ID.

Test IDs for Generator:

AdMob App ID:       ca-app-pub-3940256099942544~3347511713
Banner Ad ID:       ca-app-pub-3940256099942544/6300978111
Interstitial ID:    ca-app-pub-3940256099942544/1033173712
Rewarded Ad ID:     ca-app-pub-3940256099942544/5224354917
Publisher ID:       pub-3940256099942544
Developer URL:      https://example.com

7Полноэкранная реклама между экранами#

Полноэкранная реклама между экранами закрывает весь интерфейс приложения. Пользователь может закрыть её и вернуться в приложение.

📺 Как включить (шаг 3, Ad Control «Automatic»):

  1. Включите «Full Screen Ad»
  2. Тип рекламы: выберите «Interstitial Ad»
  3. Введите ID блока полноэкранной рекламы между экранами (или оставьте пустым для тестовой рекламы)
  4. Выберите режим запуска:

🔄 После переходов (по умолчанию):
Реклама показывается после каждых N переходов между страницами. Например, при значении 4 она появится после 4-й, 8-й, 12-й загрузки страницы и так далее.

📱 При открытии приложения:
Реклама показывается один раз сразу после заставки, когда приложение впервые открывается.

👆 По требованию:
Автоматической рекламы нет — ваша страница показывает её по нажатию с помощью WebToApk.showInterstitialAd().

⚠️ Тип рекламы выбирается один: либо полноэкранная между экранами, либо с вознаграждением, но не обе сразу.

Example: every 4 page navigations

Page 1 → No ad
Page 2 → No ad
Page 3 → No ad
Page 4 → 📺 Interstitial Ad shown!
Page 5 → No ad
Page 6 → No ad
Page 7 → No ad
Page 8 → 📺 Interstitial Ad shown!
...

8Реклама с вознаграждением#

Реклама с вознаграждением — это полноэкранные видео, которые пользователи смотрят в обмен на награду. Она приносит больше дохода, чем баннеры и полноэкранная реклама между экранами.

🎁 Как включить (шаг 3, Ad Control «Automatic»):

  1. Включите «Full Screen Ad»
  2. Тип рекламы: выберите «Rewarded Ad»
  3. Введите ID блока рекламы с вознаграждением (или оставьте пустым для тестовой рекламы)
  4. Выберите режим запуска:

🔄 После переходов (по умолчанию):
Как и полноэкранная реклама между экранами: реклама показывается после каждых N загрузок страницы. Значение N задаёт параметр «Show ad after every N page navigations». По умолчанию 4.

📱 При открытии приложения:
Видео с вознаграждением показывается один раз, когда приложение впервые открывается после заставки.

👆 По требованию:
Автоматической рекламы нет — кнопка «Посмотрите рекламу и получите награду» на вашей странице вызывает WebToApk.showRewardedAd().

💡 Сколько переходов?
Меньше — больше рекламы (больше дохода, но хуже впечатление). Больше — меньше рекламы (лучше впечатление, но меньше дохода). Рекомендуем: 3–5.

⚠️ Правила Google: для рекламы с вознаграждением нужно согласие пользователя. В режимах «После переходов» и «При открытии приложения» приложение сначала показывает вопрос «Посмотреть рекламу?» с кнопкой «Нет, спасибо»; реклама запускается, только если пользователь согласился.

Revenue comparison (approximate):

Banner Ads:       $0.10 - $0.50 per 1000 views
Interstitial Ads: $1 - $5 per 1000 views
Rewarded Ads:     $5 - $15 per 1000 views

Recommended N (page navigations per ad):
Aggressive:  2-3 (more ads, more revenue)
Balanced:    4-5 (recommended)
Conservative: 6-10 (fewer ads, better UX)

⚠️ AdMob требует механизм согласия для пользователей из ЕЭЗ, Великобритании, Швейцарии и штатов США.

Это делает сгенерированное приложение автоматически с помощью Google User Messaging Platform (UMP). Приложение будет:

  • Показывать диалог согласия пользователям из ЕЭЗ, Великобритании и Швейцарии до показа рекламы
  • Показывать диалог отказа пользователям в соответствующих штатах США
  • Запрашивайте рекламу только после получения согласия

Что нужно сделать ВАМ:

  1. В консоли AdMob → Privacy & messaging → Create a European regulations message
  2. В консоли AdMob → Privacy & messaging → Create a US state regulations message
  3. Укажите адрес политики конфиденциальности в генераторе (шаг 3 или шаг 4)
  4. Убедитесь, что в вашей политике конфиденциальности упомянута реклама AdMob

⚠️ Без этой настройки AdMob может показать предупреждение: «Consent requirement: No CMP»

10Проверка рекламы#

После публикации приложения:

  • AdMob проверит ваше приложение (обычно это занимает 24–48 часов)
  • Сначала вы увидите тестовую рекламу
  • После одобрения начнёт показываться настоящая реклама
  • Следите, чтобы контент приложения соответствовал правилам

11Включите выплаты#

Чтобы получать доход от рекламы:

  • Откройте «Payments» в панели AdMob
  • Добавьте способ выплат (банковский счёт или другие варианты)
  • Подтвердите свой адрес
  • Заполните налоговую информацию
  • Выплаты производятся ежемесячно после достижения порога в 100 долларов

12Лучшие практики#

✅ Размещение баннера: нижний баннер меньше мешает и удобнее для пользователей

✅ Между экранами или с вознаграждением: выберите одно, не оба. Реклама с вознаграждением приносит больше, но требует участия пользователя

✅ Число действий: начните с 4–5 переходов между показами рекламы. Слишком часто — плохие отзывы

✅ Сначала тест: во время разработки всегда проверяйте с тестовыми рекламными блоками

✅ Следите за результатами: регулярно проверяйте панель AdMob, чтобы видеть доход и показатели

⚠️ Не нажимайте: никогда не нажимайте на собственную рекламу — это нарушает правила AdMob

⚠️ Качественный контент: убедитесь, что ваше приложение полезно и соответствует правилам AdMob

💡 Совет: сочетайте баннер (всегда на экране) и полноэкранную рекламу между экранами или с вознаграждением (время от времени) для максимального дохода

13Если что-то не работает#

Частые проблемы и решения:

  • Реклама не показывается: проверьте, что вы используете правильный ID рекламного блока (а не ID приложения)
  • Тестовая реклама работает, а настоящая нет: дождитесь завершения проверки в AdMob
  • Запрос рекламы не удался: проверьте подключение к интернету и состояние аккаунта AdMob
  • Аккаунт заблокирован: изучите правила AdMob и при необходимости подайте апелляцию

14Реклама под вашим контролем: размещайте каждый блок сами#

Скачайте полную демонстрационную страницу ниже (Coin Runner): баннер внутри макета, реклама между экранами между уровнями, кнопка «Посмотрите рекламу и получите 50 монет», прямоугольник 300×250, переключатель рекламы при открытии приложения и живой журнал каждого результата. Упакуйте в ZIP, загрузите как Offline ZIP, выберите Developer-controlled с заполненными тестовыми ID и соберите приложение — у каждой кнопки есть пояснение.

Описанные выше варианты относятся к автоматическому режиму: приложение само показывает баннер и полноэкранную рекламу или рекламу с вознаграждением. Если вам нужны все форматы AdMob и возможность поставить каждый из них точно туда, куда нужно вашей странице, выберите на шаге 3 «Ad Control → Developer-controlled».

В этом режиме НИЧЕГО не происходит автоматически. Введите по одному ID блока для каждого используемого формата — баннер, средний прямоугольник (300×250), полноэкранная реклама между экранами, с вознаграждением, полноэкранная с вознаграждением, при открытии приложения — а остальные оставьте пустыми. Затем ваша страница управляет всем через window.AppMintAds:

  • AppMintAds.banner.attach('#slot', {size:'banner'|'medium_rectangle'}) — баннер поверх указанного элемента: в карточке, между элементами списка, где угодно. Он следует за элементом при прокрутке; detach() его убирает. Одновременно можно два.
  • await AppMintAds.load('interstitial') → {ok:true} или {ok:false, code:'no_fill'|'network'|'invalid_unit'|'consent'|'ad_free'|'disabled'}
  • await AppMintAds.show('rewarded') → {shown:true, earned:true, reward:{type,amount}} или {shown:false, reason}
  • AppMintAds.isReady('interstitial') — включайте кнопку по этому значению
  • AppMintAds.appOpen.setEnabled(false) — приостановить рекламу при открытии приложения, пока пользователь занят делом

AppMintAds существует только внутри установленного приложения — всегда проверяйте его наличие (if (window.AppMintAds) …), чтобы страница работала и в браузере. Правила Google продолжают действовать, и приложение их соблюдает: реклама с вознаграждением запускается только по собственному нажатию пользователя (ваша кнопка «Посмотреть рекламу» и есть его согласие), между показами полноэкранной рекламы выдерживается пауза в 60 секунд, и никогда не ставьте рекламу поверх основного действия.

// Feature-detect: AppMintAds exists only in the installed app
const ads = window.AppMintAds;

// 1. A banner INSIDE your layout — <div id="ad-slot"></div> reserves the space
if (ads) {
  const r = await ads.banner.attach('#ad-slot', { size: 'banner' });
  console.log(r.ok ? 'banner ' + r.width + 'x' + r.height : 'no banner: ' + r.code);
}

// 2. A full-page ad at a natural break (between levels), never on every tap
async function levelFinished() {
  if (ads && ads.isReady('interstitial')) await ads.show('interstitial');
  showNextLevel();          // continues whether or not an ad was shown
}

// 3. A 'Watch ad to earn 50 coins' button — the tap is the user's opt-in
watchBtn.onclick = async () => {
  if (!ads) return;                                 // browser: no native ads
  // From a tap the ad plays. Without one (a timer, a route change) the app shows
  // AdMob's "Watch an ad? / No thanks" intro first and answers code 'declined'.
  const r = await ads.show('rewarded');
  if (r.earned) addCoins(r.reward.amount || 50);   // grant ONLY when earned
  else if (r.reason === 'ad_free') addCoins(50);    // premium user: grant without an ad
  else toast('No ad available right now');          // no popup, no Skip button
};

// 4. Preload and keep the button honest
ads?.load('rewarded').then(r => { watchBtn.disabled = !r.ok; });

В приложении кнопка этого шага сохраняет их на телефон. Здесь они доступны для прямого скачивания.

admob-developer-demo.html HTML · 12 КБ

15События состояния рекламы: узнайте, что случилось с каждым запросом#

Каждый рекламный блок под вашим контролем сообщает весь свой жизненный цикл в ОДНОМ событии, appmint:ad, так что вы можете записывать показы, реагировать на сбои и управлять собственным интерфейсом:

{ type, phase, slot?, code?, adCode?, message?, width?, height?, reward?, earned? }

  • type: banner | mrec | interstitial | rewarded | rewarded_interstitial | app_open
  • phase: loading → loaded | failed → opened → impression → clicked → closed, а также rewarded (награда получена) и show_failed
  • code (при failed): no_fill | network | invalid_unit | internal — adCode это собственный номер AdMob, message — его текст
  • slot: какой баннерный слот, для banner/mrec

Промисы дают один и тот же ответ на каждый вызов, а событие даёт всё, включая рекламу, для которой вы не вызывали show() (реклама при открытии приложения, обновление баннера). В автоматическом режиме AppMintAds по-прежнему существует, но отвечает кодом «automatic_mode» — используйте там вызовы WebToApk.showInterstitialAd() и showRewardedAd() и события appmint:reward / appmint:ad-closed / appmint:ad-unavailable.

window.addEventListener('appmint:ad', e => {
  const a = e.detail;
  console.log(a.type, a.phase, a.code || '', a.message || '');
  if (a.phase === 'failed' && a.code === 'no_fill') analytics.track('ad_no_fill', a);
  if (a.type === 'rewarded' && a.phase === 'rewarded') console.log('earned', a.reward);
  if (a.type === 'banner' && a.phase === 'loaded') console.log('banner ' + a.width + 'x' + a.height + ' in ' + a.slot);
});

// What can this build serve? (guard it — in a browser AppMintAds is undefined)
if (window.AppMintAds) console.log(AppMintAds.config());
// → { control: 'developer', formats: { banner: true, mrec: false, interstitial: true, ... } }

Эта страница создана из руководства по интеграции внутри самого приложения, поэтому в ней написано ровно то, что и в текущей сборке. Читать в формате Markdown.

Сверено с актуальным руководством 22.10.2026.