دمج واجهة برمجة التطبيقات WebView API للإعلانات

تسمح "WebView API للإعلانات" بتحقيق الربح من الإعلانات داخل التطبيق باستخدام WebViewController. إذا كنت تعرض محتوى ويب يتضمّن إعلانات باستخدام رمز AdSense أو علامة Google للنشر في تطبيقك من خلال WebViewController، عليك استخدام واجهة برمجة التطبيقات هذه لتفعيل تحقيق الربح من الإعلانات. لمزيد من المعلومات، يُرجى الاطّلاع على سياسات AdMob.

  1. تحقيق الربح من خلال إرسال طلبات الإعلانات باستخدام Google Mobile Ads Flutter Plugin

    يمكنك تحقيق الربح من تطبيقك من خلال إرسال طلبات الإعلانات إلى AdMob باستخدام Google Mobile Ads Flutter Plugin عن طريق تنفيذ أشكال الإعلانات للتطبيق على الأجهزة الجوّالة app.

    مزيد من المعلومات.

  2. تحقيق الربح باستخدام "WebView API للإعلانات"

    إذا كان تطبيقك يستخدم WebViewController لعرض محتوى ويب يعرض إعلانات من مدير إعلانات Google أو AdSense، استخدِم "WebView API للإعلانات" لتسجيل عناصر WebViewController باستخدام Google Mobile Ads Flutter Plugin. تنشئ JavaScript في رمز AdSense أو علامة Google للنشر طلبات الإعلانات وترسلها، لذا لن تحتاج إلى إرسال أيّ طلبات إعلانات باستخدام حزمة تطوير البرامج (SDK). ضَع في اعتبارك أنّه لا تتوفّر باستخدام واجهة برمجة التطبيقات هذه سوى أشكال مستودع الإعلانات على الويب للأجهزة الجوّالة والويب على أجهزة الكمبيوتر .

    إذا لم تكن تملك محتوى الويب في WebViewController، ننصحك مع ذلك باستخدام واجهة برمجة التطبيقات هذه للمساعدة في حماية المعلنين من المحتوى غير المرغوب فيه وتحسين تحقيق الربح لناشري الويب الذين قدّموا المحتوى.

يُرجى العِلم أنّه يمكنك تنفيذ أحد الخيارَين أو كليهما في التطبيق نفسه.

يهدف هذا الدليل إلى مساعدتك في دمج "WebView API للإعلانات" في تطبيقك على iOS.

قبل البدء

قبل البدء في استخدام "WebView API للإعلانات"، تأكَّد من تنفيذ ما يلي:

تخطّي التحقّق من معرّف التطبيق

Android

أضِف علامة <meta-data> التالية في ملف AndroidManifest.xml لتخطّي التحقّق من 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

عدِّل ملف Runner/Info.plist باستخدام المفتاح وقيمة السلسلة أدناه لتخطّي التحقّق من GADApplicationIdentifier. إذا فاتتك هذه الخطوة، Google Mobile Ads Flutter Plugin قد يعرض GADInvalidInitializationException عند بدء التطبيق.

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

تسجيل WebViewController

لتحسين تحقيق الربح من الإعلانات داخل التطبيق ضمن WebViewController الذي يستخدم AdSense code أو Google Publisher Tags، اتّبِع الخطوات الموضّحة أدناه:

  1. فعِّل JavaScript في WebViewController. إذا لم تفعل ذلك، قد لا يتم تحميل الإعلانات.

  2. لتحسين تجربة الإعلانات لدى المستخدمين والالتزام بسياسة ملفات تعريف الارتباط في Chrome، فعِّل ملفات تعريف الارتباط التابعة لجهات خارجية على مثيل AndroidWebViewController

  3. سجِّل مثيل 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 التجريبي هذا: https://google.github.io/webview-ads/test/ لاختبار عملية الدمج قبل استخدام عنوان 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://google.github.io/webview-ads/test/'));
  }

يعرض عنوان URL التجريبي أشرطة حالة خضراء لعملية دمج ناجحة إذا استوفيت الشروط التالية:

  • WebView متصل بـ Google Mobile Ads Flutter Plugin
  • تم تفعيل JavaScript
  • تعمل ملفات تعريف الارتباط التابعة لجهات خارجية (لا يُتوقّع أن تعمل على أجهزة iOS)
  • تعمل ملفات تعريف الارتباط الخاصة بالطرف الأول

عرض رمز المصدر لعنوان URL التجريبي يمكنك بعد ذلك استبدال عنوان URL التجريبي بعنوان URL الخاص بك. يمكنك أيضًا استخدام أداة وكيل، مثل Charles، لرصد زيارات بروتوكول HTTPS لتطبيقك وفحص طلبات الإعلانات بحثًا عن مَعلمة &scar=.