WebView API for Ads позволяет монетизировать рекламу в приложении с помощью WebViewController.
Если вы показываете веб-контент, в котором реализованы объявления с кодом AdSense или тегом Google Publisher Tag, в своем приложении через WebViewController, вам следует использовать этот API, чтобы включить монетизацию объявлений. Подробную информацию вы найдете в правилах AdSense и Менеджера рекламы.
- Монетизируйте контент, отправляя запросы объявлений с помощью Google Mobile Ads Flutter Plugin
Вы можете монетизировать свое приложение, отправляя запросы объявлений в Менеджер рекламы с помощью Google Mobile Ads Flutter Plugin. Для этого необходимо реализовать форматы объявлений для мобильных приложений.
- Как настроить монетизацию с помощью WebView API for Ads
Если ваше приложение использует
WebViewControllerдля показа веб-контента, в котором размещаются объявления из Менеджера рекламы или AdSense, используйте WebView API for Ads, чтобы зарегистрировать объектыWebViewControllerв Google Mobile Ads Flutter Plugin. Код JavaScript в коде AdSense или теге Google Publisher Tag создает и отправляет запросы объявлений, поэтому вам не нужно делать это с помощью SDK. Обратите внимание, что при использовании этого API доступны только форматы инвентаря для мобильных сайтов и обычных сайтов.Если вы не владеете веб-контентом в
WebViewController, мы все равно рекомендуем использовать этот API, чтобы защитить рекламодателей от спама и повысить доход веб-издателей, предоставивших контент.
Вы можете выбрать один из вариантов или оба сразу.
Это руководство поможет вам интегрировать WebView API for Ads в приложение для iOS.
Подготовка
Прежде чем начать работу с WebView API for Ads, выполните следующие действия:
- Используйте в приложении плагин Google Mobile Ads Flutter Plugin для Flutter версии 3.0.0 или более поздней.
- Добавьте
webview_flutterв качестве зависимости в файлpubspec.yaml. - Добавьте в приложение
webview_flutter_androidверсии 3.7.0 или более поздней.
Пропустить проверку идентификатора приложения
Android
Добавьте в файл AndroidManifest.xml тег <meta-data>, чтобы пропустить проверку APPLICATION_ID. Если вы пропустите этот шаг, Google Mobile Ads Flutter Plugin может выдать ошибку IllegalStateException при запуске приложения.
<!-- Bypass APPLICATION_ID check for WebView API for Ads -->
<meta-data
android:name="com.google.android.gms.ads.INTEGRATION_MANAGER"
android:value="webview"/>
iOS
Чтобы пропустить проверку GADApplicationIdentifier, добавьте в файл Runner/Info.plist ключ и строковое значение, указанные ниже. Если вы пропустите этот шаг, Google Mobile Ads Flutter Plugin может выдать ошибку GADInvalidInitializationException при запуске приложения.
<!-- Bypass GADApplicationIdentifier check for WebView API for Ads -->
<key>GADIntegrationManager</key>
<string>webview</string>
Зарегистрируйте WebViewController
Чтобы повысить доход от рекламы в приложении, которая показывается в WebViewController с помощью кода AdSense или тегов Google Publisher Tag, выполните следующие действия:
Включите JavaScript в
WebViewController. В противном случае объявления могут не загружаться.Чтобы повысить качество рекламы и обеспечить соответствие правилам Chrome в отношении файлов cookie, включите сторонние файлы cookie в своем экземпляре
AndroidWebViewController.Зарегистрируйте экземпляр
WebViewController, вызвав методregisterWebView(), предоставляемый Google Mobile Ads Flutter Plugin.
import 'package:google_mobile_ads/google_mobile_ads.dart';
import 'package:webview_flutter/webview_flutter.dart';
import 'package:webview_flutter_android/webview_flutter_android.dart';
@override
class WebViewExampleState extends State<WebViewExample> {
late final WebViewController controller;
@override
void initState() {
super.initState();
createWebView();
}
void createWebView() async {
controller = WebViewController();
// 1. Enable JavaScript in the web view.
await controller.setJavaScriptMode(JavaScriptMode.unrestricted);
// 2. Enable third-party cookies for Android.
if (controller.platform is AndroidWebViewController) {
AndroidWebViewCookieManager cookieManager = AndroidWebViewCookieManager(
const PlatformWebViewCookieManagerCreationParams());
await cookieManager.setAcceptThirdPartyCookies(
controller.platform as AndroidWebViewController, true);
}
// 3. Register the web view.
await MobileAds.instance.registerWebView(controller);
}
}
Загрузите URL.
Теперь вы можете загрузить URL и показывать веб-контент через WebViewController.
Прежде чем использовать собственный URL, рекомендуем загрузить тестовый URL: https://google.github.io/webview-ads/test/. Если JavaScript не включен, на веб-странице появится сообщение об ошибке.
import 'package:google_mobile_ads/google_mobile_ads.dart';
import 'package:webview_flutter/webview_flutter.dart';
import 'package:webview_flutter_android/webview_flutter_android.dart';
@override
class WebViewExampleState extends State<WebViewExample> {
late final WebViewController controller;
@override
void initState() {
super.initState();
createWebView();
}
void createWebView() async {
controller = WebViewController();
// 1. Enable JavaScript in the web view.
await controller.setJavaScriptMode(JavaScriptMode.unrestricted);
// 2. Enable third-party cookies for Android.
if (controller.platform is AndroidWebViewController) {
AndroidWebViewCookieManager cookieManager = AndroidWebViewCookieManager(
const PlatformWebViewCookieManagerCreationParams());
await cookieManager.setAcceptThirdPartyCookies(
controller.platform as AndroidWebViewController, true);
}
// 3. Register the web view.
await MobileAds.instance.registerWebView(controller);
// 4. Load the URL.
await controller.loadRequest(Uri.parse('https://google.github.io/webview-ads/test/'));
}
Если интеграция выполнена успешно, то в тестовом URL будут показаны зеленые строки состояния. Это произойдет при соблюдении следующих условий:
- Устройство
WebViewподключено к Google Mobile Ads Flutter Plugin. - JavaScript включен
- Сторонние файлы cookie работают (не ожидается на iOS-устройствах).
- Собственные файлы cookie работают
Посмотрите исходный код тестового URL. Затем вы можете заменить тестовый URL на свой. Вы также можете использовать прокси-инструмент, например Charles, чтобы перехватывать HTTPS-трафик приложения и проверять запросы объявлений на наличие параметра &scar=.
