WKWebView einrichten

Wenn in Ihrer App WKWebView verwendet wird, um Webinhalte anzuzeigen, sollten Sie sie so konfigurieren, dass Inhalte optimal mit Anzeigen monetarisiert werden können.

In diesem Leitfaden erfahren Sie, wie Sie Informationen zur Konfiguration eines WKWebView-Objekts bereitstellen.

Medieninhalte

Die Standardeinstellungen für WKWebView sind nicht für Videoanzeigen optimiert. Verwenden Sie die WKWebViewConfiguration APIs, um Ihre WKWebView für die Inline-Wiedergabe und die automatische Videowiedergabe zu konfigurieren.

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

Webview-Inhalte laden

Cookies und Seiten-URLs sind wichtig für die Monetarisierung von Web-Views und funktionieren nur wie erwartet, wenn load(_:) mit einer netzwerkbasierten URL verwendet wird. Für eine optimierte WKWebView-Leistung empfehlen wir dringend, Webinhalte über eine netzwerkbasierte URL zu laden.

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://google.github.io/webview-ads/test/") 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://google.github.io/webview-ads/test/"];
  NSURLRequest *request = [NSURLRequest requestWithURL:url];
  [webView loadRequest:request];
}

Webansicht testen

Wir empfehlen, während der App-Entwicklung diese Test-URL zu laden:

https://google.github.io/webview-ads/test/

um zu prüfen, ob diese Einstellungen die gewünschte Wirkung auf Anzeigen haben. Die Test-URL enthält Erfolgskriterien für eine vollständige Integration, wenn Folgendes beobachtet wird:

Einstellungen für die Webansicht

  • Eigene Cookies funktionieren
  • JavaScript aktiviert

Videoanzeige

  • Die Videoanzeige wird inline abgespielt und nicht im integrierten Vollbildplayer geöffnet.
  • Die Videoanzeige wird automatisch abgespielt, ohne dass Sie auf die Wiedergabeschaltfläche klicken müssen.
  • Die Videoanzeige kann wiedergegeben werden

Ersetzen Sie nach Abschluss der Tests die Test-URL durch die URL, die in der Webview geladen werden soll.