لعرض الإعلانات وتحقيق الإيرادات، يمكنك دمج Google Mobile Ads SDK for React Native في تطبيق React Native. يتناول هذا الدليل كيفية تثبيت Google Mobile Ads SDK for React Native وإعداده واختيار شكل الإعلان.
المتطلبات الأساسية
قبل المتابعة، عليك الحصول على ما يلي:
- الإصدار 0.85.0 من React Native أو إصدار أحدث
- حساب على AdMob ومعرّف تطبيق للحصول على معرّف تطبيق، يُرجى الاطّلاع على مقالة إعداد تطبيق في AdMob.
عناصر Android التالية:
- الإصدار 24 أو الإصدارات الأحدث من مستوى واجهة برمجة التطبيقات لنظام التشغيل Android
- أحدث إصدار من "استوديو Android"
- الإصدار 8.0 أو إصدار أحدث من المكوّن الإضافي لنظام Gradle المتوافق مع Android (AGP)
عناصر iOS التالية:
- الإصدار 13.0 من نظام التشغيل iOS أو إصدار أحدث
- الإصدار 16.0 من Xcode أو إصدار أحدث مع تفعيل أدوات سطر الأوامر
- CocoaPods
تثبيت تطبيق "Google Mobile Ads SDK for React Native"
لتثبيت Google Mobile Ads SDK for React Native، اتّبِع الخطوات التالية:
- نزِّل مجلد
gma-sdk-react-nativeمن Google Drive. استخرِج أرشيف ZIP في دليل منفصل خارج دليل مشروع العمل. قد تتجنّب هذه العملية حدوث تعارضات مع ملفات إعدادات مشروعك.
في جذر مشروعك، أنشئ دليل
local_packages/.في هذا الدليل، انسخ ملف
mobile-ads-0.1.0.tgz:mkdir -p local_packages cp EXTRACT_DIR/gma-sdk-react-native/google-mobile-ads/mobile-ads-0.1.0.tgz local_packages/استبدِل EXTRACT_DIR بالمسار إلى الدليل الذي استخرجت الأرشيف فيه.
ثبِّت الحزمة باستخدام أداة إدارة الحِزم المفضّلة لديك:
npm
npm install ./local_packages/mobile-ads-0.1.0.tgzخيط غزل
yarn add ./local_packages/mobile-ads-0.1.0.tgz
إعداد تطبيقك
لضبط تطبيقك باستخدام تبعيات المنصة، أضِف أرقام تعريف تطبيقاتك على AdMob إلى ملف app.json في جذر مشروعك.
لأغراض الاختبار، استخدِم نماذج معرّفات تطبيقات AdMob الموضّحة في المثال التالي:
{
"name": "APP_NAME",
"displayName": "APP_NAME",
"googleMobileAds": {
"android_app_id": "ca-app-pub-3940256099942544~3347511713",
"ios_app_id": "ca-app-pub-3940256099942544~1458002511"
}
}
أثناء عملية الإنشاء، تضيف أداة Google Mobile Ads SDK for React Native السمة android_app_id إلى ملف AndroidManifest.xml والسمة ios_app_id في ملف Info.plist الذي تم إنشاؤه كمفتاح GADApplicationIdentifier.
للاطّلاع على الخيارات الخاصة بالمنصة أو الضبط اليدوي، اختَر إحدى المنصات التالية:
Android
إذا كنت تدير إعدادات تصميم متعددة أو تدمج React Native
في تطبيق Android حالي، أضِف معرّف تطبيقك على AdMob في
عنصر <application> في ملف AndroidManifest.xml الخاص بمشروعك
بدلاً من ملف app.json:
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools">
<application>
<!-- Sample AdMob app ID: ca-app-pub-3940256099942544~3347511713 -->
<meta-data
android:name="com.google.android.gms.ads.APPLICATION_ID"
android:value="SAMPLE_APP_ID"
tools:replace="android:value"/>
</application>
</manifest>
يحلّ Gradle تلقائيًا تبعيات Android أثناء وقت الإنشاء.
iOS
أكمِل الخطوات التالية:
ثبِّت تبعيات CocoaPods من دليل
ios/الخاص بمشروعك:pod install --repo-updateبدلاً من ذلك، يمكنك تثبيت تبعيات CocoaPods من الدليل الجذري لمشروعك:
npx pod-installتعمل ميزة الربط التلقائي في CocoaPods على ضبط النص البرمجي لمرحلة إنشاء Xcode الذي يضيف السمة
ios_app_idمن ملفapp.jsonفي ملفInfo.plistالذي تم إنشاؤه.في ملف
Info.plistالخاص بتطبيقك، أضِف مفتاحSKAdNetworkItemsفي عنصر<dict>لـ Googlecstr6suwn9.skadnetworkواختَر المشترين التابعين لجهات خارجية.يوضّح المثال التالي ملف
Info.plistكاملاً يحتوي على مصفوفةSKAdNetworkItemsالمطلوبة:مثال كامل
<key>SKAdNetworkItems</key> <array> <dict> <key>SKAdNetworkIdentifier</key> <string>cstr6suwn9.skadnetwork</string> </dict> <dict> <key>SKAdNetworkIdentifier</key> <string>4fzdc2evr5.skadnetwork</string> </dict> <dict> <key>SKAdNetworkIdentifier</key> <string>2fnua5tdw4.skadnetwork</string> </dict> <dict> <key>SKAdNetworkIdentifier</key> <string>ydx93a7ass.skadnetwork</string> </dict> <dict> <key>SKAdNetworkIdentifier</key> <string>p78axxw29g.skadnetwork</string> </dict> <dict> <key>SKAdNetworkIdentifier</key> <string>v72qych5uu.skadnetwork</string> </dict> <dict> <key>SKAdNetworkIdentifier</key> <string>ludvb6z3bs.skadnetwork</string> </dict> <dict> <key>SKAdNetworkIdentifier</key> <string>cp8zw746q7.skadnetwork</string> </dict> <dict> <key>SKAdNetworkIdentifier</key> <string>3sh42y64q3.skadnetwork</string> </dict> <dict> <key>SKAdNetworkIdentifier</key> <string>c6k4g5qg8m.skadnetwork</string> </dict> <dict> <key>SKAdNetworkIdentifier</key> <string>s39g8k73mm.skadnetwork</string> </dict> <dict> <key>SKAdNetworkIdentifier</key> <string>wg4vff78zm.skadnetwork</string> </dict> <dict> <key>SKAdNetworkIdentifier</key> <string>3qy4746246.skadnetwork</string> </dict> <dict> <key>SKAdNetworkIdentifier</key> <string>f38h382jlk.skadnetwork</string> </dict> <dict> <key>SKAdNetworkIdentifier</key> <string>hs6bdukanm.skadnetwork</string> </dict> <dict> <key>SKAdNetworkIdentifier</key> <string>mlmmfzh3r3.skadnetwork</string> </dict> <dict> <key>SKAdNetworkIdentifier</key> <string>v4nxqhlyqp.skadnetwork</string> </dict> <dict> <key>SKAdNetworkIdentifier</key> <string>wzmmz9fp6w.skadnetwork</string> </dict> <dict> <key>SKAdNetworkIdentifier</key> <string>su67r6k2v3.skadnetwork</string> </dict> <dict> <key>SKAdNetworkIdentifier</key> <string>yclnxrl5pm.skadnetwork</string> </dict> <dict> <key>SKAdNetworkIdentifier</key> <string>t38b2kh725.skadnetwork</string> </dict> <dict> <key>SKAdNetworkIdentifier</key> <string>7ug5zh24hu.skadnetwork</string> </dict> <dict> <key>SKAdNetworkIdentifier</key> <string>gta9lk7p23.skadnetwork</string> </dict> <dict> <key>SKAdNetworkIdentifier</key> <string>vutu7akeur.skadnetwork</string> </dict> <dict> <key>SKAdNetworkIdentifier</key> <string>y5ghdn5j9k.skadnetwork</string> </dict> <dict> <key>SKAdNetworkIdentifier</key> <string>v9wttpbfk9.skadnetwork</string> </dict> <dict> <key>SKAdNetworkIdentifier</key> <string>n38lu8286q.skadnetwork</string> </dict> <dict> <key>SKAdNetworkIdentifier</key> <string>47vhws6wlr.skadnetwork</string> </dict> <dict> <key>SKAdNetworkIdentifier</key> <string>kbd757ywx3.skadnetwork</string> </dict> <dict> <key>SKAdNetworkIdentifier</key> <string>9t245vhmpl.skadnetwork</string> </dict> <dict> <key>SKAdNetworkIdentifier</key> <string>a2p9lx4jpn.skadnetwork</string> </dict> <dict> <key>SKAdNetworkIdentifier</key> <string>22mmun2rn5.skadnetwork</string> </dict> <dict> <key>SKAdNetworkIdentifier</key> <string>44jx6755aq.skadnetwork</string> </dict> <dict> <key>SKAdNetworkIdentifier</key> <string>k674qkevps.skadnetwork</string> </dict> <dict> <key>SKAdNetworkIdentifier</key> <string>4468km3ulz.skadnetwork</string> </dict> <dict> <key>SKAdNetworkIdentifier</key> <string>2u9pt9hc89.skadnetwork</string> </dict> <dict> <key>SKAdNetworkIdentifier</key> <string>8s468mfl3y.skadnetwork</string> </dict> <dict> <key>SKAdNetworkIdentifier</key> <string>klf5c3l5u5.skadnetwork</string> </dict> <dict> <key>SKAdNetworkIdentifier</key> <string>ppxm28t8ap.skadnetwork</string> </dict> <dict> <key>SKAdNetworkIdentifier</key> <string>kbmxgpxpgc.skadnetwork</string> </dict> <dict> <key>SKAdNetworkIdentifier</key> <string>uw77j35x4d.skadnetwork</string> </dict> <dict> <key>SKAdNetworkIdentifier</key> <string>578prtvx9j.skadnetwork</string> </dict> <dict> <key>SKAdNetworkIdentifier</key> <string>4dzt52r2t5.skadnetwork</string> </dict> <dict> <key>SKAdNetworkIdentifier</key> <string>tl55sbb4fm.skadnetwork</string> </dict> <dict> <key>SKAdNetworkIdentifier</key> <string>c3frkrj4fj.skadnetwork</string> </dict> <dict> <key>SKAdNetworkIdentifier</key> <string>e5fvkxwrpn.skadnetwork</string> </dict> <dict> <key>SKAdNetworkIdentifier</key> <string>8c4e2ghe7u.skadnetwork</string> </dict> <dict> <key>SKAdNetworkIdentifier</key> <string>3rd42ekr43.skadnetwork</string> </dict> <dict> <key>SKAdNetworkIdentifier</key> <string>97r2b46745.skadnetwork</string> </dict> <dict> <key>SKAdNetworkIdentifier</key> <string>3qcr597p9d.skadnetwork</string> </dict> </array>
إعداد Google Mobile Ads SDK for React Native
قبل تحميل الإعلانات، استدعِ طريقة initialize لإعداد Google Mobile Ads SDK for React Native. استدعِ طريقة initialize مرة واحدة عند تشغيل التطبيق،
مثلاً في مكوّن App.tsx الجذر.
يُهيئ المثال التالي Google Mobile Ads SDK for React Native:
import {InitializationStatus, initialize} from '@google/mobile-ads';
import {useEffect, useState} from 'react';
import {Text, View} from 'react-native';
/**
* Root application component demonstrating Google Mobile Ads SDK initialization.
*/
export function App() {
const [isInitialized, setIsInitialized] = useState<boolean>(false);
useEffect(() => {
// Initialize the Google Mobile Ads SDK.
initialize({}, (status: InitializationStatus) => {
console.log('Mobile Ads SDK initialized successfully:', status);
setIsInitialized(true);
});
}, []);
return (
<View>
<Text>
{isInitialized ? 'Mobile Ads SDK Ready' : 'Initializing SDK...'}
</Text>
</View>
);
}
اختيار شكل الإعلان
بعد إعداد Google Mobile Ads SDK for React Native، يمكنك تنفيذ الإعلانات. توفّر AdMob أشكال الإعلانات التالية:
| التنسيق | الوصف | الوثائق |
|---|---|---|
| إعلان على شاشة فتح التطبيق | يظهر هذا الإعلان عندما يفتح المستخدمون تطبيقك أو يعودون إليه، ويتم عرضه على شاشة التحميل أو شاشة البداية. | إعداد "الإعلانات على شاشة فتح التطبيق" |
| إعلان بيني | هي إعلانات بملء الشاشة تغطي واجهة التطبيق المضيف، وتظهر في نقاط انتقال طبيعية خلال مسار عرض التطبيق، على سبيل المثال بين الأنشطة أو في الوقت الفاصل بين مستويَين في لعبة. | إعداد "الإعلانات البينية" |
| تمت المكافأة | هي إعلانات بملء الشاشة تمنح المستخدمين مكافآت مقابل مشاهدة إعلانات الفيديو أو التفاعل مع إعلانات تشغيل إصدار بسيط من اللعبة. | إعداد "الإعلانات مقابل مكافأة" |
| إعلان بيني مقابل مكافأة | هو شكل إعلان محفِّز يتيح لك تقديم مكافآت مقابل الإعلانات التي تظهر تلقائيًا أثناء عمليات الانتقال الطبيعية في التطبيق. | إعداد "الإعلانات البينية مقابل مكافأة" |