لعرض الإعلانات وتحقيق الأرباح، عليك دمج Google Mobile Ads SDK في تطبيق iOS. ولتجهيز مشروعك، عليك استيراد Google Mobile Ads SDK وتهيئة إعداداته قبل طلب الإعلانات.
إذا كنت تستخدم Firebase في تطبيقك على iOS، اطّلِع على بدء استخدام AdMob في مشروعك على iOS.
يتناول هذا الدليل عملية استيراد Google Mobile Ads SDK وتهيئته واختيار شكل إعلان.
المتطلبات الأساسية
قبل المتابعة، تأكَّد من توفّر ما يلي:
- استخدِم الإصدار 16.0 من Xcode أو إصدارًا أحدث.
- استهداف الإصدار 13.0 من نظام التشغيل iOS أو الإصدارات الأحدث
استيراد Google Mobile Ads SDK
لاستيراد Google Mobile Ads SDK، أكمِل أحد الأقسام التالية:
Swift Package Manager (يُنصح بها)
لإضافة تبعية حزمة إلى مشروعك، اتّبِع الخطوات التالية:
- افتح Xcode.
- انتقِل إلى ملف > إضافة موارد الاعتمادية للحزمة... (File > Add Package Dependencies...).
ثبِّت حزمة Google Mobile Ads SDK Swift.
في الطلب الذي يظهر، ابحث عن مستودع Google Mobile Ads Swift Package GitHub:
https://github.com/googleads/swift-package-manager-google-mobile-ads.gitاختَر إصدار Google Mobile Ads SDK Swift Package الذي تريد استخدامه. بالنسبة إلى المشاريع الجديدة، ننصحك باستخدام حتى الإصدار الرئيسي التالي.
CocoaPods
لاستخدام CocoaPods، اتّبِع الخطوات التالية:
افتح Podfile الخاص بمشروعك وأضِف هذا السطر إلى
targetإصدار تطبيقك:pod 'Google-Mobile-Ads-SDK'في الوحدة الطرفية، شغِّل الأمر التالي:
pod install --repo-update
ضبط هدف النشر في Xcode 27
يتطلّب Xcode 27 حدًا أدنى من هدف النشر وهو iOS 15.0 لجميع الأهداف. بما أنّ Google Mobile Ads SDK يتوافق مع الإصدار 13.0 من نظام التشغيل iOS، يتعذّر إنشاء الإصدار 27 من Xcode عند استخدام CocoaPods.
لحلّ هذه المشكلة، يُرجى اتّباع الخطوات التالية:
افتح ملف
Podfileالخاص بمشروعك وأضِف خطافpost_installيضبط الإصدار المستهدف على15.0. إذا كان لديك حلقةpost_install، أضِف الحلقة الداخلية إلى الحلقة الحالية.يضبط المثال التالي المفتاح
IPHONEOS_DEPLOYMENT_TARGETعلى15.0لجميع استهدافات الحزمة:post_install do |installer| installer.pods_project.targets.each do |target| target.build_configurations.each do |config| config.build_settings['IPHONEOS_DEPLOYMENT_TARGET'] = '15.0' end end endلإعادة تثبيت الحاويات، شغِّل الأمر التالي:
pod install --repo-update
التنزيل يدويًا
لتنزيل Google Mobile Ads SDK يدويًا، اتّبِع الخطوات التالية:
- تنزيل Google Mobile Ads SDK
- استخرِج حزمة
googlemobileadssdkios.zip. في مشروع Xcode، أضِف أُطر العمل التالية:
GoogleMobileAds.xcframeworkUserMessagingPlatform.xcframework
في إعدادات الإعدادات العامة الخاصة بالهدف، انتقِل إلى الأطر والمكتبات والمحتوى المضمّن.
تأكَّد من ضبط
GoogleMobileAds.xcframeworkوUserMessagingPlatform.xcframeworkعلى التضمين والتوقيع.في إعدادات الإصدار الخاصة بمشروعك، اتّبِع الخطوات التالية:
- أضِف مسار
/usr/lib/swiftإلى مسارات البحث في Runpath. - أضِف علامة الربط
-ObjCإلى علامات الربط الأخرى.
- أضِف مسار
تعديل ملف Info.plist
في ملف Info.plist الخاص بتطبيقك، أضِف المفتاحَين التاليَين:
مفتاح
GADApplicationIdentifierيحتوي على قيمة سلسلة تمثّل معرّف تطبيقك على AdMob للاطّلاع على التفاصيل، يُرجى قراءة مقالة البحث عن رقم تعريف تطبيق أو رقم تعريف وحدة إعلانية ونسخه .مفتاح
SKAdNetworkItemsيتضمّن هذا المفتاح قيمSKAdNetworkIdentifierلـcstr6suwn9.skadnetworkوالمشترين المحدّدين من الجهات الخارجية.
مثال كامل
<key>GADApplicationIdentifier</key>
<!-- Sample AdMob app ID: ca-app-pub-3940256099942544~1458002511 -->
<string>SAMPLE_APP_ID</string>
<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>استبدِل SAMPLE_APP_ID بمعرّف تطبيقك على AdMob. أثناء الاختبار، استخدِم معرّف نموذج التطبيق الموضّح في المثال السابق.
إذا لم يسبق لك إنشاء حساب على AdMob وتسجيل تطبيق، ننصحك بإجراء ذلك الآن.
إعداد Google Mobile Ads SDK
قبل تحميل الإعلانات، عليك إعداد Google Mobile Ads SDK من خلال استدعاء الطريقة start() من السمة GADMobileAds.sharedInstance. تستدعي هذه الطريقة معالج إكمال بعد انتهاء Google Mobile Ads SDK ومحوّلات التوسّط من المعالجة، أو بعد 30 ثانية.
يوضّح المثال التالي كيفية تهيئة Google Mobile Ads SDK:
Swift
// Initialize the Google Mobile Ads SDK.
MobileAds.shared.start()
SwiftUI
// Initialize the Google Mobile Ads SDK.
MobileAds.shared.start()
Objective-C
// Initialize the Google Mobile Ads SDK.
[GADMobileAds.sharedInstance startWithCompletionHandler:nil];
عند الإعداد، Google Mobile Ads SDK قد يتم تحميل الإعلانات مسبقًا أو إعداد حِزم
SDK التابعة لجهات خارجية عند استدعاء الطريقة startWithCompletionHandler:. إذا كنت بحاجة إلى الحصول على موافقة المستخدمين في المنطقة الاقتصادية الأوروبية (EEA) أو المملكة المتحدة أو سويسرا، عليك ضبط العلامات الخاصة بالطلبات. إذا كنت بحاجة إلى ضبط علامات خاصة بالطلبات، تأكَّد من ضبط العلامات قبل تهيئة Google Mobile Ads SDK. لمزيد من التفاصيل، يُرجى الاطّلاع على الاستهداف.
اختيار شكل الإعلان
بعد استيراد Google Mobile Ads SDK، يمكنك اختيار شكل إعلان لتنفيذه.
توفّر AdMob أشكال الإعلانات التالية:
| شكل الإعلان | الوصف | الوثائق |
|---|---|---|
| بانر | تعرِض إعلانات مستطيلة في قسم من تصميم تطبيقك. يتم إعادة تحميل هذا الإعلان تلقائيًا على فترات زمنية محدّدة. يظهر هذا النوع من الإعلانات للمستخدمين بشكل دوري عند البقاء على الشاشة نفسها. | إعداد "إعلانات البانر" |
| إعلان بيني | تعرض إعلانات بملء الصفحة داخل تطبيقك. ويمكنك عرض هذا الإعلان في لحظات التنقّل أو الفواصل التي تحدث بشكلٍ تلقائي في واجهة تطبيقك، مثلاً بعد إكمال مستوى معيّن في أحد تطبيقات الألعاب. | الإعلانات البينية |
| مدمج مع المحتوى | تتيح لك تخصيص مواد العرض، مثل العناوين وعبارات الحث على اتّخاذ إجراء، في تطبيقاتك. عند تخصيص الإعلان، يمكنك إنشاء إعلانات تتطابق مع التصميم المرئي لتطبيقك. | تحميل إعلان مدمج مع المحتوى |
| تمت المكافأة | يحصل المستخدمون على مكافآت داخل التطبيق، مثل العملات المعدنية أو النقاط، من خلال تشغيل الألعاب أو المشاركة في الاستطلاعات أو مشاهدة الفيديوهات. يمكنك ضبط مكافآت للوحدات الإعلانية، وتحديد قيم المكافأة والعناصر التي يحصل عليها المستخدمون. | الإعلانات مقابل مكافأة |
| إعلان بيني مقابل مكافأة | تتيح لك تقديم مكافآت، مثل العملات المعدنية أو محاولات إضافية للإعلانات التي تظهر أثناء عمليات النقل بين التطبيقات. | الإعلانات البينية مقابل مكافأة |
| إعلان على شاشة فتح التطبيق | يظهر هذا النوع من الإعلانات عندما يفتح المستخدمون تطبيقك أو يعودون إليه، ويظهر الإعلان على شاشة التحميل. | الإعلانات على شاشة فتح التطبيق |