MREC
MREC — это баннер размером 300x250. Этот тип может быть полезен, если в приложении есть большая свободная область для размещения баннера в интерфейсе.
Вы можете использовать наше демо приложение в качестве примера по интеграции.
Демо приложение
Проверка Загрузки
Вы можете проверить статус загрузки перед показом. Этот метод возвращает boolean значение, указывающее, загружен ли MREC.
- Kotlin
 - Java
 
Appodeal.isLoaded(Appodeal.MREC)
Appodeal.isLoaded(Appodeal.MREC);
Мы рекомендуем всегда проверять загружен ли MREC баннер, прежде чем пытаться его показать.
- Kotlin
 - Java
 
if (Appodeal.isLoaded(Appodeal.MREC)) {
    Appodeal.show(this, Appodeal.MREC)
}
if (Appodeal.isLoaded(Appodeal.MREC)) {
    Appodeal.show(this, Appodeal.MREC);
}
Отображение
Чтобы отоб разить MREC, необходимо вызвать в действии следующий код:
- Добавьте 
com.appodeal.ads.MrecViewв ваш layout файл: 
<com.appodeal.ads.MrecView
    android:id="@+id/appodealMrecView"
    android:layout_width="300dp"
    android:layout_height="250dp" />
- Установите view id перед инициализацией SDK:
 
- Kotlin
 - Java
 
Appodeal.setMrecViewId(R.id.appodealMrecView)
Appodeal.setMrecViewId(R.id.appodealMrecView);
- Теперь вы можете показать 
MRECв указанном view (убедитесь, что нужный view находится на экране): 
- Kotlin
 - Java
 
Appodeal.show(this, Appodeal.MREC)
Appodeal.show(this, Appodeal.MREC);
Метод возвращает boolean значение, указывающее, был ли передан вызов метода show соответствующему SDK.
MrecView должен находиться на вершине иерархии и не может перекрываться другими представлениями.Ручное Кэширование
По умолчанию автоматическое кэширование включено: Appodeal SDK начинает загружать MREC сразу после вызова метода инициализации.
Следующий MREC начинает загружаться сразу после вызова метода show.
Чтобы отключить автоматическое кеширование для MREC, вызовите следующий код до инициализации SDK:
- Kotlin
 - Java
 
Appodeal.setAutoCache(Appodeal.MREC, false)
Appodeal.setAutoCache(Appodeal.MREC, false);
Для кэширования MREC используйте:
- Kotlin
 - Java
 
Appodeal.cache(this, Appodeal.MREC)
Appodeal.cache(this, Appodeal.MREC);
Более подробную информацию о ручном кешировании рекламы вы можете найти в нашем FAQ.
Показ рекламы в программно созданном View
- Создайте и добавьте 
com.appodeal.ads.MrecViewв ваш root view: 
- Kotlin
 - Java
 
val adView = Appodeal.getMrecView(this)
rootLayout.addView(adView)
MrecView adView = Appodeal.getMrecView(this);
rootLayout.addView(adView);
- Теперь вы можете показать 
MRECв указанном view (убедитесь, что нужный view находится на экране): 
- Kotlin
 - Java
 
Appodeal.show(this, Appodeal.MREC)
Appodeal.show(this, Appodeal.MREC);
Метод возвращает boolean значение, указывающее, был ли передан вызов метода show соответствующему SDK.
MrecView должен находиться на вершине иерархии и не может перекрываться другими представлениями.Методы обратного вызова
- Kotlin
 - Java
 
Appodeal.setMrecCallbacks(object : MrecCallbacks {
    override fun onMrecLoaded(isPrecache: Boolean) {
        // Called when MREC is loaded
    }
    override fun onMrecFailedToLoad() {
        // Called when MREC failed to load
    }
    override fun onMrecShown() {
        // Called when MREC is shown
    }
    override fun onMrecShowFailed() {
        // Called when MREC show failed
    }
    override fun onMrecClicked() {
        // Called when MREC is clicked
    }
    override fun onMrecExpired() {
        // Called when MREC is expired
    }
})
Appodeal.setMrecCallbacks(new MrecCallbacks() {
  @Override
  public void onMrecLoaded(boolean isPrecache) {
    // Called when MREC is loaded
  }
  @Override
  public void onMrecFailedToLoad() {
    // Called when MREC failed to load
  }
  @Override
  public void onMrecShown() {
    // Called when MREC is shown
  }
  @Override
  public void onMrecShowFailed() {
    // Called when MREC show failed
  }
  @Override
  public void onMrecClicked() {
    // Called when MREC is clicked
  }
  @Override
  public void onMrecExpired() {
    // Called when MREC is expired
  }
});
Вcе callback методы вызываются в главном потоке
Плейсменты
Appodeal SDK позволяет помечать каждый показ указанным плейсментом. Для использования плейсментов вам необходимо сначала их создать в Appodeal Dashboard. Подробнее о местах размещения.
- Kotlin
 - Java
 
