Интегрируйте WebView API для рекламы

API WebView для рекламы позволяет монетизировать рекламу в приложении с помощью WebViewController . Если вы отображаете веб-контент, реализующий рекламу с помощью кода AdSense или тега издателя Google, в своем приложении через WebViewController , вам следует использовать этот API для включения монетизации рекламы. Дополнительную информацию см. в правилахПравила AdSense и Менеджера рекламы .

  1. Монетизируйте, отправляя запросы объявлений с помощью Google Mobile Ads SDK.

    Вы можете монетизировать свое приложение, отправляя запросы объявлений вМенеджер рекламы с помощью Google Mobile Ads SDK путем реализации форматов объявлений для мобильного приложения .

    Узнать больше .

  2. Монетизируйте с помощью API WebView для рекламы.

    Если ваше приложение использует WebViewController для отображения веб-контента, который показывает рекламу из Менеджера рекламы или AdSense , используйте WebView API для рекламы, чтобы зарегистрировать объекты WebViewController в Google Mobile Ads SDK. JavaScript в коде AdSense или теге издателя Google создает и отправляет запросы объявлений, поэтому вам не нужно отправлять запросы объявлений с помощью SDK. Имейте в виду, что с помощью этого API доступны только форматы инвентаря для мобильных сайтов и настольных компьютеров.

    Если вы не являетесь владельцем веб-содержимого в WebViewController , вам все равно рекомендуется использовать этот API, чтобы защитить рекламодателей от спама и улучшить монетизацию веб-издателей, предоставивших контент.

Обратите внимание, что вы можете выполнить любой вариант или даже оба в одном приложении.

Это руководство призвано помочь вам интегрировать API WebView для рекламы в ваше приложение iOS.

Прежде чем вы начнете

Прежде чем начать использовать API WebView для рекламы, убедитесь, что вы выполнили следующие действия:

Обход проверки идентификатора приложения

Андроид

Добавьте следующий тег <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"/>

iOS

Обновите файл 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 , выполните действия, перечисленные ниже:

  1. Включите JavaScript в WebViewController . Если этого не сделать, реклама может не загружаться.

  2. Чтобы улучшить качество рекламы для ваших пользователей и обеспечить соответствие политике использования файлов cookie Chrome, включите сторонние файлы cookie в своем экземпляре AndroidWebViewController .

  3. Зарегистрируйте экземпляр 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= .