البدء

يُعد دمج حزمة 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 مع قيمة سلسلة خاصة بك 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 في حسابك، ما قد يؤدي إلى إطالة الوقت اللازم للتهيئة.

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

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

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

إعلان بيني

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

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

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

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

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

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

تنفيذ الأنماط الأصلية تنفيذ العرض المخصّص

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

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

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