لعرض الإعلانات وتحقيق الإيرادات، عليك دمج Google Mobile Ads SDK في تطبيقك على iOS. ولإعداد مشروعك، عليك استيراد Google Mobile Ads SDK وإعدادها قبل طلب الإعلانات.
إذا كنت تستخدم Firebase في تطبيقك على iOS، اطّلِع على مقالة بدء استخدام AdMob في مشروعك على iOS.
يغطّي هذا الدليل استيراد Google Mobile Ads SDK وإعدادها، واختيار شكل إعلان.
المتطلبات الأساسية
قبل المتابعة، تأكَّد من توفُّر ما يلي:
- استخدِم Xcode 16.0 أو إصدارًا أحدث.
- استهدِف iOS 13.0 أو إصدارًا أحدث.
استيراد Google Mobile Ads SDK
لاستيراد Google Mobile Ads SDK، أكمل أحد القسمَين التاليَين:
Swift Package Manager
لـ إضافة تبعية حزمة إلى مشروعك، اتّبِع الخطوات التالية:
- افتح Xcode.
- انتقِل إلى ملف > إضافة موارد الاعتمادية للحزمة (File > Add Package Dependencies)....
ثبِّت حزمة Google Mobile Ads SDK Swift Package.
في الرسالة التي تظهر، ابحث عن مستودع 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
التنزيل يدويًا
لتنزيل Google Mobile Ads SDK يدويًا، اتّبِع الخطوات التالية:
- نزِّل Google Mobile Ads SDK.
- استخرِج حزمة
googlemobileadssdkios.zip. في مشروع Xcode، أضِف الأطر التالية:
GoogleMobileAds.xcframeworkUserMessagingPlatform.xcframework
في إعدادات عام لهدفك، انتقِل إلى الأطر والمكتبات والمحتوى المضمّن (Frameworks, Libraries, and Embedded Content).
تأكَّد من أنّك ضبطت
GoogleMobileAds.xcframeworkوUserMessagingPlatform.xcframeworkعلى تضمين وتوقيع (Embed & Sign).في إعدادات إنشاء مشروعك، اتّبِع الخطوات التالية:
- أضِف المسار
/usr/lib/swiftإلى مسارات البحث عن Runpath. - أضِف علامة الرابط
-ObjCإلى علامات الرابط الأخرى (Other Linker Flags).
- أضِف المسار
تعديل ملف Info.plist
في ملف Info.plist الخاص بتطبيقك، أضِف المفتاحَين التاليَين:
مفتاح
GADApplicationIdentifierبقيمة سلسلة تمثّل رقم تعريف تطبيق يستخدم AdMob لمعرفة التفاصيل، اطّلِع على مقالة العثور على رقم تعريف تطبيق أو رقم تعريف وحدة إعلانية ونسخه .مفتاح
SKAdNetworkItemsيتضمّن هذا المفتاح قيمSKAdNetworkIdentifierلـ Googlecstr6suwn9.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: إذا كنت بحاجة إلى الحصول على موافقة المستخدمين في المنطقة الاقتصادية الأوروبية أو المملكة المتحدة أو سويسرا، اضبط العلامات الخاصة بالطلب. إذا كنت بحاجة إلى ضبط
العلامات الخاصة بالطلب، تأكَّد من ضبطها قبل إعداد
Google Mobile Ads SDK. لمعرفة التفاصيل، اطّلِع على مقالة الاستهداف.
اختيار شكل الإعلان
بعد استيراد Google Mobile Ads SDK، يمكنك اختيار شكل إعلان لتنفيذه.
تقدّم AdMob أشكال الإعلانات التالية:
| شكل الإعلان | الوصف | الوثائق |
|---|---|---|
| بانر | يعرض إعلانات مستطيلة في قسم من تصميم تطبيقك. يتم إعادة تحميل هذا الإعلان تلقائيًا على فترات زمنية محدّدة. يشاهد المستخدمون هذه الإعلانات بشكلٍ دوري عند البقاء على الشاشة نفسها. | إعداد "إعلانات بانر" |
| إعلان بيني | يعرض إعلانات بملء الصفحة داخل تطبيقك. يمكنك عرض هذا الإعلان في لحظات التنقّل أو الفواصل التي تحدث بشكلٍ تلقائي في واجهة تطبيقك، على سبيل المثال، بعد اكتمال مستوىً معيّن في أحد تطبيقات الألعاب. | الإعلانات البينية |
| مدمج مع المحتوى | يتيح لك تخصيص مواد العرض، مثل العناوين وعبارات الحث على اتخاذ إجراء، في تطبيقاتك. عند تخصيص الإعلان، يمكنك إنشاء إعلانات تتطابق مع التصميم المرئي لتطبيقك. | تحميل إعلان مدمج مع المحتوى |
| تمت المكافأة | يحصل المستخدمون على مكافآت داخل التطبيق، مثل العملات المعدنية أو النقاط، من خلال تشغيل الألعاب أو المشاركة في استطلاعات أو مشاهدة فيديوهات. يمكنك إعداد مكافآت للوحدات الإعلانية، وتحديد قيم المكافأة والعناصر التي يتلقّاها المستخدمون. | الإعلانات مقابل مكافأة |
| إعلان بيني مقابل مكافأة | يتيح لك تقديم مكافآت، مثل العملات المعدنية أو محاولات إضافية للإعلانات التي تظهر أثناء عمليات النقل بين شاشات التطبيق. | الإعلانات البينية مقابل مكافأة |
| إعلان على شاشة فتح التطبيق | يظهر عندما يفتح المستخدمون تطبيقك أو يعودون إليه. ويغطّي الإعلان شاشة التحميل. | الإعلانات على شاشة فتح التطبيق |