Reklamlar için WebView API'yi entegre etme

Reklamlar için WebView API, WebViewController kullanılarak uygulama içi reklam para kazanma özelliğine olanak tanır. Uygulamanızda WebViewController aracılığıyla AdSense kodu veya Google yayıncı etiketi ile reklamların uygulandığı web içeriği gösteriyorsanız reklamlarla para kazanmayı etkinleştirmek için bu API'yi kullanmanız gerekir. Daha fazla bilgi edinmek için AdSense ve Ad Manager politikalarını inceleyin.

  1. Google Mobile Ads SDK'sı ile reklam istekleri göndererek para kazanma

    Mobil uygulama için reklam biçimlerini uygulayarak Google Mobile Ads SDK'sı ile Ad Manager'a reklam isteğinde bulunarak uygulamanızdan para kazanabilirsiniz.

    Daha fazla bilgi edinin.

  2. Reklamlar için WebView API'yi kullanarak para kazanma

    Uygulamanız WebViewController kullanarak Ad Manager veya AdSense'ten reklam sunan web içeriğini gösteriyorsa WebViewController nesnelerini Google Mobile Ads SDK'sına kaydetmek için reklamlarda WebView API'yi kullanın. AdSense kodu veya Google yayıncı etiketi içindeki JavaScript, reklam isteklerini oluşturup gönderir. Bu nedenle, SDK ile herhangi bir reklam isteğinde bulunmanız gerekmez. Bu API'nin yalnızca mobil web ve masaüstü web envanter biçimlerinde kullanılabildiğini unutmayın.

    WebViewController içindeki web içeriğinin sahibi olmasanız bile reklamverenleri spam'den korumak ve içeriği sağlayan web yayıncılarının para kazanma oranını artırmak için bu API'yi kullanmanız önerilir.

Aynı uygulamada bu seçeneklerden birini veya her ikisini de kullanabilirsiniz.

Bu kılavuz, Reklamlar için WebView API'yi iOS uygulamanıza entegre etmenize yardımcı olmak amacıyla hazırlanmıştır.

Başlamadan önce

Reklamlar için WebView API'yi kullanmaya başlamadan önce aşağıdakileri yaptığınızdan emin olun:

Uygulama tanımlayıcısı kontrolünü atlama

Android

APPLICATION_ID kontrolünü atlamak için AndroidManifest.xml dosyanıza aşağıdaki <meta-data> etiketini ekleyin. Bu adımı atlarsanız Google Mobile Ads SDK'sı, uygulama başlatıldığında IllegalStateException hatası verebilir.

<!-- 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 dosyasını, Runner/Info.plist için kontrolü atlamak üzere aşağıdaki anahtar ve dize değeriyle güncelleyin.GADApplicationIdentifier Bu adımı atlarsanız Google Mobile Ads SDK'sı, uygulama başlatıldığında GADInvalidInitializationException hatası verebilir.

<!-- Bypass GADApplicationIdentifier check for WebView API for Ads -->
<key>GADIntegrationManager</key>
<string>webview</string>

WebViewController'ı kaydetme

WebViewController içinde AdSense kodu veya Google yayıncı etiketleri kullanan bir uygulamadaki reklamların uygulama içi reklam para kazanma performansını artırmak için aşağıda listelenen adımları uygulayın:

  1. WebViewController içinde JavaScript'i etkinleştirin. Aksi takdirde reklamlar yüklenmeyebilir.

  2. Kullanıcılarınızın reklam deneyimini iyileştirmek ve Chrome'un çerez politikası ile tutarlı olmak için AndroidWebViewController örneğinizde üçüncü taraf çerezlerini etkinleştirin.

  3. Google Mobile Ads SDK'sı tarafından sağlanan registerWebView() yöntemini çağırarak WebViewController örneğini kaydedin.

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'yi yükleyin.

Artık bir URL yükleyebilir ve web içeriğinizi WebViewController aracılığıyla görüntüleyebilirsiniz. Kendi URL'nizi kullanmadan önce entegrasyonu test etmek için şu test URL'sini yüklemenizi öneririz: https://google.github.io/webview-ads/test/ JavaScript etkin değilse web sayfasında hata gösterilir.

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/'));
  }

Aşağıdaki koşullar geçerliyse test URL'si, başarılı bir entegrasyon için yeşil durum çubukları gösterir:

  • WebView Google Mobile Ads SDK'sına bağlı
  • JavaScript etkin olmalıdır.
  • Üçüncü taraf çerezleri çalışır (iOS cihazlarda beklenmez)
  • Birinci taraf çerezleri çalışır

Test URL'mizin kaynak kodunu görüntüleyin. Ardından test URL'sini kendi URL'nizle değiştirebilirsiniz. Ayrıca, uygulamanızın HTTPS trafiğini yakalamak ve reklam isteklerini &scar= parametresi için incelemek üzere Charles gibi bir proxy aracı da kullanabilirsiniz.