Configurer WKWebView

Si votre iOS application utilise WKWebView pour afficher du contenu Web, est recommandé de le configurer de sorte que le contenu puisse être monétisé de façon optimale à l'aide d'annonces.

Ce guide vous explique comment fournir des informations sur la façon de configurer un WKWebView .

Contenu multimédia

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

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 des pages sont importants pour la monétisation des vues Web et ne fonctionnent comme prévu lorsque est utilisé avec un l'URL basée sur le réseau. Pour des performances WKWebView optimisées, 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://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];
}

Tester la vue Web

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

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

pour vérifier que ces paramètres ont bien l'effet escompté sur les annonces. L'URL de test comporte critères de réussite d'une intégration complète dans les cas suivants:

Paramètres de la vue Web

  • Les cookies propriétaires fonctionnent
  • JavaScript activé

Annonce vidéo

  • L'annonce vidéo est diffusée de façon intégrée et ne s'ouvre pas en plein écran. joueur
  • L'annonce vidéo est lue automatiquement sans cliquer sur le bouton de lecture.
  • L'annonce vidéo peut être lue de nouveau.

Une fois le test terminé, remplacez l'URL de test par l'URL de la vue Web. que l'on a l'intention de charger.