Intégrer l'API WebView pour les annonces
Restez organisé à l'aide des collections
Enregistrez et classez les contenus selon vos préférences.
Les API WebView pour les annonces permettent de rendre les signaux d'application disponibles pour les balises de votre WKWebView. Cela permet d'améliorer la monétisation pour les éditeurs qui ont fourni le contenu et de protéger les annonceurs contre le spam.
Ces signaux d'application, tels que l'ID et la version de l'application, permettent d'activer les cas d'utilisation Rapports et Cibler l'inventaire d'un navigateur intégré à une application, qui ne sont normalement disponibles que pour le trafic d'application.

Fonctionnement
La communication avec le
SDK Google Mobile Ads
n'a lieu qu'en réponse à des événements publicitaires déclenchés par l'un des éléments suivants :
Le SDK ajoute des gestionnaires de messages à l'WKWebView
enregistré pour écouter ces événements d'annonce. Pour mieux comprendre comment cela fonctionne, consultez le code source de la page de test.
Prérequis
-
SDK Google Mobile Ads
version 9.6.0 ou ultérieure.
Mettez à jour le fichier Info.plist
avec la clé et la valeur de chaîne suivantes. Cela contourne une vérification que le SDK Google Mobile Ads effectue pour une valeur GADApplicationIdentifier
qui s'applique aux développeurs qui implémentent des annonces en dehors d'une vue Web. Si vous manquez cette étape et ne fournissez pas de GADApplicationIdentifier
, le SDK Google Mobile Ads génère une GADInvalidInitializationException
au démarrage de l'application.
<!-- Indicate
Google Mobile Ads SDK
usage is only for web view APIs for ads -->
<key>GADIntegrationManager</key>
<string>webview</string>
Enregistrer la vue Web
Appelez register(_:)
sur le thread principal pour établir une connexion avec les gestionnaires JavaScript dans le code AdSense ou la Google Publisher Tag au sein de chaque instance WKWebView
. Cette opération doit être effectuée le plus tôt possible, par exemple dans la méthode viewDidLoad
de votre contrôleur de vue.
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];
}
Tester votre intégration
Avant d'utiliser votre propre URL, nous vous recommandons de charger l'URL suivante pour tester l'intégration :
https://google.github.io/webview-ads/test/#api-for-ads-tests
L'URL de test affiche des barres d'état vertes pour une intégration réussie si les conditions suivantes sont remplies :
WKWebView
connecté au SDK Google Mobile Ads
Étapes suivantes
- Obtenez le consentement dans
WKWebView
. Les API WebView pour les annonces ne propagent pas le consentement collecté dans le contexte de l'application mobile à l'aide des frameworks de conformité IAB TCF v2.0 ou IAB CCPA aux balises de vos WebViews. Si vous souhaitez implémenter un flux de consentement unique en tant que propriétaire de l'WKWebView
et du contenu Web correspondant monétisé, collaborez avec votre plate-forme de gestion du consentement pour recueillir le consentement dans le contexte de l'WKWebView
.
Sauf indication contraire, le contenu de cette page est régi par une licence Creative Commons Attribution 4.0, et les échantillons de code sont régis par une licence Apache 2.0. Pour en savoir plus, consultez les Règles du site Google Developers. Java est une marque déposée d'Oracle et/ou de ses sociétés affiliées.
Dernière mise à jour le 2025/08/23 (UTC).
[null,null,["Dernière mise à jour le 2025/08/23 (UTC)."],[[["\u003cp\u003eThe Web View APIs for Ads enable app signals to be available to ad tags within your WKWebView, enhancing monetization for publishers and protecting advertisers from spam.\u003c/p\u003e\n"],["\u003cp\u003eThese signals, such as app ID and version, unlock functionalities like reporting and targeted in-app browser inventory, previously exclusive to app traffic.\u003c/p\u003e\n"],["\u003cp\u003eTo utilize the APIs, you must register your WKWebView with the Google Mobile Ads SDK (version 9.6.0 or higher) and update your Info.plist file.\u003c/p\u003e\n"],["\u003cp\u003eThe SDK establishes communication with JavaScript handlers in your ad code (AdSense, Google Publisher Tag, or IMA for HTML5) solely during ad events.\u003c/p\u003e\n"],["\u003cp\u003eEnsure to gather user consent within the WKWebView context as the APIs do not automatically propagate consent collected in the mobile app using IAB frameworks.\u003c/p\u003e\n"]]],[],null,["The web view APIs for ads makes app signals available to the tags in your\n\n[WKWebView](//developer.apple.com/documentation/webkit/wkwebview), helping to improve monetization for the\npublishers that provided the content and protect advertisers from spam.\n\nThese app signals, such as app ID and app version, help activate [Reporting](//support.google.com/admanager/answer/14137220#report-on-in-app-webview-traffic)\nand [Target in-app browser inventory](//support.google.com/admanager/answer/14137220#target-in-app-webview-inventory)\nuse cases that are otherwise only available on app traffic.\n\n\nHow it works\n\nCommunication with the Google Mobile Ads SDK only happens in response to ad\nevents triggered by any of the following:\n\n- [AdSense code](//support.google.com/adsense/answer/9274634)\n- [Google Publisher Tag](//support.google.com/admanager/answer/181073)\n- [IMA for HTML5](//support.google.com/adsense/answer/6391192)\n\nThe SDK adds message handlers to the registered `WKWebView` to listen for\nthese ad events. For a better sense of how this works, view the\n[source code](//github.com/google/webview-ads/blob/main/test/index.html) of the\ntest page.\n| **Warning:** Don't call [`removeAllScriptMessageHandlers()`](//developer.apple.com/documentation/webkit/wkusercontentcontroller/3585114-removeallscriptmessagehandlers) from your `WKWebView` instance as this has unintended side effects. If needed, call [`removeScriptMessageHandler(forName:)`](//developer.apple.com/documentation/webkit/wkusercontentcontroller/1537532-removescriptmessagehandler) to remove individual message handlers instead.\n\nPrerequisites\n\n- [Google Mobile Ads SDK](/ad-manager/mobile-ads-sdk/ios/quick-start#import_the_mobile_ads_sdk) version 9.6.0 or higher.\n- Update the `Info.plist` file with the following key and string value. This\n bypasses a check the Google Mobile Ads SDK does for a\n `GADApplicationIdentifier` value that applies to developers who implement ads\n outside of a web view. If you miss this step and don't provide a\n `GADApplicationIdentifier`, the Google Mobile Ads SDK throws a\n `GADInvalidInitializationException` on app start.\n\n \u003c!-- Indicate Google Mobile Ads SDK usage is only for web view APIs for ads --\u003e\n \u003ckey\u003eGADIntegrationManager\u003c/key\u003e\n \u003cstring\u003ewebview\u003c/string\u003e\n\n\u003cbr /\u003e\n\nRegister the web view\n\nCall\n\n[`register(_:)`](/admob/ios/api/reference/Classes/GADMobileAds#-registerwebview:)\n\non the main thread to establish a connection with the JavaScript handlers in the\nAdSense code or Google Publisher Tag within each `WKWebView` instance. This\nshould be done as early as possible, such as in the\n\n`viewDidLoad` method of your view controller.\n\n\nSwift \n\n import WebKit\n\n class ViewController: UIViewController {\n\n var webView: WKWebView!\n\n override func viewDidLoad() {\n super.viewDidLoad()\n\n // Initialize a WKWebViewConfiguration object.\n let webViewConfiguration = WKWebViewConfiguration()\n // Let HTML videos with a \"playsinline\" attribute play inline.\n webViewConfiguration.allowsInlineMediaPlayback = true\n // Let HTML videos with an \"autoplay\" attribute play automatically.\n webViewConfiguration.mediaTypesRequiringUserActionForPlayback = []\n\n // Initialize the WKWebView with your WKWebViewConfiguration object.\n webView = WKWebView(frame: view.frame, configuration: webViewConfiguration)\n view.addSubview(webView)\n\n // Register the web view.\n MobileAds.shared.register(webView)\n }\n }\n\nObjective-C \n\n @import WebKit;\n\n #import \"ViewController.h\"\n\n @interface ViewController ()\n\n @property(nonatomic, strong) WKWebView *webView;\n\n @end\n\n @implementation ViewController\n\n - (void)viewDidLoad {\n [super viewDidLoad];\n\n // Initialize a WKWebViewConfiguration object.\n WKWebViewConfiguration *webViewConfiguration = [[WKWebViewConfiguration alloc] init];\n // Let HTML videos with a \"playsinline\" attribute play inline.\n webViewConfiguration.allowsInlineMediaPlayback = YES;\n // Let HTML videos with an \"autoplay\" attribute play automatically.\n webViewConfiguration.mediaTypesRequiringUserActionForPlayback = WKAudiovisualMediaTypeNone;\n\n // Initialize the WKWebView with your WKWebViewConfiguration object.\n self.webView = [[WKWebView alloc] initWithFrame:self.view.frame configuration:webViewConfiguration];\n [self.view addSubview:self.webView];\n\n // Register the web view.\n \\[GADMobileAds.sharedInstance registerWebView:self.webView\\];\n }\n\nTest your integration\n\nBefore using your own URL, we recommend that you load the following URL to test\nthe integration: \n\n https://google.github.io/webview-ads/test#api-for-ads-tests\n\nThe test URL shows green status bars for a successful integration if the\nfollowing conditions apply:\n\n- `WKWebView` connected to the Google Mobile Ads SDK\n\nNext steps\n\n- Gather consent in `WKWebView`. The Web view APIs for Ads doesn't propagate consent collected in the mobile app context using [IAB TCF v2.0](//iabeurope.eu/tcf-2-0/) or [IAB CCPA](//iabtechlab.com/wp-content/uploads/2019/11/Technical-Specifications-FAQ-US-Privacy-IAB-Tech-Lab.pdf) compliance frameworks to the tags in your web views. If you're interested in implementing a single consent flow as the owner of both the `WKWebView` and its corresponding web content being monetized, work with your consent management platform to gather consent in the `WKWebView` context."]]