إعداد WKWebView

إذا كان iOS تطبيقك يستخدم WKWebView لعرض محتوى الويب، نقترح ضبطه لتحقيق الربح من المحتوى باستخدام الإعلانات على النحو الأمثل.

يوضِّح لك هذا الدليل طريقة تقديم معلومات حول طريقة ضبط كائنWKWebView .

محتوى الوسائط

إعدادات WKWebView التلقائية ليست محسّنة لإعلانات الفيديو. استخدِم واجهات برمجة التطبيقات في WKWebViewConfiguration لضبط WKWebView للتشغيل المضمّن والتشغيل التلقائي للفيديو.

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

تحميل محتوى عرض الويب

إنّ ملفات تعريف الارتباط وعناوين URL للصفحات مهمة لأداء عرض الويب، ولا تعمل إلا على النحو المتوقّع عند استخدام مع عنوان URL يستند إلى الشبكة. لتحسين WKWebView الأداء، ننصح بشدة بتحميل محتوى على الويب من عنوان URL مستند إلى الشبكة.

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

اختبار عرض الويب

أثناء تطوير التطبيق، ننصحك بتحميل عنوان URL التالي للاختبار:

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

للتحقّق من أنّ هذه الإعدادات تؤدي إلى التأثير المنشود في الإعلانات. يحتوي عنوان URL التجريبي على معايير نجاح لعملية دمج كاملة في حال ملاحظة ما يلي:

إعدادات عرض الويب

  • ملفات تعريف الارتباط للطرف الأول تعمل.
  • تم تفعيل JavaScript

إعلان فيديو

  • يتم تشغيل إعلان الفيديو بشكل مضمّن ولا يتم فتحه في المشغّل المدمج في وضع ملء الشاشة
  • يتم تشغيل إعلان الفيديو تلقائيًا بدون النقر على زر التشغيل
  • إعلان الفيديو قابل لإعادة التشغيل

بعد اكتمال الاختبار، استبدِل عنوان URL التجريبي بعنوان URL الذي تريد طريقة عرض الويب تحميله.