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

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

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

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

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

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

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

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

تجدر الإشارة إلى أنّه يمكنك تنفيذ أي من الخيارَين أو كليهما في التطبيق نفسه.

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

قبل البدء

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

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

AndroidiOS

أضِف علامة <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"/>

عدِّل ملف 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=.