البدء

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

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

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

استيراد "حزمة تطوير البرامج (SDK) لعرض إعلانات الأجهزة الجوّالة"

استخدِم إحدى الطريقتَين التاليتَين لاستيراد "SDK لإعلانات Google على الأجهزة الجوّالة".

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 على الأجهزة الجوّالة":

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

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

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

  1. نزِّل حزمة SDK لإعلانات Google على الأجهزة الجوّالة وEmbed & Sign أُطر العمل التالية في مشروع Xcode:

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

تعديل Info.plist

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

  1. مفتاح GADApplicationIdentifier مع قيمة سلسلة للسمةAd Manager app ID found in the Ad Manager UI and of the form ca-app-pub-################~##########

  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>

وللحصول على أفضل أداء للإعداد، من المهم ربط مجموعات الشبكات الإعلانية المدِرّة للأرباح بالتطبيقات المحدّدة التي يتم استخدامها فيها. إنّ إعدادات مجموعة النتائج التي تستهدف نظام التشغيل iOS وليست مرتبطة بأي تطبيق محدد سيتم إرسالها إلى جميع تطبيقات iOS في حسابك، ما قد يؤدي إلى إطالة الوقت اللازم للتهيئة.

في تطبيق حقيقي، استبدِل نموذج رقم تعريف التطبيق برقم تعريف التطبيقAd Manager الفعلي. يمكنك استخدام نموذج رقم التعريف إذا كنت تختبر فقط حزمة SDK في تطبيق Hello World.

إعداد "حزمة تطوير البرامج (SDK) لإعلانات الأجهزة الجوّالة"

قبل تحميل الإعلانات، استدعِ طريقة startWithCompletionHandler: في GADMobileAds.sharedInstance، والتي تعمل على إعداد حزمة تطوير البرامج (SDK) وتستدعي معالج الإكمال عند اكتمال الإعداد (أو بعد مهلة 30 ثانية). يجب القيام بذلك مرة واحدة فقط، من الناحية المثالية عند إطلاق التطبيق. يجب عليك الاتصال بـ startWithCompletionHandler: في أقرب وقت ممكن.

إليك مثال على كيفية طلب الإجراء startWithCompletionHandler: في AppDelegate:

مثال على AppDelegate (مقتطف)

Swift

import GoogleMobileAds

@UIApplicationMain
class AppDelegate: UIResponder, UIApplicationDelegate {

  func application(_ application: UIApplication,
      didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool {

    GADMobileAds.sharedInstance().start(completionHandler: nil)

    return true
  }
}

SwiftUI

import GoogleMobileAds

class AppDelegate: UIResponder, UIApplicationDelegate {

  func application(_ application: UIApplication,
      didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool {

    GADMobileAds.sharedInstance().start(completionHandler: nil)

    return true
  }
}

@main
struct YourApp: App {
  // To handle app delegate callbacks in an app that uses the SwiftUI lifecycle,
  // you must create an application delegate and attach it to your `App` struct
  // using `UIApplicationDelegateAdaptor`.
  @UIApplicationDelegateAdaptor(AppDelegate.self) var appDelegate

  var body: some Scene {
    WindowGroup {
      NavigationView {
        ContentView()
      }
    }
  }
}

Objective-C

@import GoogleMobileAds;

@implementation AppDelegate

- (BOOL)application:(UIApplication *)application
    didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {

  [GADMobileAds.sharedInstance startWithCompletionHandler:nil];
  return YES;
}

@end

اختيار شكل الإعلان

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

بالنسبة إلى مطوّري SwiftUI، يُرجى اتّباع دليل SwiftUI.

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

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

إعلان بيني

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

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

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

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

يوفّر "مدير إعلانات Google" طريقتين لتنفيذ الإعلانات المدمجة مع المحتوى: أنماط الإعلانات المدمجة مع المحتوى والإعلانات العادية المدمجة مع المحتوى من خلال العرض المخصّص.

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

تنفيذ أنماط الإعلانات المدمجة مع المحتوى تنفيذ الإعلانات المدمجة مع المحتوى (عرض مخصّص)

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

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

تنفيذ الإعلانات التي تضم مكافأة

الإعلان البيني بمكافأة

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

وعلى عكس الإعلانات التي تضم مكافأة، لا يُطلب من المستخدمين الموافقة على عرض هذا الإعلان البيني الذي يضم مكافأة.

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

تنفيذ الإعلانات البينية التي تضم مكافأة

إعلان على شاشة فتح التطبيق

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

تنفيذ الإعلانات على شاشة فتح التطبيق