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

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

  1. تحقيق الربح من خلال تقديم طلبات الإعلانات باستخدام "SDK لإعلانات Google على الأجهزة الجوّالة"

    يمكنك تحقيق الربح من تطبيقك عن طريق إرسال طلبات الإعلانات إلى "مدير إعلانات Google" مع حزمة SDK لإعلانات Google على الأجهزة الجوّالة من خلال تنفيذ أشكال إعلانات للتطبيقات المتوافقة مع الأجهزة الجوّالة.

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

  2. تحقيق الربح باستخدام WebView API for Ads

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

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

لاحظ أنه يمكنك تنفيذ أي من الخيارين، أو حتى كليهما، في التطبيق نفسه.

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

قبل البدء

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

تجاوز البحث عن معرّف التطبيق

Android

أضِف علامة <meta-data> التالية في ملف AndroidManifest.xml لتجاوز عملية التحقّق من APPLICATION_ID. إذا فاتتك هذه الخطوة، قد تنشئ حزمة تطوير البرامج (SDK) لإعلانات Google على الأجهزة الجوّالة علامة 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. إذا فاتتك هذه الخطوة، قد تُطلق حزمة "SDK لإعلانات Google على الأجهزة الجوّالة" علامة GADInvalidInitializationException عند بدء تشغيل التطبيق.

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

تسجيل WebViewController

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

  1. يمكنك تفعيل JavaScript في WebViewController. وقد يؤدي عدم الالتزام بذلك إلى عدم تحميل الإعلانات

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

  3. سجِّل مثيل WebViewController من خلال استدعاء الطريقة registerWebView() التي توفّرها حزمة "SDK لإعلانات Google على الأجهزة الجوّالة".

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 بحزمة SDK لإعلانات Google على الأجهزة الجوّالة
  • تم تفعيل JavaScript
  • تعمل ملفات تعريف الارتباط التابعة لجهات خارجية (غير متوقّع على أجهزة iOS).
  • ملفات تعريف الارتباط الخاصة بالطرف الأول تعمل

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