Les API WebView pour les annonces rendent les signaux d'application disponibles pour les balises de votreWebView
, ce qui permet d'améliorer la monétisation pour les éditeurs qui ont fourni le contenu et de protéger les annonceurs contre le spam.
Fonctionnement
La communication avec le SDK Google Mobile Ads ne se produit que en réponse aux événements d'annonces déclenchés par l'un des éléments suivants:
Le SDK ajoute des gestionnaires de messages à l'WebView
enregistrée pour écouter ces événements d'annonce. Pour mieux comprendre le fonctionnement, consultez le code source de la page de test.
Prérequis
- SDK Google Mobile Ads version 20.6.0 ou ultérieure
Niveau d'API Android 21 ou version ultérieure
Ajoutez la balise
<meta-data>
suivante dans votre fichierAndroidManifest.xml
pour contourner la vérification deAPPLICATION_ID
. Si vous ne suivez pas cette étape et ne fournissez pas la balise<meta-data>
, le SDK Google Mobile Ads génère une exceptionIllegalStateException
au démarrage de l'application.<!-- Bypass APPLICATION_ID check for web view APIs for ads --> <meta-data android:name="com.google.android.gms.ads.INTEGRATION_MANAGER" android:value="webview"/>
Enregistrer la vue Web
Appelez
registerWebView()
sur le thread principal pour établir une connexion avec les gestionnaires JavaScript dans le code AdSense ou la balise Google Publisher dans chaque WebView
instance. Cette opération doit être effectuée dès que possible, par exemple dans la méthode viewDidLoad
de votre contrôleur de vue.
Méthode onCreate()
de votre MainActivity
.
Kotlin
import android.webkit.CookieManager
import android.webkit.WebView
import com.google.android.gms.ads.MobileAds
class MainActivity : AppCompatActivity() {
lateinit var webView: WebView
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
webView = findViewById(R.id.webview)
// Let the web view accept third-party cookies.
CookieManager.getInstance().setAcceptThirdPartyCookies(webView, true)
// Let the web view use JavaScript.
webView.settings.javaScriptEnabled = true
// Let the web view access local storage.
webView.settings.domStorageEnabled = true
// Let HTML videos play automatically.
webView.settings.mediaPlaybackRequiresUserGesture = false
// Register the web view.
MobileAds.registerWebView(webView)
}
}
Java
import android.webkit.CookieManager;
import android.webkit.WebView;
import com.google.android.gms.ads.MobileAds;
public class MainActivity extends AppCompatActivity {
private WebView webView;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
webView = findViewById(R.id.webview);
// Let the web view accept third-party cookies.
CookieManager.getInstance().setAcceptThirdPartyCookies(webView, true);
// Let the web view use JavaScript.
webView.getSettings().setJavaScriptEnabled(true);
// Let the web view access local storage.
webView.getSettings().setDomStorageEnabled(true);
// Let HTML videos play automatically.
webView.getSettings().setMediaPlaybackRequiresUserGesture(false);
// Register the web view.
MobileAds.registerWebView(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://webview-api-for-ads-test.glitch.me#api-for-ads-tests
L'URL de test affiche des barres d'état vertes pour une intégration réussie si les conditions suivantes s'appliquent:
WebView
connecté au SDK Google Mobile Ads
Étapes suivantes
- Collectez le consentement dans
WebView
. Les API d'affichage Web pour Ads ne propagent pas le consentement collecté dans le contexte de l'application mobile à l'aide des cadres de conformité du TCF v2.0 de l'IAB ou du CDPA de l'IAB aux balises de vos affichages Web. Si vous souhaitez implémenter un seul flux de consentement en tant que propriétaire à la fois de laWebView
et du contenu Web correspondant qui est monétisé, collaborez avec votre plate-forme de gestion du consentement pour recueillir le consentement dans le contexte de laWebView
.