Рендеринг AdMob на Canvas (SurfaceView)

Если вам интересно, как разместить работающую рекламу AdMob в SurfaceView и вы устали искать решение в Интернете, то вот оно.

Однако сначала следует отметить несколько моментов:

  • Запрос рекламы идёт при создании.
  • AdView помещается в нижнюю часть экрана.
  • Чтобы протестировать работу кода, нужно добавить testDevices в adRequest.
  1. В активности, которая инициализирует SurfaceView, добавьте поле, объявляющее ваше AdView, например:
    private AdView adView;
  2. В методе onCreate() этой же активности добавьте следующий код:
    // подготовка WindowManager 
    WindowManager.LayoutParams windowParams = new WindowManager.LayoutParams();
    windowParams.gravity = Gravity.BOTTOM;
    windowParams.x = 0;
    windowParams.y = 0;
    windowParams.height = WindowManager.LayoutParams.WRAP_CONTENT;
    windowParams.width = WindowManager.LayoutParams.WRAP_CONTENT;
    windowParams.flags = WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE
      | WindowManager.LayoutParams.FLAG_NOT_TOUCH_MODAL | WindowManager.LayoutParams.FLAG_LAYOUT_IN_SCREEN
      | WindowManager.LayoutParams.FLAG_LAYOUT_NO_LIMITS;
    windowParams.format = PixelFormat.TRANSLUCENT;
    windowParams.windowAnimations = 0;
     
    WindowManager wm = getWindowManager();
    // создание AdView
    adView = new AdView(this, AdSize.BANNER, YOU_ADMOB_SITE_ID);
     
    // инициализация запроса для загрузки рекламы
    adView.loadAd(new AdRequest());
     
    // добавление AdView в WindowManager
    wm.addView(adView, windowParams);
  3. Переопределите метод onDestroy(), чтобы выполнить очистку (или, если onDestroy() уже есть, добавьте в него код очистки):
    @Override
      public void onDestroy() {
        if (adView != null) {
          adView.destroy();
     }
     super.onDestroy();
    }

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *