Configurer WKWebView

Si votre application utilise WKWebView pour afficher du contenu Web, nous vous recommandons de le configurer de manière à ce que le contenu puisse être monétisé de manière optimale avec des annonces.

Ce guide vous explique comment fournir des informations sur la configuration d'un objet WKWebView.

Contenu multimédia

Les paramètres WKWebView par défaut ne sont pas optimisés pour les annonces vidéo. Utilisez les API WKWebViewConfiguration pour configurer votre WKWebView pour la lecture intégrée et la lecture automatique des vidéos.

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

Charger le contenu de la vue Web

Les cookies et les URL de pages sont importants pour la monétisation des vues Web. Ils ne fonctionnent comme prévu que lorsque load(_:) est utilisé avec une URL basée sur le réseau. Pour optimiser les performances de WKWebView, nous vous recommandons vivement de charger le contenu Web à partir d'une URL réseau.

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

Tester la vue Web

Lors du développement de l'application, nous vous recommandons de charger cette URL de test :

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

pour vérifier que ces paramètres ont l'effet escompté sur les annonces. L'URL de test présente des critères de réussite pour une intégration complète si les éléments suivants sont observés :

Paramètres de la vue Web

  • Fonctionnement des cookies propriétaires
  • JavaScript activé

Annonce vidéo

  • L'annonce vidéo est lue de manière intégrée et ne s'ouvre pas dans le lecteur plein écran intégré.
  • L'annonce vidéo est lue automatiquement sans que l'utilisateur ait à cliquer sur le bouton de lecture.
  • L'annonce vidéo est relançable

Une fois les tests terminés, remplacez l'URL de test par l'URL que la vue Web est censée charger.