تتيح 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 للإعلانات، تأكَّد من تنفيذ ما يلي:
- استخدِم مكوّن Google Mobile Ads SDK الإضافي لتطبيق 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
لتحسين تحقيق الربح من الإعلانات داخل التطبيقات التي تستخدم رمز 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=
.