SDK IMA cho iOS bao gồm SDK Đo lường mở (OM), một tiêu chuẩn ngành do Cục Quảng cáo tương tác (IAB) phát triển để cho phép bên thứ ba đo lường khả năng xem và xác minh. Khi sử dụng IMA SDK cho iOS, OM SDK đi kèm sẽ tự động phân tích cú pháp thẻ <AdVerifications> trong thẻ quảng cáo VAST và gửi dữ liệu về khả năng xem đến các nhà cung cấp dịch vụ đo lường được chỉ định bằng OMID API. SDK IMA hỗ trợ
OM SDK phiên bản 1.6, tiện ích AdVerifications của GAM trên VAST 2 trở lên
và nút AdVerifications trên VAST 4 trở lên.Để tận dụng tính năng Đo lường mở,
hãy lưu ý những điểm sau:
Để sử dụng tính năng Đo lường mở, bạn phải có phiên bản 3.9.0 trở lên của IMA SDK cho iOS.
Quảng cáo phải được định cấu hình để phân phát
<AdVerifications>trong VAST theo quy cách VAST 4.1 nếu sử dụng VAST 4.1 trở lên; nếu không, bạn nên sử dụng<Extension type="AdVerifications">.Tránh che
AdDisplayContainerbằng bất kỳ lớp phủ nào (trong suốt hoặc mờ), vì SDK OM sẽ gắn cờ các lớp phủ này là yếu tố gây cản trở và làm giảm khả năng xem.
Điều kiện tiên quyết
- Nếu quảng cáo của bạn được thiết lập và chạy thông qua Ad Manager, hãy định cấu hình nhà cung cấp dịch vụ đo lường khả năng xem cho mạng Ad Manager và chỉ định nhà cung cấp dịch vụ đo lường khả năng xem đó cho mục hàng của bạn.
Thử nghiệm
Để thử nghiệm tính năng Đo lường mở bằng IMA SDK, hãy sử dụng một phiên bản IMA hỗ trợ OM SDK, cùng với một thẻ quảng cáo thử nghiệm.
Bạn sẽ thấy <AdVerifications> được trả về trong phản hồi VAST.
Đăng ký các vật cản lớp phủ điều khiển video
Các nút điều khiển video như nút tạm dừng hoặc thanh tiến trình cung cấp thông tin và thao tác phát cần thiết cho người dùng. Trên thiết bị di động, các thao tác nhấn không chính xác và kỳ vọng của người dùng đã khiến việc hiển thị các nút điều khiển lớn, thân thiện với thao tác chạm trên phần tử nội dung nghe nhìn trở thành một phương pháp phổ biến. Các chế độ điều khiển này thường xuất hiện và biến mất khi người dùng nhấn vào và không hiển thị trong phần lớn thời gian phát.
Để xem ví dụ về các nút điều khiển video lớp phủ, hãy xem hình ảnh sau đây về các nút điều khiển hiển thị của ứng dụng YouTube:

Khi sử dụng IMA SDK, hầu hết nhà xuất bản đều triển khai các chế độ kiểm soát này bằng cách thêm một chế độ xem phía trên vùng chứa hiển thị quảng cáo (chế độ xem này hầu như trong suốt). Thông thường, các nút điều khiển là phần tử con của chế độ xem này, che khuất hoàn toàn trình phát video bên dưới. Lớp phủ trong suốt này được dùng để ghi lại các sự kiện nhấn, sau đó hiển thị các nút điều khiển cho người dùng khi họ nhấn.
Khi khả năng xem quảng cáo bằng SDK Đo lường mở được tính toán, tất cả các chế độ xem phủ lên phần tử nội dung nghe nhìn đều được coi là vật cản và làm giảm tỷ lệ có thể xem. Trong trường hợp lớp phủ nhấn trong suốt nằm phía trên toàn bộ vùng chứa hiển thị quảng cáo, thì khoảng không quảng cáo có thể được khai báo là hoàn toàn không thể xem.
SDK Đo lường mở cung cấp các điều khoản để các chế độ điều khiển video được coi là các vật cản "thân thiện" cần thiết cho trải nghiệm của người dùng. Sau khi được đăng ký là thân thiện, các chế độ kiểm soát này sẽ bị loại trừ khỏi hoạt động đo lường khả năng xem quảng cáo.
Với sự hỗ trợ của IAB và MRC, SDK IMA giới thiệu một API để đăng ký các lớp phủ này với SDK Đo lường mở. Các nút điều khiển này phải là lớp phủ hoàn toàn trong suốt hoặc nút nhỏ. Không được đăng ký bất kỳ thành phần hiển thị nào khác không liên quan đến các nút điều khiển video.
| NÊN đăng ký | KHÔNG đăng ký |
|---|---|
|
|
Mã mẫu sau đây minh hoạ cách đăng ký lớp phủ điều khiển video trên vùng chứa hiển thị quảng cáo:
UIView *myTransparentTapOverlay = [[UIView alloc] initWithFrame:CGRectMake(0, 0, 300, 250)];
UIButton *myPauseButton = [[UIButton alloc] initWithFrame:CGRectMake(0, 0, 50, 10)];
// Replace myTransparentTapOverlay and myPauseButton with your own elements
// that function as video control overlays.
// Make sure to register before ad playback starts.
IMAFriendlyObstruction *overlayObstruction =
[[IMAFriendlyObstruction alloc] initWithView:myTransparentTapOverlay
purpose:IMAFriendlyObstructionPurposeNotVisible
detailedReason:@"This overlay is transparent"];
IMAFriendlyObstruction *pauseButtonObstruction =
[[IMAFriendlyObstruction alloc] initWithView:myPauseButton
purpose:IMAFriendlyObstructionPurposeMediaControls
detailedReason:@"This is the video player pause button"];
[displayContainer registerFriendlyObstruction:overlayObstruction];
[displayContainer registerFriendlyObstruction:pauseButtonObstruction];
Khi bạn hoàn tất, bạn có thể xoá các vật cản này bằng cách gọi phương thức sau:
Objective-C
- (void)unregisterObstructionsForContainer:(IMAAdDisplayContainer *)displayContainer {
// This removes all previously registered friendly obstructions from the container.
[displayContainer unregisterAllFriendlyObstructions];
}
Swift
func unregisterObstructions(displayContainer: IMAAdDisplayContainer) {
// This removes all previously registered friendly obstructions from the container.
displayContainer.unregisterAllFriendlyObstructions()
}