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 pagina sono importanti per la monetizzazione delle visualizzazioni web e funzionano come previsto solo se load(_:) viene utilizzato con un URL basato sulla rete. Per ottimizzare il rendimentoWKWebView, 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://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];
}

Testa la visualizzazione web

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

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

per verificare che queste impostazioni abbiano l'effetto desiderato sugli annunci. L'URL di test ha criteri di successo per un'integrazione completa se si verificano le seguenti condizioni:

Impostazioni della visualizzazione web

  • Funzionamento dei cookie proprietari
  • JavaScript attivato

Annuncio video

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

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