Nhật ký thay đổi và ghi chú phát hành của Meta Audience Network SDK dành cho Android.
Việc cần làm: Cập nhật các ứng dụng Android của bạn lên SDK 6.5 để tiếp tục kiếm tiền từ các ứng dụng đó trên Audience Network
Bạn sẽ phải cập nhật các ứng dụng Android của mình lên Audience SDK 6.5 trở lên để tiếp tục hoạt động và kiếm tiền trên Audience Network. Audience Network SDK phiên bản cũ hơn không tương thích với các ứng dụng nhắm đến Android 12 trở lên (API cấp 31 trở lên) và sẽ không hoạt động chính xác đối với các ứng dụng trên những thiết bị này.
IllegalStateException
trong Android MediaPlayer/apex/com.android.art/lib64/libart.so (art::OatHeader::IsDebuggable() const+124)
trên 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
.Đã ra mắt API linh hoạt mới cho tất cả định dạng quảng cáo. API này cho phép chỉ định tất cả thông số tùy chỉnh để tải và hiển thị quảng cáo bằng cách sử dụng đối tượng công cụ tạo. Bạn có thể lấy đối tượng này thông qua lệnh gọi phương thức Ad.buildLoadConfig()
. Chúng tôi vẫn sẽ hỗ trợ API cũ trong thời gian tới, nhưng cuối cùng sẽ gỡ API này.
IntersitialAd ad = new InterstitialAd(Context, String); ad.loadAd(ad.buildLoadConfig() // LoadConfigBuilder .withBid(String) .withListener(AdListener) .withCacheFlags(CacheFlags) .build()); // builds LoadConfig
Thay đổi về logic kết nối mạng và lưu vào bộ nhớ đệm để cải thiện hiệu quả.
Chúng tôi đã thay đổi cờ cho nhãn Đối tượng hỗn hợp từ isChildDirected
thành MixedAudience
. Bạn có thể xem thêm thông tin về Đối tượng hỗn hợp và Đạo luật bảo vệ quyền riêng tư của trẻ em trên mạng (COPPA) tại đây:
withPreloadedIconView
cho phép bạn tùy ý lưu trước các tài sản biểu tượng vào bộ nhớ đệm cho quảng cáo tự nhiên. Bạn phải chỉ định chiều rộng và chiều cao.NativeAdBase .buildLoadAdConfig() // NativeAdBase.LoadAdConfigBuilder .withBidPayload(String) .withCacheFlags(MediaCacheFlags) .withPreloadedIconView(int w, int h) .loadAd();
loadAd()
thứ hai đến đối tượng quảng cáo nếu một yêu cầu khác đang tải hoặc gửi yêu cầu showAd()
thứ hai đến đối tượng quảng cáo nếu quảng cáo đã hiển thị trên màn hình.ImageView
và MediaView
hiện có thể thay thế cho nhau đối với NativeBannerAd
ImageView
với NativeBannerAd
Hiện tại, bạn có thể tạo Quảng cáo biểu ngữ tự nhiên thông qua ImageView
. Chúng tôi đã bổ sung các phương thức mới (xem bên dưới) để cho phép thực hiện việc này. Lưu ý rằng việc sử dụng MediaView
vẫn được hỗ trợ.
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); }
Android SDK của chúng tôi hiện sử dụng bộ nhớ đệm mới để lưu trữ quảng cáo được tải xuống. Bộ nhớ đệm mới này đáng tin cậy hơn và sẽ giảm bớt số lượng lỗi khi lưu vào bộ nhớ đệm.
Chúng tôi hiện cung cấp một ứng dụng mẫu sử dụng Meta Audience Network SDK trên Kotlin.
Exoplayer không còn là phần phụ thuộc của SDK này nữa.
RecyclerView
.NativeBannerAd
.BidderTokenProvider.getBidderToken()
thường xuyên. Mã nhà thầu sẽ được tính toán trước ở giai đoạn bắt đầu để sau khi SDK khởi tạo, bạn có thể lấy mã nhà thầu nhanh hơn so với các phiên bản trước, giúp giảm thiểu tình trạng chờ đợi.isInitialized
) trong AudienceNetworkAds
cho phép các ứng dụng thử nghiệm xem SDK này có được khởi tạo hay không. Với phương thức này, nhà phát hành có thể tránh được lỗi khởi tạo hai lần.getAdsProcessName
) trong AudienceNetworkAds
cho phép các ứng dụng kiểm tra xem quy trình hiện tại có phải là quy trình SDK nội bộ không (giống như isInAdsProcess
được ra mắt trong phiên bản 5.1). Các nhà phát hành muốn có nhiều quyền kiểm soát hơn đối với các quy trình trên ứng dụng của mình có thể dùng phương thức này để lọc quy trình do SDK quảng cáo tạo ra.NativeAdViewAttributes
cần có đối tượng Ngữ cảnh.AdOptionsView
.MediaView
(Quảng cáo tự nhiên).Fatal Exception: android.util.AndroidRuntimeException: android.content.pm.PackageManager$NameNotFoundException: com.google.android.webview
trên Android.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
cho quảng cáo tự nhiên để tăng sự linh hoạt.Error: java.lang.RuntimeException: Unable to pause activity {com.your.app/com.facebook.ads.AudienceNetworkActivity}: java.lang.NullPointerException
cho Quảng cáo chèn giữa quay vòng.java.lang.NoSuchMethodError: android.view.ViewTreeObserver.removeOnGlobalLayoutListener
.java.lang.IllegalStateException: The specified child already has a parent
.