تتيح WebView API for Ads إمكانية تحقيق الربح من الإعلانات داخل التطبيق باستخدام WebViewController
.
إذا كنت تعرض محتوى على الويب يعرض إعلانات باستخدام
رمز AdSense أو
علامة "ناشر Google"
في تطبيقك من خلال WebViewController
، عليك استخدام واجهة برمجة التطبيقات هذه لتفعيل ميزة تحقيق الربح من
الإعلانات. للاطّلاع على مزيد من المعلومات، يُرجى الاطّلاع على
سياسات AdSense
ومدير الإعلانات.
- تحقيق الربح من خلال تقديم طلبات الإعلانات باستخدام "SDK لإعلانات Google على الأجهزة الجوّالة"
يمكنك تحقيق الربح من تطبيقك عن طريق إرسال طلبات الإعلانات إلى "مدير إعلانات Google" مع حزمة SDK لإعلانات Google على الأجهزة الجوّالة من خلال تنفيذ أشكال إعلانات للتطبيقات المتوافقة مع الأجهزة الجوّالة.
- تحقيق الربح باستخدام 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 للإعلانات، عليك التأكّد من إجراء ما يلي:
- استخدِم حزمة SDK الخاصة بإعلانات Google على الأجهزة الجوّالة لمكوّن Flutter الإضافي مع الإصدار 3.0.0 أو الإصدارات الأحدث في تطبيقك.
- أضِف
webview_flutter
كتبعية في ملفpubspec.yaml
. - أضِف
webview_flutter_android
باستخدام الإصدار 3.7.0 أو إصدارًا أحدث في تطبيقك.
تجاوز البحث عن معرّف التطبيق
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"، اتّبِع الخطوات المذكورة أدناه:
يمكنك تفعيل 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://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=
.