Dzięki interfejsom API komponentu WebView do wyświetlania reklam tagi w komponencie
WKWebView mogą korzystać z sygnałów z aplikacji. Pomaga to zwiększać zarobki
wydawców, którzy udostępniają treści, i chronić reklamodawców przed spamem.
Jak to działa
Komunikacja z pakietem Google Mobile Ads SDK odbywa się tylko w odpowiedzi na zdarzenia reklamowe wywoływane przez:Google Mobile Ads SDK
Pakiet SDK dodaje do zarejestrowanego komponentu WKWebView moduły obsługi wiadomości, które nasłuchują tych zdarzeń reklamowych. Aby lepiej zrozumieć, jak to działa, wyświetl
kod źródłowy strony
testowej.
Wymagania wstępne
- Google Mobile Ads SDK w wersji 9.6.0 lub nowszej.
Zaktualizuj plik
Info.plist, dodając ten klucz i wartość ciągu. Pozwala to pominąć sprawdzanie przez Google Mobile Ads SDK wartościGADApplicationIdentifier, które dotyczy deweloperów wdrażających reklamy poza komponentem WebView. Jeśli pominiesz ten krok i nie podasz wartościGADApplicationIdentifier, pakiet Google Mobile Ads SDK zgłosi wyjątekGADInvalidInitializationExceptionpodczas uruchamiania aplikacji.<!-- Indicate Google Mobile Ads SDK usage is only for web view APIs for ads --> <key>GADIntegrationManager</key> <string>webview</string>
Rejestrowanie komponentu WebView
Wywołaj funkcję
register(_:)
w wątku głównym, aby nawiązać połączenie z modułami obsługi JavaScript w
kodzie AdSense lub tagu wydawcy Google w każdej instancji WKWebView. Należy to zrobić jak najszybciej, np. w
viewDidLoad metodzie kontrolera widoku.
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.
MobileAds.shared.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];
}
Testowanie integracji
Zanim zaczniesz używać własnego adresu URL, zalecamy wczytanie tego adresu URL, aby przetestować integrację:
https://google.github.io/webview-ads/test/#api-for-ads-tests
Jeśli integracja się powiedzie, na stronie testowej pojawią się zielone paski stanu, pod warunkiem że:
WKWebViewjest połączony z Google Mobile Ads SDK
Dalsze kroki
- Uzyskiwanie zgody w komponencie
WKWebView. Interfejsy API komponentu WebView do wyświetlania reklam nie przekazują zgody uzyskanej w kontekście aplikacji mobilnej za pomocą platform IAB TCF w wersji 2.3 lub IAB CCPA do tagów w komponentach WebView. Jeśli chcesz wdrożyć jeden proces uzyskiwania zgody jako właściciel zarówno komponentuWKWebView, jak i odpowiadającej mu treści internetowej, na której zarabiasz, współpracuj z platformą do zarządzania zgodą użytkowników, aby uzyskać zgodę w kontekście komponentuWKWebView.