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

- تحقيق الربح من خلال تقديم طلبات إعلانات باستخدام "حزمة تطوير البرامج (SDK) لإعلانات Google على الأجهزة الجوّالة"
يمكنك تحقيق الربح من تطبيقك عن طريق إرسال طلبات إعلانات إلى AdMob باستخدام حزمة تطوير البرامج (SDK) لإعلانات Google على الأجهزة الجوّالة من خلال تنفيذ تنسيقات الإعلانات للتطبيقات على الأجهزة الجوّالة.
مزيد من المعلومات
- تحقيق الربح باستخدام WebView API للإعلانات
إذا كان تطبيقك يستخدم WebViewController
لعرض محتوى الويب الذي يعرض إعلانات من
مدير الإعلانات أو
AdSense، استخدِم واجهة WebView API للإعلانات لتسجيل عناصر
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
لتحسين تحقيق الربح من الإعلانات داخل التطبيقات التي تستخدم رمز
AdSense أو علامات الناشرين من Google، اتّبِع الخطوات
المدرَجة أدناه:WebViewController
فعِّل JavaScript في WebViewController
. وقد يؤدي عدم إجراء ذلك إلى عدم تحميل الإعلانات.
لتحسين تجربة المستخدمين مع الإعلانات والالتزام بسياسة ملفات تعريف الارتباط في Chrome، فعِّل ملفات تعريف الارتباط التابعة لجهات خارجية على مثيل AndroidWebViewController
.
سجِّل مثيل 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://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
مرتبطة بحزمة "SDK لإعلانات Google على الأجهزة الجوّالة"
- تفعيل JavaScript
- تعمل ملفات تعريف الارتباط التابعة لجهات خارجية (لا يُتوقّع حدوث ذلك على أجهزة iOS)
- طريقة عمل ملفات تعريف الارتباط الخاصة بالطرف الأول
اطّلِع على رمز المصدر لعنوان URL التجريبي. يمكنك بعد ذلك استبدال عنوان URL التجريبي بعنوان URL الخاص بك. يمكنك أيضًا استخدام أداة خادم وكيل، مثل Charles، لتسجيل زيارات بروتوكول HTTPS لتطبيقك وفحص طلبات الإعلانات بحثًا عن المَعلمة &scar=
.

