Журнал изменений и заметки к выпуску SDK Meta Audience Network для Android.
Требуется действие: обновите SDK до версии 6.5 в приложениях для Android, которые хотите и дальше монетизировать с помощью Audience Network
Обновите свои приложения для Android на SDK до версии 6.5 или более поздней, чтобы сохранить их работоспособность и продолжить монетизацию с помощью Audience Network. Старые версии SDK Audience Network несовместимы с приложениями для устройств с Android 12 или более поздней версии (уровень API 31 и выше), поэтому будут некорректно работать на этих устройствах.
IllegalStateException
в Android MediaPlayer./apex/com.android.art/lib64/libart.so (art::OatHeader::IsDebuggable() const+124)
на Android 11.java.lang.IllegalStateException: Software rendering doesn't support hardware bitmaps
.pc 00000000000830f0 /apex/com.android.runtime/lib64/bionic/libc.so (abort+160)
.ClassNotFoundException when unmarshalling
.Внедрен новый гибкий API для всех форматов рекламы. Это позволяет указывать все пользовательские параметры для загрузки и отображения рекламы с использованием объекта компоновщика, который можно получить с помощью вызова метода Ad.buildLoadConfig()
. Предыдущий API еще будет какое-то время поддерживаться, но в конечном счете будет удален.
IntersitialAd ad = new InterstitialAd(Context, String); ad.loadAd(ad.buildLoadConfig() // LoadConfigBuilder .withBid(String) .withListener(AdListener) .withCacheFlags(CacheFlags) .build()); // builds LoadConfig
Изменена логика работы сетевых соединений и кэширования с целью повышения производительности.
Мы изменили флаг метки смешанных аудиторий с isChildDirected
на MixedAudience
. Более подробные сведения о смешанных аудиториях и Законе США о защите конфиденциальности детей в Интернете (COPPA) можно найти здесь:
withPreloadedIconView
, который позволяет выполнять предварительное кэширование объектов значков для нативной рекламы. Необходимо указать ширину и высоту.NativeAdBase .buildLoadAdConfig() // NativeAdBase.LoadAdConfigBuilder .withBidPayload(String) .withCacheFlags(MediaCacheFlags) .withPreloadedIconView(int w, int h) .loadAd();
loadAd()
к объекту рекламы, если другой запрос уже загружается, или отправите дополнительный запрос showAd()
к объекту рекламы, если реклама уже отображается на экране.ImageView
и MediaView
для NativeBannerAd
.ImageView
для NativeBannerAd
Нативную баннерную рекламу теперь можно создавать с помощью ImageView
. Для этого добавлены новые методы (см. ниже). Обратите внимание: MediaView
по-прежнему поддерживается.
class NativeBannerAd { /** * Registers the given view as the container and the required ImageView as the Icon display * for this NativeBannerAd to handle impressions and clicks. * ImageView must be within the view passed as the container for this NativeBannerAd. * Applies a click handler to the entire unit. * @param view the View containing this NativeBannerAd for display * @param iconView ImageView to display Icon for this NativeBannerAd * * @since 5.4 */ public void registerViewForInteraction(View view, ImageView iconView); /** * Registers the given view as the container and the required ImageView as the Icon display * for this NativeBannerAd to handle impressions and clicks. * ImageView must be within the view passed as the container for this NativeBannerAd. * Applies a click handler to the entire unit. * @param view the View containing this NativeBannerAd for display * @param iconView ImageView to display Icon for this NativeBannerAd * @param clickableViews a list of all view elements that should handle taps on this unit * * @since 5.4 */ public void registerViewForInteraction( View view, ImageView iconView, @Nullable final List<View> clickableViews); }
В нашем SDK для Android для хранения загруженных объявлений теперь используется новый кэш. Он работает надежнее, что должно привести к уменьшению числа ошибок при кэшировании.
Теперь мы предлагаем пример приложения, которое использует SDK Meta Audience Network в Kotlin.
Exoplayer более не является зависимостью SDK.
RecyclerView
.NativeBannerAd
.BidderTokenProvider.getBidderToken()
теперь может вызываться часто, а маркер участника аукциона предварительно вычисляется при запуске, благодаря чему после инициализации SDK получение этого маркера должно выполняться быстрее, чем в предыдущих версиях, что позволит избежать задержек.isInitialized
) в AudienceNetworkAds
, который позволяет приложениям проверять, был ли SDK инициализирован. Благодаря этому издатели могут избежать двойной инициализации.getAdsProcessName
) в AudienceNetworkAds
, который позволяет приложениям проверять, является ли текущий процесс внутренним процессом SDK (аналогично isInAdsProcess
, представленному в версии 5.1). Издателям, которым необходим больший контроль процессов приложений, это может быть использовано для фильтрации процесса, созданного SDK рекламы.NativeAdViewAttributes
теперь требуется объект Context.AdOptionsView
.MediaView
(нативная реклама).Fatal Exception: android.util.AndroidRuntimeException: android.content.pm.PackageManager$NameNotFoundException: com.google.android.webview
.Error: java.lang.RuntimeException: java.lang.Throwable: A WebView method was called on thread 'JavaBridge'. All WebView methods must be called on the same thread.
.AdOptionsView
для более удобной работы с нативной рекламой.Error: java.lang.RuntimeException: Unable to pause activity {com.your.app/com.facebook.ads.AudienceNetworkActivity}: java.lang.NullPointerException
для межстраничной рекламы с кольцевой галереей.java.lang.NoSuchMethodError: android.view.ViewTreeObserver.removeOnGlobalLayoutListener
.java.lang.IllegalStateException: The specified child already has a parent
.