Menyiapkan WKWebView

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

Panduan ini menunjukkan cara memberikan informasi tentang cara mengonfigurasi WKWebView .

Konten Media

Setelan WKWebView default tidak dioptimalkan untuk iklan video. Gunakan WKWebViewConfiguration API untuk mengonfigurasi WKWebView Anda 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 penting untuk monetisasi tampilan web dan hanya berfungsi seperti yang diharapkan jika load(_:) digunakan dengan URL berbasis jaringan. Untuk performa WKWebView yang dioptimalkan, sebaiknya 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 Anda memuat URL pengujian ini:

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

untuk memverifikasi bahwa setelan ini memiliki pengaruh yang diinginkan terhadap iklan. URL pengujian memiliki kriteria keberhasilan untuk integrasi lengkap jika memenuhi kriteria berikut:

Setelan tampilan web

  • Cookie pihak pertama berfungsi
  • JavaScript diaktifkan

Iklan video

  • Iklan video diputar secara inline dan tidak terbuka dalam layar penuh pemain
  • Iklan video akan diputar secara otomatis tanpa mengklik tombol putar
  • Iklan video dapat diputar ulang

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