البدء

هذا الدليل مخصَّص للناشرين الذين يريدون تحقيق الربح من تطبيق iOS باستخدام AdMob ولا يستخدِمون Firebase. إذا كنت تخطط لتضمين Firebase في تطبيقك (أو إذا كنت تفكر في ذلك)، اطّلع على إصدار AdMob مع Firebase من هذا الدليل بدلاً من ذلك.

يُعد دمج حزمة SDK لإعلانات Google على الأجهزة الجوّالة في أحد التطبيقات الخطوة الأولى نحو عرض الإعلانات وتحقيق الأرباح. بعد دمج حزمة تطوير البرامج (SDK)، يمكنك متابعة تنفيذ واحد أو أكثر من أشكال الإعلانات المتوافقة.

المتطلبات الأساسية

  • استخدِم Xcode 14.1 أو إصدارًا أحدث.
  • استهداف الإصدار 11.0 من نظام التشغيل iOS أو الإصدارات الأحدث

استيراد "SDK لإعلانات الأجهزة الجوّالة"

CocoaPods (مفضّل)

إنّ أبسط طريقة لاستيراد حزمة تطوير البرامج (SDK) إلى مشروع iOS هي استخدام CocoaPods. افتح Podfile لمشروعك وأضف هذا السطر إلى هدف تطبيقك:

pod 'Google-Mobile-Ads-SDK'

ثم من سطر الأوامر قم بتشغيل:

pod install --repo-update

إذا كنت مستخدمًا جديدًا لمنتج CocoaPods، يمكنك الاطّلاع على مستنداته الرسمية للحصول على معلومات حول كيفية إنشاء ملفات Podfiles واستخدامها.

مدير حِزم Swift

تتوافق حزمة "SDK لإعلانات Google على الأجهزة الجوّالة" مع Swift Package Manager من الإصدار 9.0.0. اتبع الخطوات أدناه لاستيراد حزمة Swift.

  1. في Xcode، ثبِّت حزمة Swift لإعلانات Google على الأجهزة الجوّالة من خلال الانتقال إلى ملف > إضافة حِزم....

  2. في الإشعار الذي يظهر، ابحث عن مستودع GitHub لحزمة Google Mobile Ads Swift:

    https://github.com/googleads/swift-package-manager-google-mobile-ads.git
    
  3. حدد إصدار حزمة Swift لإعلانات Google على الأجهزة الجوّالة الذي تريد استخدامه. بالنسبة إلى المشاريع الجديدة، نقترح استخدام حتى الإصدار الرئيسي التالي.

بمجرد الانتهاء، ستبدأ Xcode في حل تبعيات الحزمة وتنزيلها في الخلفية. لمزيد من التفاصيل حول كيفية إضافة تبعيات الحزمة، راجع مقالة Apple.

التنزيل اليدوي

  1. نزِّل إطار عمل SDK وفك ضغطه مباشرةً، ثم استورِد أطر العمل التالية إلى مشروع Xcode:

    • GoogleAppMeasurement.xcframework
    • GoogleAppMeasurementIdentitySupport.xcframework
    • GoogleMobileAds.xcframework
    • GoogleUtilities.xcframework
    • nanopb.xcframework
    • PromisesObjC.xcframework
    • UserMessagingPlatform.xcframework
  2. أضِف علامة رابط -ObjC إلى علامات الرابط الأخرى في إعدادات إصدار مشروعك:

تعديل Info.plist

يجب تحديث ملف Info.plist في تطبيقك لإضافة مفتاحَين:

  1. مفتاح GADApplicationIdentifier مع قيمة سلسلة خاصة بك AdMob app ID found in the AdMob UI.

  2. مفتاح 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>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>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>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>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>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>eh6m2bh4zr.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>klf5c3l5u5.skadnetwork</string>
  </dict>
  <dict>
    <key>SKAdNetworkIdentifier</key>
    <string>ppxm28t8ap.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>pwa73g5rt2.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>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:

مثال على AppDed.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 تقدّم هذه الحزمة عددًا من أشكال الإعلانات المختلفة، ما يتيح لك اختيار الشكل الذي يتناسب بأفضل شكل مع تجربة المستخدم في تطبيقك.

الإعلانات المستطيلة التي تظهر في أعلى شاشة الجهاز أو أسفلها. تبقى إعلانات البانر على الشاشة أثناء تفاعل المستخدمين مع التطبيق، ويمكن إعادة تحميلها تلقائيًا بعد فترة زمنية معيّنة. إذا كنت حديث العهد بإعلانات الجوّال، فإنها مكان رائع للبدء.

تنفيذ إعلان بانر

إعلان بيني

إعلانات بملء الشاشة تغطي واجهة التطبيق إلى أن يغلقها المستخدم وهي تُستخدم على أفضل نحو في فترات الإيقاف المؤقت الطبيعية ضمن مسار تنفيذ التطبيق، مثلاً بين مستويات اللعبة أو بعد اكتمال المهمة مباشرة.

تنفيذ إعلان بيني

مدمجة مع المحتوى

إعلانات قابلة للتخصيص تتطابق مع شكل تطبيقك وأسلوبه. ويمكنك تحديد كيفية وضعها ومكانها، بحيث يكون التنسيق أكثر اتساقًا مع تصميم تطبيقك.

التنفيذ Native Ads

تم منح المكافأة

إعلانات تكافئ المستخدمين على مشاهدة فيديوهات قصيرة والتفاعل مع إعلانات تشغيل إصدار بسيط من اللعبة واستطلاعات الرأي وهذه الإعلانات مناسبة لتحقيق الربح من مستخدمي التشغيل المجاني.

تنفيذ الإعلانات التي تضم مكافأة تنفيذ الإعلانات التي تضم مكافأة (واجهات برمجة التطبيقات الجديدة)