لعرض الإعلانات وتحقيق الإيرادات، عليك دمج Google Mobile Ads SDK حزمة تطوير البرامج (SDK) لإعلانات Google على الأجهزة الجوّالة في تطبيق iOS. ولإعداد مشروعك، عليك استيراد حزمة تطوير البرامج (SDK) لإعلانات Google على الأجهزة الجوّالة وإعدادها 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...).
ثبِّت حزمة Swift الخاصة بـ "Google Mobile Ads SDK".
في الطلب الذي يظهر، ابحث عن مستودع GitHub لحزمة Swift لإعلانات Google على الأجهزة الجوّالة:
https://github.com/googleads/swift-package-manager-google-mobile-ads.gitاختَر إصدار حزمة Swift Package من Google Mobile Ads SDK الذي تريد استخدامه. بالنسبة إلى المشاريع الجديدة، ننصحك باستخدام الخيار حتى رقم الإصدار الرئيسي التالي.
CocoaPods
لاستخدام CocoaPods، اتّبِع الخطوات التالية:
افتح ملف Podfile الخاص بمشروعك وأضِف هذا السطر إلى إعدادات التصميم
targetفي تطبيقك:pod 'Google-Mobile-Ads-SDK'في الوحدة الطرفية، نفِّذ الأمر التالي:
pod install --repo-update
ضبط هدف النشر في Xcode 27
يتطلّب الإصدار 27 من Xcode أن يكون الحد الأدنى لإصدار iOS المستهدَف هو 15.0 لجميع الأهداف. بما أنّ Google Mobile Ads SDK متوافق مع الإصدار 13.0 من نظام التشغيل iOS، يتعذّر إنشاء إصدارات Xcode 27 عند استخدام 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.skadnetworkGoogle" ومشترين خارجيين محدّدين.
مثال مُكتمل
<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:. إذا كنت بحاجة إلى الحصول على موافقة من المستخدمين في المنطقة الاقتصادية الأوروبية أو المملكة المتحدة أو سويسرا، اضبط علامات خاصة بالطلب. إذا كنت بحاجة إلى ضبط علامات خاصة بالطلب، تأكَّد من ضبط العلامات قبل إعداد Google Mobile Ads SDK. لمعرفة التفاصيل، يُرجى الاطّلاع على الاستهداف.
اختيار شكل الإعلان
بعد استيراد Google Mobile Ads SDK، يمكنك اختيار شكل إعلان لتنفيذه.
يقدّم AdMob أشكال الإعلانات التالية:
| شكل الإعلان | الوصف | الوثائق |
|---|---|---|
| بانر | تعرض إعلانات مستطيلة في قسم من تصميم تطبيقك. تتم إعادة تحميل هذا الإعلان تلقائيًا على فترات زمنية محدّدة. وتظهر هذه الإعلانات للمستخدمين بشكل دوري عند بقائهم على الشاشة نفسها. | إعداد "إعلانات البانر" |
| إعلان بيني | يعرض هذا الإعلان بملء الصفحة داخل تطبيقك. ويمكنك عرضه في لحظات التنقّل أو الفواصل التي تحدث بشكلٍ تلقائي في واجهة تطبيقك، مثل بعد إكمال مستوى في لعبة على الأجهزة الجوّالة. | الإعلانات البينية |
| مدمج مع المحتوى | يتيح لك تخصيص مواد العرض، مثل العناوين والعبارات التي تحث المستخدم على اتخاذ إجراء، في تطبيقاتك. عند تخصيص الإعلان، يمكنك إنشاء إعلانات تتطابق مع التصميم المرئي لتطبيقك. | تحميل إعلان مدمج مع المحتوى |
| تمت المكافأة | يحصل المستخدمون على مكافآت داخل التطبيق، مثل العملات المعدنية أو النقاط، من خلال تشغيل الألعاب أو المشاركة في استطلاعات أو مشاهدة فيديوهات. يمكنك ضبط مكافآت للوحدات الإعلانية، وتحديد قيم المكافأة والعناصر التي سيحصل عليها المستخدمون. | الإعلانات مقابل مكافأة |
| إعلان بيني مقابل مكافأة | يتيح لك تقديم مكافآت، مثل العملات المعدنية أو محاولات لعب إضافية، مقابل الإعلانات التي تظهر أثناء الانتقالات في التطبيق. | الإعلانات البينية مقابل مكافأة |
| إعلان على شاشة فتح التطبيق | يظهر هذا الإعلان عندما يفتح المستخدمون تطبيقك أو يعودون إليه، ويتم عرضه على شاشة التحميل. | الإعلانات على شاشة فتح التطبيق |