SDK quảng cáo trên thiết bị di động của Google hiện có tính năng hỗ trợ beta cho MRAID v3, được xây dựng dựa trên sự hỗ trợ hiện có cho MRAID v2, cho phép nhà quảng cáo phân phát mẫu quảng cáo MRAID v3 cho các nhà xuất bản Ad Manager. Hướng dẫn này nêu rõ các thông tin triển khai MRAID không rõ ràng và khó diễn giải trong thông số kỹ thuật MRAID v3. Đối tượng mục tiêu của bài viết này là các tác giả mẫu quảng cáo MRAID v3.
Điều kiện tiên quyết
Nhà xuất bản phải chạy:
- Dịch vụ Google Play 15.0.0 trở lên cho MRAID v3
- Dịch vụ Google Play 7.8 trở lên cho MRAID v2
Đoạn mồi hữu ích
Nếu chưa hiểu rõ về MRAID, bạn có thể tìm hiểu thêm tại trang MRAID của IAB. Bạn cũng có thể tải tài liệu Định nghĩa MRAID v3 xuống. Tài liệu này cung cấp thông tin chi tiết về tất cả các thông số được thảo luận bên dưới, cũng như bài đăng trên blog của IAB về MRAID v3.
Thông tin chi tiết về việc triển khai MRAID phiên bản 3 (beta)
Khả năng xem - sự kiện đo lường sự thay đổi mức độ hiển thị quảng cáo
Sự kiện này được hỗ trợ và bạn nên sử dụng trình nghe cho sự kiện exposureChange
mới thay vì sự kiện viewableChange
đã ngừng hoạt động.
Phương thức mraid.isViewable()
cũng không được dùng nữa. Tuy nhiên, các phương thức không dùng nữa này vẫn được hỗ trợ để duy trì khả năng tương thích ngược.
Định nghĩa sự kiện exposureChange
sẽ được gửi đi bất cứ khi nào chế độ xem quảng cáo
thay đổi. SDK có cơ chế thăm dò để tránh tạo quá nhiều sự kiện.
Trạng thái ban đầu được gửi không đồng bộ sau khi quảng cáo đăng ký trình nghe.
Lệnh gọi lại bao gồm tham số exposed_percentage
. Đây là một số dấu phẩy động từ 0.0
đến 100.0
.
Hãy tham khảo thông số kỹ thuật MRAID v3 để biết cách sử dụng mẫu.
Phát hiện và khởi chạy MRAID và các thuộc tính MRAID_ENV
SDK tuân thủ giao thức khởi tạo như được xác định trong thông số kỹ thuật MRAID v3.
Trong đối tượng MRAID_ENV
, SDK không gửi IDFA
, limitAdTracking
,
Mã ứng dụng hoặc COPPA (không bắt buộc). Thư viện này cung cấp tất cả các biến bắt buộc trong đối tượng MRAID_ENV
, bao gồm cả phiên bản MRAID, tên SDK và phiên bản SDK.
Đo lường âm thanh
Một sự kiện mới (audioVolumeChange
) được đưa ra để xác định xem người dùng có thể nghe thấy âm thanh hay không và thời điểm âm lượng thay đổi.
Sự kiện audioVolumeChange
có một thông số duy nhất: volume_percentage
.
Giá trị này là tỷ lệ phần trăm âm lượng phát âm thanh tối đa. Đây là một số dấu phẩy động giữa 0.0
và 100.0
(0.0
khi không cho phép phát) hoặc null
nếu không thể xác định âm lượng.
Hãy tham khảo thông số kỹ thuật MRAID v3 để biết cách sử dụng mẫu.
mraid.getLocation()
Vì mraid.getLocation()
không được hỗ trợ nên hàm này luôn trả về -1
.
mraid.unload()
Phương thức này có thể được gọi bất cứ lúc nào và SDK phản ứng bằng cách đóng quảng cáo, phân bổ các tài nguyên, sau đó xoá WebView hoặc thay thế bằng một tài liệu khác hoặc một quảng cáo mới.
Khi mẫu quảng cáo gọi unload()
, lớp gốc sẽ phản hồi như sau
đối với các loại mẫu quảng cáo khác nhau:
Loại | Hành vi unload() |
---|---|
Biểu ngữ | Tạo một yêu cầu quảng cáo mới với các thông số yêu cầu giống như quảng cáo hiện tại. |
Quảng cáo xen kẽ | Đóng quảng cáo xen kẽ. |
VPAID (Định nghĩa giao diện quảng cáo trên trình phát video)
SDK quảng cáo trên thiết bị di động của Google không hỗ trợ VPAID. mraid.supports('vpaid')
trả về giá trị "false".
mraid.useCustomClose()
mraid.useCustomClose()
có thể không được hỗ trợ, tuỳ thuộc vào định dạng và
loại mẫu quảng cáo.
Thông tin chi tiết về việc triển khai MRAID phiên bản 2
mraid.getVersion()
mraid.getVersion()
không trả về 2.0
cho đến khi mẫu quảng cáo đã tải. Không kiểm tra phiên bản MRAID trong khi mraid.getState()
trả về loading
.
mraid.resize()
Khi mraid.resize()
được gọi, biểu ngữ ban đầu sẽ được thay thế bằng
ảnh chụp màn hình của biểu ngữ đó. Bạn có thể nhận thấy điều này nếu quảng cáo được đổi kích thước
không che phủ không gian quảng cáo gốc.
Quảng cáo đã đổi kích thước cũng không tuân theo khung biểu ngữ ban đầu. Nếu bạn đặt một biểu ngữ ở chế độ xem cuộn, thì quảng cáo đã đổi kích thước sẽ không cuộn cùng với biểu ngữ.
mraid.setResizeProperties()
Tất cả lệnh gọi đến mraid.setResizeProperties()
đều phải chứa danh sách đầy đủ các thuộc tính bắt buộc. Nếu các thuộc tính đổi kích thước không hợp lệ, các thuộc tính đó sẽ được đặt về giá trị mặc định và tất cả các lệnh gọi tiếp theo tới mraid.resize()
sẽ không thực hiện được cho đến khi mraid.setResizeProperties()
được gọi lại với các tham số hợp lệ.
mraid.getMaxSize()
Bạn chỉ nên sử dụng mraid.getMaxSize()
để xác định kích thước tối đa cho quảng cáo
đã đổi kích thước. Để xác định kích thước của quảng cáo có thể mở rộng, hãy sử dụng mraid.getScreenSize()
.
mraid.setOrientationProperties()
Khi gọi mraid.setOrientationProperties()
bằng thuộc tính allowOrientationChange
được đặt thành true
, việc đặt thuộc tính forceOrientation
sẽ không có tác dụng gì.
Quảng cáo muốn buộc hướng phải đặt allowOrientationChange
thành
false
.
mraid.isViewable()
Nếu một lượt xem che đi một quảng cáo hiển thị khác, mraid.isViewable()
sẽ vẫn trả về
true
. Nội dung ứng dụng không được che mất quảng cáo hiển thị.
mraid.getCurrentPosition()
Mặc dù quảng cáo có thể mở rộng hai mảnh đang ở trạng thái mở rộng, nhưng lệnh gọi đến mraid.getCurrentPosition()
trong phần đầu tiên sẽ trả về kích thước của màn hình.
mraid.storePicture()
Để hỗ trợ mraid.storePicture()
, ứng dụng đó cần bao gồm quyền android.permission.WRITE_EXTERNAL_STORAGE
.