Menyiapkan WKWebView

Jika aplikasi iOS Anda menggunakan WKWebView untuk menampilkan konten web, sebaiknya konfigurasikan konten tersebut agar konten dapat dimonetisasi secara optimal dengan iklan.

Panduan ini menunjukkan cara memberikan informasi tentang cara mengonfigurasi objek WKWebView .

Konten Media

Setelan WKWebView default tidak dioptimalkan untuk iklan video. Gunakan WKWebViewConfiguration API guna mengonfigurasi WKWebView untuk pemutaran inline dan pemutaran video otomatis.

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)
    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];
  [self.view addSubview:self.webView];
}

Memuat konten tampilan web

Cookie dan URL halaman sangat penting untuk performa tampilan web dan hanya berfungsi seperti yang diharapkan saat load(_:) digunakan dengan URL berbasis jaringan. Untuk performa WKWebView yang dioptimalkan, kami sangat merekomendasikan agar Anda memuat konten web dari URL berbasis jaringan.

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)
    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];
  [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];
}

Menguji tampilan web

Selama pengembangan aplikasi, sebaiknya muat URL pengujian ini:

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

untuk memverifikasi bahwa setelan ini memiliki efek yang dimaksudkan pada iklan. URL pengujian memiliki kriteria keberhasilan untuk integrasi lengkap jika hal berikut diamati:

Setelan tampilan web

  • Cookie pihak pertama berfungsi
  • JavaScript diaktifkan

Iklan video

  • Iklan video diputar inline dan tidak terbuka di pemutar bawaan layar penuh
  • Iklan video diputar secara otomatis tanpa mengklik tombol putar
  • Iklan video dapat diputar ulang

Setelah pengujian selesai, ganti URL pengujian dengan URL yang ingin dimuat oleh tampilan web.