API WebView для рекламы позволяет монетизировать рекламу в приложении с помощью WebViewController
. Если вы отображаете веб-контент, реализующий рекламу с помощью кода AdSense или тега издателя Google, в своем приложении через WebViewController
, вам следует использовать этот API для включения монетизации рекламы. Дополнительную информацию см. в правилах AdMob .
- Монетизируйте, отправляя запросы объявлений с помощью Google Mobile Ads SDK.
Вы можете монетизировать свое приложение, отправляя запросы объявлений в AdMob с помощью Google Mobile Ads SDK, реализуя форматы объявлений для мобильного приложения .
- Монетизируйте с помощью API WebView для рекламы.
Если ваше приложение использует
WebViewController
для отображения веб-контента, который показывает рекламу из Менеджера рекламы или AdSense , используйте WebView API для рекламы, чтобы зарегистрировать объектыWebViewController
в Google Mobile Ads SDK. JavaScript в коде AdSense или теге издателя Google создает и отправляет запросы объявлений, поэтому вам не нужно отправлять запросы объявлений с помощью SDK. Имейте в виду, что с помощью этого API доступны только форматы инвентаря для мобильных сайтов и настольных компьютеров.Если вы не являетесь владельцем веб-содержимого в
WebViewController
, вам все равно рекомендуется использовать этот API, чтобы защитить рекламодателей от спама и улучшить монетизацию веб-издателей, предоставивших контент.
Обратите внимание, что вы можете выполнить любой вариант или даже оба в одном приложении.
Это руководство призвано помочь вам интегрировать API WebView для рекламы в ваше приложение iOS.
Прежде чем начать
Прежде чем начать использовать API WebView для рекламы, убедитесь, что вы выполнили следующие действия:
- Используйте Google Mobile Ads SDK для плагина Flutter версии 3.0.0 или выше в своем приложении.
- Добавьте
webview_flutter
в качестве зависимости в файлpubspec.yaml
. - Добавьте
webview_flutter_android
версии 3.7.0 или выше в свое приложение.
Обход проверки идентификатора приложения
Добавьте следующий тег <meta-data>
в файл AndroidManifest.xml
, чтобы обойти проверку APPLICATION_ID
. Если вы пропустите этот шаг, Google Mobile Ads SDK может выдать исключение IllegalStateException
при запуске приложения.
<!-- Bypass APPLICATION_ID check for WebView API for Ads -->
<meta-data
android:name="com.google.android.gms.ads.INTEGRATION_MANAGER"
android:value="webview"/>
Обновите файл Runner/Info.plist
указав приведенные ниже ключ и строковое значение, чтобы обойти проверку GADApplicationIdentifier
. Если вы пропустите этот шаг, Google Mobile Ads SDK может выдать исключение GADInvalidInitializationException
при запуске приложения.
<!-- Bypass GADApplicationIdentifier check for WebView API for Ads -->
<key>GADIntegrationManager</key>
<string>webview</string>
Зарегистрируйте WebViewController
Чтобы улучшить монетизацию рекламы в приложении в WebViewController
, который использует код AdSense или теги издателя Google , выполните действия, перечисленные ниже:
Включите JavaScript в
WebViewController
. Если этого не сделать, реклама может не загружаться.Чтобы улучшить качество рекламы для ваших пользователей и обеспечить соответствие политике использования файлов cookie Chrome, включите сторонние файлы cookie в своем экземпляре
AndroidWebViewController
.Зарегистрируйте экземпляр
WebViewController
, вызвав методregisterWebView()
предоставляемый SDK Google Mobile Ads.
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-адрес: https://webview-api-for-ads-test.glitch.me/
, чтобы протестировать интеграцию, прежде чем использовать собственный URL-адрес. На веб-странице будет отображаться ошибка, если 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://webview-api-for-ads-test.glitch.me/'));
}
Тестовый URL-адрес показывает зеленые строки состояния для успешной интеграции, если применяются следующие условия:
-
WebView
подключен к Google Mobile Ads SDK - JavaScript включен
- Сторонние файлы cookie работают (не ожидаются на устройствах iOS)
- Основные файлы cookie работают
Просмотрите исходный код нашего тестового URL-адреса. Затем вы можете заменить тестовый URL-адрес своим URL-адресом. Вы также можете использовать прокси-инструмент, такой как Charles, для захвата HTTPS-трафика вашего приложения и проверки запросов объявлений на наличие параметра &scar=
.