Appodeal.show(this, Appodeal.MREC, "yourPlacementName")
Appodeal.show(this, Appodeal.MREC, "yourPlacementName");
Если загруженное объявление не может быть показано для определенного плейсмента, ничего не будет показано. Если автоматическое кеширование включено, SDK начнет кэшировать другое объявление, что может повлиять на display rate. Чтобы сохранить загруженное объявление для использования в будущем (например, для другого места размещения), перед вызовом метода show проверьте, можно ли показывать объявление:
- Kotlin
 - Java
 
if (Appodeal.canShow(Appodeal.MREC, "yourPlacementName")) {
    Appodeal.show(this, Appodeal.MREC, "yourPlacementName")
}
if (Appodeal.canShow(Appodeal.MREC, "yourPlacementName")) {
    Appodeal.show(this, Appodeal.MREC, "yourPlacementName");
}
Вы можете настроить логику показа для каждого плейсмента.
Если у вас нет плейсментов, или вы вызовете Appodeal.show метод с плейсментом, которого не
существует, показ будет помечен с использованием плейсмента default и будут
применены его настройки.
Плейсменты влияют ТОЛЬКО на представление рекламы, но не на загрузку или кеширование.
Проверка инициализации
Чтобы проверить, инициализирован ли MREC, вы можете использовать метод:
- Kotlin
 - Java
 
Appodeal.isInitialized(Appodeal.MREC)
Appodeal.isInitialized(Appodeal.MREC);
Возвращает true, если MREC был проинициализирован.
Проверка типа кеширования
Чтобы проверить, включено ли автоматическое кеширование для MREC, вы можете использовать метод:
- Kotlin
 - Java
 
Appodeal.isAutoCacheEnabled(Appodeal.MREC)
Appodeal.isAutoCacheEnabled(Appodeal.MREC);
Возвращает true, если автоматическое кеширование включено для MREC.
Получение прогнозируемого eCPM
Для того, чтобы получить прогнозируемый eCPM для MREC для следующего блока в очереди на опрос, вы можете использовать метод:
- Kotlin
 - Java
 
Appodeal.getPredictedEcpm(Appodeal.MREC)
Appodeal.getPredictedEcpm(Appodeal.MREC);
Обработка состояния "onPaused" в Activity
Мы будем автоматически обрабатывать состояние паузы и возобновления для уже отображаемых MREC в activity, в котором они были отображены, однако мы не восстанавливаем отображаемые MREC после восстановления activity (например: изменения ориентации), и мы не показываем MREC во вновь созданных activity.
Для показа рекламы во вновь созданной Activity просто вызовите метод Appodeal.show(), если необходимо:
- Kotlin
 - Java
 
override fun onResume() {
    super.onResume()
    Appodeal.show(this, Appodeal.MREC)
}
@Override
public void onResume() {
    super.onResume();
    Appodeal.show(this, Appodeal.MREC);
}
Это поведение можно изменить, вызвав
Appodeal.setSharedAdsInstanceAcrossActivities(true)
(Узнать больше: Логика одного экземпляра MrecView для всех activity)
Скрытие рекламы
- Kotlin
 - Java
 
Appodeal.hide(this, Appodeal.MREC)
Appodeal.hide(this, Appodeal.MREC);
Удаление рекламы
Если вы хотите скрыть MREC во всех activity и очистить память, вызовите код ниже:
- Kotlin
 - Java
 
Appodeal.destroy(Appodeal.MREC)
Appodeal.destroy(Appodeal.MREC);
Логика одного экземпляра MrecView для все х activity
Appodeal SDK связывает Banner/MREC с activity, которое было передано в метод Appodeal.show.
Чтобы вам было проще управлять логикой отображения View объявлений во всех activities, мы добавили новый метод в Appodeal класс:
- Kotlin
 - Java
 
Appodeal.setSharedAdsInstanceAcrossActivities(sharedAdsInstanceAcrossActivities: Boolean)
Appodeal.setSharedAdsInstanceAcrossActivities(boolean sharedAdsInstanceAcrossActivities);
- Когда этот метод используется с параметром 
true, SDK будет показыватьMRECво всех новых activities без вызова дополнительного кода с вашей стороны. - Если вы хотите контролировать отображение MREC самостоятельно, вы можете передавать параметр 
false.предупреждениеВ случае передачи параметра
false, будьте осторожны с изменением ориентации или переходом к новой activity,Banner/MRECне будет отображаться автоматически, так как он был привязан к предыдущей activity. Если вы хотите скрытьBanner/MREC, вам нужно вызвать методAppodeal.hide()с параметром activity, к которому был привязанBanner/MREC. 
Вы так же можете проверить текущее состояние этой логики:
- Kotlin
 - Java
 
Appodeal.isSharedAdsInstanceAcrossActivities()
Appodeal.isSharedAdsInstanceAcrossActivities();
Shared View Ads Instance Across Activities отключена по умолчанию
Отслеживание показа
Вы всегда можете проверить в логах, был ли отслежен показ и видна ли ваша реклама.
В случае успешного показа вы увидите лог Mrec [Notify Shown].
- Log
 
Appodeal  com.example.app  D Mrec [Notify Shown]