Сегодня я получил письмо от AdMob, в котором говорилось:
Изменение политики в отношении нативных объявлений. Для нативных объявлений MediaView требуется
рендеринг видео или основного изображения актива. Чтобы помочь вам доставить
более удобная реклама, начиная с 29 октября, нативная реклама
потребуется MediaView для рендеринга видео или основного изображения. Объявление
устройства, не соответствующие этой дате, прекратят показ объявлений, что может
повлиять на доход от рекламы.
Я попробовал это в своем приложении для Android, убрав отдельную обработку изображений с ImageView
и видео с MediaView
, но я обнаружил, что MediaView не изменяет высоту вида в соответствии с высотой изображения, которое он дисплеи.
В этом примере кодовой метки от Google используются фиксированная высота и ширина для MediaView
. Я не могу этого сделать, так как этот экран реагирует на размер экрана, который будет меняться в зависимости от устройства. Тот факт, что размер изображения можно динамически изменять, является одним из основных преимуществ использования UnifiedNativeAds
вместо стандартных объявлений, таких как баннеры.
Вот как мне нужно отобразить MediaView
, используя match_parent
для ширины и wrap_content
для высоты.
<com.google.android.gms.ads.formats.MediaView
android:id="@+id/ad_media"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
android:adjustViewBounds="true"
android:scaleType="fitXY"/>
Это то, что я сейчас получаю из приведенного выше кода
Это то, что мне нужно, и я ожидаю, что это будет выглядеть при использовании wrap_content
В предыдущем случае, когда мы могли визуализировать изображения по отдельности с помощью ImageView, значение wrap_content
правильно отразило размер изображения.
У кого-нибудь есть обходной путь для этого? Как я могу следовать новым требованиям Google без жесткого кодирования высоты MediaView
?
Мой полный код можно найти здесь , в моем демонстрационном приложении на github.