هذا الدليل مُخصَّص للناشرين الذين يرغبون في تحقيق دخل من تطبيق iOS باستخدام AdMob ولا يستخدمون Firebase. إذا كنت تخطط لتضمين Firebase في تطبيقك (أو إذا كنت تفكر في ذلك)، فراجع إصدار AdMob مع Firebase من هذا الدليل.
إن دمج SDK لإعلانات Google على الجوال في أحد التطبيقات هو الخطوة الأولى نحو عرض الإعلانات وكسب الأرباح. بعد دمج حزمة SDK، يمكنك متابعة تنفيذ واحد أو أكثر من أشكال الإعلانات المدعومة.
المتطلبات الأساسية
- استخدام Xcode 13.2.1 أو إصدار أحدث
- الإصدار 10.0 من نظام التشغيل iOS أو إصدار أحدث
- إجراء مُقترَح: إنشاء حساب على AdMob وتسجيل تطبيق.
استيراد حزمة SDK لإعلانات الأجهزة الجوّالة
CocoaPods (الخيار المفضّل)
إنّ أبسط طريقة لاستيراد حزمة تطوير البرامج (SDK) إلى مشروع على iOS هي استخدام CocoaPods. افتح ملف Podfile لمشروعك وأضف هذا السطر إلى هدف تطبيقك:
pod 'Google-Mobile-Ads-SDK'
ثم من سطر الأوامر تشغيل:
pod install --repo-update
إذا كنت مستخدمًا جديدًا لتطبيق CocoaPods، يمكنك الاطّلاع على مستنداته الرسمية للحصول على معلومات حول كيفية إنشاء ملفات Podfiles واستخدامها.
مدير الحزم Swift
تتوافق حزمة SDK لإعلانات Google على الجوّال مع Swift Package Manager (مدير Swift) اعتبارًا من الإصدار 9.0.0. اتبع الخطوات أدناه لاستيراد حزمة Swift.
في Xcode، يجب تثبيت حزمة Swift لإعلانات Google على الأجهزة الجوّالة من خلال الانتقال إلى ملف > إضافة حِزم....
في رسالة المطالبة التي تظهر، ابحث عن مستودع حزمة Swift لإعلانات Google للجوّال GitHub:
https://github.com/googleads/swift-package-manager-google-mobile-ads.git
اختَر إصدار حزمة Swift لإعلانات Google على الأجهزة الجوّالة التي تريد استخدامها. بالنسبة إلى المشاريع الجديدة، نقترح استخدام إصدار يصل إلى الإصدار الرئيسي التالي.
بعد الانتهاء، ستبدأ Xcode في حل تبعيات حزماتك وتنزيلها في الخلفية. لمزيد من التفاصيل حول كيفية إضافة اعتمادات على الحزم، راجع مقالة Apple.
التنزيل اليدوي
نزّل إطار عمل SDK وألغِ ضغطه مباشرةً، واستورد أُطر العمل التالية إلى مشروع Xcode:
GoogleAppMeasurement.xcframework
GoogleAppMeasurementIdentitySupport.xcframework
GoogleMobileAds.xcframework
GoogleUtilities.xcframework
nanopb.xcframework
PromisesObjC.xcframework
UserMessagingPlatform.xcframework
أضف علامة رابط
-ObjC
إلى علامات رابط أخرى في إعدادات إنشاء مشروعك:
تحديث Info.plist
حدِّث ملف Info.plist
لتطبيقك لإضافة مفتاحَين:
مفتاح
GADApplicationIdentifier
مع قيمة سلسلة AdMob app ID found in the AdMob UI.مفتاح
SKAdNetworkItems
مع قيمSKAdNetworkIdentifier
لـ Google (cstr6suwn9.skadnetwork
) ومشترٍ تابع لأطراف ثالثة قدّم هذه القيم إلى Google.
إكمال المقتطف
<key>GADApplicationIdentifier</key> <string>ca-app-pub-3940256099942544~1458002511</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>4pfyvq9l8r.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>5a6flpkh64.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>c6k4g5qg8m.skadnetwork</string> </dict> <dict> <key>SKAdNetworkIdentifier</key> <string>s39g8k73mm.skadnetwork</string> </dict> <dict> <key>SKAdNetworkIdentifier</key> <string>3qy4746246.skadnetwork</string> </dict> <dict> <key>SKAdNetworkIdentifier</key> <string>3sh42y64q3.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>prcb7njmu6.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>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>9rd848q2bz.skadnetwork</string> </dict> <dict> <key>SKAdNetworkIdentifier</key> <string>y5ghdn5j9k.skadnetwork</string> </dict> <dict> <key>SKAdNetworkIdentifier</key> <string>n6fk4nfna4.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>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>av6w8kgt66.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>424m5254lk.skadnetwork</string> </dict> <dict> <key>SKAdNetworkIdentifier</key> <string>ecpz2srf59.skadnetwork</string> </dict> <dict> <key>SKAdNetworkIdentifier</key> <string>uw77j35x4d.skadnetwork</string> </dict> <dict> <key>SKAdNetworkIdentifier</key> <string>mlmmfzh3r3.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>gta9lk7p23.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>zq492l623r.skadnetwork</string> </dict> <dict> <key>SKAdNetworkIdentifier</key> <string>3rd42ekr43.skadnetwork</string> </dict> <dict> <key>SKAdNetworkIdentifier</key> <string>3qcr597p9d.skadnetwork</string> </dict> </array>
إذا لم تكن قد أنشأت حسابًا على AdMob بعد وسجّلت تطبيقًا حتى الآن، فهذا هو الوقت المناسب لإجراء ذلك.
تهيئة حزمة SDK لإعلانات الجوّال
قبل تحميل الإعلانات، عليك استدعاء طريقة startWithCompletionHandler:
على
GADMobileAds.sharedInstance
،
التي تهيئ حزمة SDK وتستدعي معالج إكمال بعد اكتمال التهيئة (أو بعد انتهاء مهلة 30 ثانية). يلزم إجراء ذلك مرة واحدة فقط، ويُفضَّل عند تشغيل التطبيق. يجب الاتصال بـ startWithCompletionHandler:
في أقرب وقت ممكن.
في ما يلي مثال على كيفية استدعاء الطريقة startWithCompletionHandler:
في AppDelegate
:
مثال على AppDelegate.m (مقتطف)
Swift
import GoogleMobileAds @UIApplicationMain class AppDelegate: UIResponder, UIApplicationDelegate { func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey: Any]?) -> Bool { GADMobileAds.sharedInstance().start(completionHandler: nil) return true } }
Objective-C
@import GoogleMobileAds; @implementation AppDelegate - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { [GADMobileAds.sharedInstance startWithCompletionHandler:nil]; return YES; } @end
إذا كنت تستخدم التوسط، فقد تحتاج إلى الانتظار حتى يتم استدعاء معالج الإكمال قبل تحميل الإعلانات، حيث سيضمن ذلك تهيئة جميع محولات التوسط.
اختيار شكل الإعلان
يتم الآن استيراد SDK لإعلانات الجوّال وإعدادها، وأنت الآن مستعد لتنفيذ أحد الإعلانات. AdMob يقدم عددًا من أشكال الإعلانات المختلفة، بحيث يمكنك اختيار الشكل الذي يناسب تجربة مستخدم تطبيقك على أفضل نحو.
"بانر"
إعلانات مستطيلة تظهر أعلى شاشة الجهاز أو أسفلها. تظل إعلانات البانر على الشاشة أثناء تفاعل المستخدمين مع التطبيق، ويمكن تحديثها تلقائيًا بعد فترة زمنية معينة. إذا كنت حديث العهد بإعلانات الجوّال، فهي نقطة بداية رائعة.
إعلان بيني
إعلانات بملء الشاشة تغطي واجهة أحد التطبيقات إلى أن يغلقها المستخدم. ومن الأفضل استخدامها في فترات الإيقاف المؤقت الطبيعية في تدفق تنفيذ التطبيق، مثل بين مستويات اللعبة أو بعد اكتمال المهمة مباشرةً.
مدمجة مع المحتوى
إعلانات قابلة للتخصيص تتطابق مع شكل وأسلوب تطبيقك. وأنت من يقرر كيفية وضعها ومكانها، بحيث يكون التنسيق أكثر اتساقًا مع تصميم تطبيقك.
تم منح المكافأة
إعلانات تكافئ المستخدمين على مشاهدة مقاطع فيديو قصيرة والتفاعل مع إعلانات تشغيل إصدار بسيط من اللعبة والاستطلاعات. وهذا الخيار جيد لتحقيق الدخل من مستخدمي التشغيل المجاني للألعاب.
تنفيذ الإعلانات بمكافأة | تنفيذ الإعلانات بمكافأة (واجهات برمجة التطبيقات الجديدة) |