Thiết lập WKWebView

Nếu ứng dụng iOS của bạn sử dụng WKWebView để hiển thị nội dung trên web, bạn nên định cấu hình thẻ này để có thể kiếm tiền tối ưu từ nội dung bằng quảng cáo.

Hướng dẫn này cho bạn biết cách cung cấp thông tin về cách định cấu hình WKWebView .

Cài đặt web

Chế độ cài đặt mặc định của WKWebView không được tối ưu hoá cho quảng cáo. Sử dụng WKWebViewConfigurationWKWebView để định cấu hình khung hiển thị web cho các tài nguyên sau:

  • Phát lại nội tuyến
  • Tự động phát video
  • Không cho phép xem trước đường liên kết

Swift

import WebKit

class ViewController: UIViewController {

  var webView: WKWebView!

  override func viewDidLoad() {
    super.viewDidLoad()

    // Initialize a WKWebViewConfiguration object.
    let webViewConfiguration = WKWebViewConfiguration()
    // Let HTML videos with a "playsinline" attribute play inline.
    webViewConfiguration.allowsInlineMediaPlayback = true
    // Let HTML videos with an "autoplay" attribute play automatically.
    webViewConfiguration.mediaTypesRequiringUserActionForPlayback = []

    // Initialize the WKWebView with your WKWebViewConfiguration object.
    webView = WKWebView(frame: view.frame, configuration: webViewConfiguration)

    // Links opened using link preview don't call web view delegates. Ensure
    // delegates are always called on clicks by disabling link preview.
    webView.allowsLinkPreviews = false
    view.addSubview(webView)
  }
}

Objective-C

@import WebKit;

#import "ViewController.h"

@interface ViewController ()

@property(nonatomic, strong) WKWebView *webView;

@end

@implementation ViewController

- (void)viewDidLoad {
  [super viewDidLoad];

  // Initialize a WKWebViewConfiguration object.
  WKWebViewConfiguration *webViewConfiguration = [[WKWebViewConfiguration alloc] init];
  // Let HTML videos with a "playsinline" attribute play inline.
  webViewConfiguration.allowsInlineMediaPlayback = YES;
  // Let HTML videos with an "autoplay" attribute play automatically.
  webViewConfiguration.mediaTypesRequiringUserActionForPlayback = WKAudiovisualMediaTypeNone;

  // Initialize the WKWebView with your WKWebViewConfiguration object.
  self.webView = [[WKWebView alloc] initWithFrame:self.view.frame configuration:webViewConfiguration];

  // Links opened using link preview don't call web view delegates. Ensure
  // delegates are always called on clicks by disabling link preview.
  self.webView.allowsLinkPreviews = NO;
  [self.view addSubview:self.webView];
}

Tải nội dung trong chế độ xem web

Cookie và URL trang có vai trò quan trọng đối với việc kiếm tiền từ lượt xem trên web và chỉ hoạt động với chức năng đúng như dự kiến khi load(_:) dùng với dựa trên mạng. Để có hiệu suất WKWebView được tối ưu hoá, bạn nên tải nội dung web từ một URL dựa trên mạng.

Swift

import WebKit

var webview: WKWebview!

class ViewController: UIViewController {
  override func viewDidLoad() {
    super.viewDidLoad()

    // Initialize a WKWebViewConfiguration object.
    let webViewConfiguration = WKWebViewConfiguration()
    // Let HTML videos with a "playsinline" attribute play inline.
    webViewConfiguration.allowsInlineMediaPlayback = true
    // Let HTML videos with an "autoplay" attribute play automatically.
    webViewConfiguration.mediaTypesRequiringUserActionForPlayback = []

    // Initialize the WKWebView with your WKWebViewConfiguration object.
    webView = WKWebView(frame: view.frame, configuration: webViewConfiguration)

    // Links opened using link preview don't call web view delegates. Ensure
    // delegates are always called on clicks by disabling link preview.
    webView.allowsLinkPreviews = false
    view.addSubview(webView)

    // Load the URL for optimized web view performance.
    guard let url = URL(string: "https://webview-api-for-ads-test.glitch.me") else { return }
    let request = URLRequest(url: url)
    webView.load(request)
  }
}

Objective-C

@import WebKit;

#import "ViewController.h"

@interface ViewController ()

@property(nonatomic, strong) WKWebView *webView;

@end

@implementation ViewController

- (void)viewDidLoad {
  [super viewDidLoad];

  // Initialize a WKWebViewConfiguration object.
  WKWebViewConfiguration *webViewConfiguration = [[WKWebViewConfiguration alloc] init];
  // Let HTML videos with a "playsinline" attribute play inline.
  webViewConfiguration.allowsInlineMediaPlayback = YES;
  // Let HTML videos with an "autoplay" attribute play automatically.
  webViewConfiguration.mediaTypesRequiringUserActionForPlayback = WKAudiovisualMediaTypeNone;

  // Initialize the WKWebView with your WKWebViewConfiguration object.
  self.webView = [[WKWebView alloc] initWithFrame:self.view.frame configuration:webViewConfiguration];

  // Links opened using link preview don't call web view delegates. Ensure
  // delegates are always called on clicks by disabling link preview.
  self.webView.allowsLinkPreviews = NO;
  [self.view addSubview:self.webview];

  // Load the URL for optimized web view performance.
  NSURL *url = [NSURL URLWithString:@"https://webview-api-for-ads-test.glitch.me"];
  NSURLRequest *request = [NSURLRequest requestWithURL:url];
  [webView loadRequest:request];
}

Kiểm thử chế độ xem web

Trong quá trình phát triển ứng dụng, bạn nên tải URL thử nghiệm này:

https://webview-api-for-ads-test.glitch.me#webview-settings-tests

để xác minh rằng các chế độ cài đặt này có hiệu lực dự kiến đối với quảng cáo. URL thử nghiệm có tiêu chí thành công để tích hợp hoàn chỉnh nếu các điều sau được quan sát:

Cài đặt chế độ xem trên web

  • Cookie của bên thứ nhất hoạt động
  • Đã bật JavaScript

Quảng cáo dạng video

  • Quảng cáo dạng video phát nội tuyến và không mở trong toàn màn hình được tích hợp sẵn cầu thủ
  • Quảng cáo dạng video phát tự động mà không cần nhấp vào nút phát
  • Quảng cáo video có thể phát lại

Sau khi thử nghiệm xong, hãy thay thế URL thử nghiệm bằng URL mà chế độ xem trên web định tải.