إنّ محتوى هذه الصفحة مرخّص بموجب ترخيص Creative Commons Attribution 4.0 ما لم يُنصّ على خلاف ذلك، ونماذج الرموز مرخّصة بموجب ترخيص Apache 2.0. للاطّلاع على التفاصيل، يُرجى مراجعة سياسات موقع Google Developers. إنّ Java هي علامة تجارية مسجَّلة لشركة Oracle و/أو شركائها التابعين.
تاريخ التعديل الأخير: 2025-09-02 (حسب التوقيت العالمي المتفَّق عليه)
[null,null,["تاريخ التعديل الأخير: 2025-09-02 (حسب التوقيت العالمي المتفَّق عليه)"],[[["\u003cp\u003eThe WebView API for Ads enables in-app ad monetization when displaying web content with AdSense or Google Publisher Tag ads through \u003ccode\u003eWebViewController\u003c/code\u003e.\u003c/p\u003e\n"],["\u003cp\u003eTo use this API, register your \u003ccode\u003eWebViewController\u003c/code\u003e objects with the Google Mobile Ads SDK, ensuring JavaScript and third-party cookies (for Android) are enabled.\u003c/p\u003e\n"],["\u003cp\u003eThis API simplifies ad serving by handling ad requests within the web content's JavaScript, eliminating the need for manual ad requests from your app.\u003c/p\u003e\n"],["\u003cp\u003eIt is recommended to use this API even for third-party web content to enhance ad monetization and protect against spam.\u003c/p\u003e\n"],["\u003cp\u003eBefore starting, ensure you're using the Google Mobile Ads SDK for Flutter plugin (v3.0.0+), \u003ccode\u003ewebview_flutter\u003c/code\u003e, and \u003ccode\u003ewebview_flutter_android\u003c/code\u003e (v3.7.0+) in your app.\u003c/p\u003e\n"]]],["The WebView API for Ads facilitates in-app ad monetization through `WebViewController`. To use this, register `WebViewController` objects with the Google Mobile Ads SDK. Enable JavaScript and third-party cookies in the `WebViewController` and then call `registerWebView()`. For Android, add a specific `\u003cmeta-data\u003e` tag in `AndroidManifest.xml`, and for iOS, update `Info.plist` to bypass checks. You can load web content that implements ads from AdSense or Google Publisher Tag via this API and use a test URL to verify integration.\n"],null,["The WebView API for Ads allows in-app ad monetization using\n[`WebViewController`](//pub.dev/documentation/webview_flutter/latest/webview_flutter/WebViewController-class.html).\nIf you display web content that implements ads with\n[AdSense code](//support.google.com/adsense/answer/9274634) or\n[Google Publisher Tag](//support.google.com/admanager/answer/181073)\nin your app through `WebViewController`, you should use this API to enable ads\nmonetization. To learn more, see the\n\n[AdMob policies](//support.google.com/admob/answer/48182#trs).\n\n\n1.\n\n Monetize by making ad requests with Google Mobile Ads SDK\n\n : You can monetize your app by making ad requests to\n\n AdMob with\n Google Mobile Ads SDK by implementing [ad formats for mobile\n app](//support.google.com/admob/answer/6128738).\n\n\n [Learn more](/admob/flutter/quick-start).\n2.\n\n Monetize by using the WebView API for Ads\n\n : If your app uses `WebViewController` to display web content that serves ads from\n [Ad Manager](//support.google.com/admanager) or\n [AdSense](//support.google.com/adsense), use the WebView API for Ads to register\n `WebViewController` objects with Google Mobile Ads SDK. The\n JavaScript in the [AdSense code](//support.google.com/adsense/answer/9274634)\n or [Google Publisher Tag](//support.google.com/admanager/answer/181073)\n builds and sends ad requests so you don't need to make any ad requests with\n the SDK. Keep in mind that only the mobile web and desktop web\n [inventory formats](//support.google.com/admanager/answer/9796545)\n are available using this API.\n\n If you don't own the web content in a `WebViewController`, you are still\n encouraged to use this API to help protect advertisers from spam and\n improve monetization for the web publishers that provided the content.\n\nNote that you can do either option, or even both, in the same app.\n\nThis guide is intended to help you integrate the WebView API for Ads into your\niOS app.\n\nBefore you begin\n\nBefore you start using the WebView API for Ads, make sure you do the following:\n\n- Use [Google Mobile Ads SDK for Flutter plugin](/admob/flutter/quick-start#import_the_mobile_ads_sdk) with version 3.0.0 or higher in your app.\n- Add [`webview_flutter`](//pub.dev/packages/webview_flutter) as a dependency in your `pubspec.yaml` file.\n- Add [`webview_flutter_android`](//pub.dev/packages/webview_flutter_android) with version 3.7.0 or higher in your app.\n\nBypass the check for application identifier \n\nAndroid\n\nAdd the following `\u003cmeta-data\u003e` tag in your `AndroidManifest.xml` file to\nbypass the check for the `APPLICATION_ID`. If you miss this step,\nGoogle Mobile Ads SDK might throw an\n[`IllegalStateException`](//developer.android.com/reference/java/lang/IllegalStateException)\non app start. \n\n \u003c!-- Bypass APPLICATION_ID check for WebView API for Ads --\u003e\n \u003cmeta-data\n android:name=\"com.google.android.gms.ads.INTEGRATION_MANAGER\"\n android:value=\"webview\"/\u003e\n\niOS\n\nUpdate the `Runner/Info.plist` file with the key and string value below to\nbypass a check for the `GADApplicationIdentifier`. If you miss this step,\nGoogle Mobile Ads SDK might throw a `GADInvalidInitializationException`\non app start. \n\n \u003c!-- Bypass GADApplicationIdentifier check for WebView API for Ads --\u003e\n \u003ckey\u003eGADIntegrationManager\u003c/key\u003e\n \u003cstring\u003ewebview\u003c/string\u003e\n\nRegister the WebViewController\n\nTo improve in-app ad monetization of ads within a\n`WebViewController` that uses [AdSense\ncode](//support.google.com/adsense/answer/9274634) or [Google Publisher\nTags](//support.google.com/admanager/answer/181073), follow the steps\nlisted below:\n\n1. Enable JavaScript in the `WebViewController`. Failure to do so can cause\n ads not to load.\n\n2. To improve your users' ad experience and be consistent with Chrome's\n [cookie policy](//policies.google.com/technologies/cookies), enable\n third-party cookies on your `AndroidWebViewController` instance.\n\n3. Register the `WebViewController` instance by calling the\n [`registerWebView()`](//pub.dev/documentation/google_mobile_ads/latest/google_mobile_ads/MobileAds/registerWebView.html)\n method provided by Google Mobile Ads SDK.\n\n import 'package:google_mobile_ads/google_mobile_ads.dart';\n import 'package:webview_flutter/webview_flutter.dart';\n import 'package:webview_flutter_android/webview_flutter_android.dart';\n\n @override\n class WebViewExampleState extends State\u003cWebViewExample\u003e {\n late final WebViewController controller;\n\n @override\n void initState() {\n super.initState();\n\n createWebView();\n }\n\n void createWebView() async {\n controller = WebViewController();\n // 1. Enable JavaScript in the web view.\n await controller.setJavaScriptMode(JavaScriptMode.unrestricted);\n // 2. Enable third-party cookies for Android.\n if (controller.platform is AndroidWebViewController) {\n AndroidWebViewCookieManager cookieManager = AndroidWebViewCookieManager(\n const PlatformWebViewCookieManagerCreationParams());\n await cookieManager.setAcceptThirdPartyCookies(\n controller.platform as AndroidWebViewController, true);\n }\n // 3. Register the web view.\n await MobileAds.instance.registerWebView(controller);\n }\n }\n\nLoad the URL\n\nYou can now load a URL and display your web content through `WebViewController`.\nWe recommend that you load this test URL:\n`https://google.github.io/webview-ads/test/` to test the integration prior to\nusing your own URL. The web page will show an error if JavaScript is not\nenabled. \n\n import 'package:google_mobile_ads/google_mobile_ads.dart';\n import 'package:webview_flutter/webview_flutter.dart';\n import 'package:webview_flutter_android/webview_flutter_android.dart';\n\n @override\n class WebViewExampleState extends State\u003cWebViewExample\u003e {\n late final WebViewController controller;\n\n @override\n void initState() {\n super.initState();\n\n createWebView();\n }\n\n void createWebView() async {\n controller = WebViewController();\n // 1. Enable JavaScript in the web view.\n await controller.setJavaScriptMode(JavaScriptMode.unrestricted);\n\n // 2. Enable third-party cookies for Android.\n if (controller.platform is AndroidWebViewController) {\n AndroidWebViewCookieManager cookieManager = AndroidWebViewCookieManager(\n const PlatformWebViewCookieManagerCreationParams());\n await cookieManager.setAcceptThirdPartyCookies(\n controller.platform as AndroidWebViewController, true);\n }\n\n // 3. Register the web view.\n await MobileAds.instance.registerWebView(controller);\n\n // 4. Load the URL.\n await controller.loadRequest(Uri.parse('https://google.github.io/webview-ads/test/'));\n }\n\nThe test URL shows green status bars for a successful integration if the\nfollowing conditions apply:\n\n- `WebView` connected to the Google Mobile Ads SDK\n- JavaScript enabled\n- Third-party cookies work (not expected on iOS devices)\n- First-party cookies work\n\nView the [source code](//github.com/google/webview-ads/blob/main/test/index.html)\nof our test URL. You can then replace the test URL with your URL. You can also\nuse a proxy tool such as [Charles](//www.charlesproxy.com/) to capture your\napp's HTTPS traffic and inspect the ad requests for a `&scar=` parameter."]]