WebView API for Ads を統合する

広告用のウェブビュー API を使用すると、WKWebView内のタグでアプリのシグナルを利用できるようになるため、コンテンツを提供したパブリッシャーの収益性を高め、広告主をスパムから保護できます。

仕組み

Google Mobile Ads SDK との通信は、次のいずれかによってトリガーされた広告イベントに応答してのみ行われます。

SDK は登録されたWKWebView にメッセージ ハンドラを追加して、これらの広告イベントをリッスンします。この仕組みの詳細については、テストページのソースコードをご覧ください。

前提条件

  • Google Mobile Ads SDK バージョン 9.6.0 以降。
  • 次のキーと文字列値で Info.plist ファイルを更新します。これにより、ウェブビュー外に広告を実装するデベロッパーに適用される GADApplicationIdentifier 値に対する Google Mobile Ads SDK のチェックは省略されます。このステップに失敗し、GADApplicationIdentifier を指定しなかった場合、Google Mobile Ads SDK はアプリの起動時に GADInvalidInitializationException をスローします。

    <!-- Indicate Google Mobile Ads SDK usage is only for web view APIs for ads -->
    <key>GADIntegrationManager</key>
    <string>webview</string>
    

ウェブビューを登録する

メインスレッドで register(_:) を呼び出して、各インスタンス内の AdSense コードまたは Google パブリッシャー タグ内の JavaScript ハンドラとの接続を確立します。 WKWebView これは、ビュー コントローラの viewDidLoad メソッドなど、できるだけ早く行う必要があります。

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)

    // Register the web view.
    GADMobileAds.sharedInstance().register(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];

  // Register the web view.
  [GADMobileAds.sharedInstance registerWebView:self.webView];
}

インテグレーションをテストする

独自の URL を使用する前に、次の URL を読み込んで統合をテストすることをおすすめします。

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

次の条件に該当する場合、テスト URL には、統合が成功したことを示す緑色のステータスバーが表示されます。

  • WKWebView を Google Mobile Ads SDK に接続しました

次のステップ

  • WKWebViewで同意を取得します。広告用のウェブビュー API は、IAB TCF v2.0 または IAB CCPA のコンプライアンス フレームワークを使用して、モバイルアプリのコンテキストで収集された同意をウェブビューのタグに反映しません。収益化対象のWKWebView とそれに対応するウェブ コンテンツの両方の所有者として 1 つの同意フローを実装する場合は、同意管理プラットフォームと連携して、 WKWebView のコンテキストで同意を取得してください。