Configurare WKWebView

Se la tua app utilizza WKWebView per visualizzare contenuti web, ti consigliamo di configurarla in modo che i contenuti possano essere monetizzati in modo ottimale con gli annunci.

Questa guida mostra come fornire informazioni su come configurare un oggetto WKWebView.

Contenuti multimediali

Le impostazioni predefinite di WKWebView non sono ottimizzate per gli annunci video. Utilizza le API WKWebViewConfiguration per configurare WKWebView per la riproduzione in linea e la riproduzione automatica dei video.

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

Caricare i contenuti della visualizzazione web

I cookie e gli URL delle pagine sono importanti per la monetizzazione delle visualizzazioni web e funzionano come previsto solo quando load(_:) viene utilizzato con un URL basato sulla rete. Per prestazioni WKWebView ottimizzate, ti consigliamo vivamente di caricare i contenuti web da un URL basato sulla rete.

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

Testare la visualizzazione web

Durante lo sviluppo dell'app, ti consigliamo di caricare questo URL di test:

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

per verificare che queste impostazioni abbiano l'effetto previsto sugli annunci. L'URL di test ha criteri di successo per un'integrazione completa se si osservano i seguenti elementi:

Impostazioni della visualizzazione web

  • Come funzionano i cookie proprietari
  • JavaScript attivato

Annuncio video

  • L'annuncio video viene riprodotto in linea e non si apre nel lettore integrato a schermo intero
  • L'annuncio video viene riprodotto automaticamente senza che sia necessario fare clic sul pulsante di riproduzione
  • L'annuncio video è riproducibile

Al termine del test, sostituisci l'URL di test con l'URL che la visualizzazione web intende caricare.