البدء

تنظيم صفحاتك في مجموعات يمكنك حفظ المحتوى وتصنيفه حسب إعداداتك المفضّلة.

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

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

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

  • استخدام Xcode 13.2.1 أو إصدار أحدث
  • الإصدار 10.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 (مدير Swift) اعتبارًا من الإصدار 9.0.0. اتبع الخطوات أدناه لاستيراد حزمة Swift.

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

  2. في رسالة المطالبة التي تظهر، ابحث عن مستودع حزمة Swift لإعلانات Google للجوّال GitHub:

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

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

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

إعلان بيني

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

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

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

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

التنفيذ Native Ads

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

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

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