يُعد دمج حزمة SDK لإعلانات Google على الأجهزة الجوّالة في أحد التطبيقات الخطوة الأولى نحو وعرض الإعلانات وتحقيق الربح منها بعد دمج حزمة SDK، يمكنك المضي قدمًا في تنفيذ واحد أو أكثر من أشكال الإعلانات المتوافقة.
المتطلبات الأساسية
- استخدام Xcode 15.3 أو إصدار أحدث
- استهداف إصدار iOS 12.0 أو الإصدارات الأحدث
استيراد حزمة SDK لإعلانات الأجهزة الجوّالة
استخدِم إحدى الطرق التالية لاستيراد حزمة "SDK لإعلانات Google على الأجهزة الجوّالة".
CocoaPods (الخيار المفضّل)
وأبسط طريقة لاستيراد حزمة SDK إلى مشروع iOS هي استخدام CocoaPods. مفتوح ملف Podfile الخاص بمشروعك وإضافة هذا السطر إلى هدف تطبيقك:
pod 'Google-Mobile-Ads-SDK'
ثم من تشغيل سطر الأوامر:
pod install --repo-update
إذا كنت مستخدمًا جديدًا لـ CocoaPods، يُرجى الاطّلاع على مستندات رسمية للحصول على معلومات حول كيفية إنشاء ملفات Podfiles واستخدامها.
مدير حزم Swift
حزمة "SDK لإعلانات Google على الأجهزة الجوّالة" تدعم حزمة Swift Package الحساب الإداري بدءًا من الإصدار 9.0.0. متابعة هذه الخطوات لاستيراد حزمة Swift:
في Xcode، ثبِّت حزمة Swift لإعلانات Google على الأجهزة الجوّالة بالانتقال إلى ملف > إضافة حِزم....
في المطالبة التي تظهر، ابحث عن حزمة Swift لإعلانات Google على الأجهزة الجوّالة مستودع جيت هب:
https://github.com/googleads/swift-package-manager-google-mobile-ads.git
حدِّد إصدار حزمة Swift لإعلانات Google على الأجهزة الجوّالة الذي تريد استخدامه. بالنسبة إلى المشاريع الجديدة، ننصح باستخدام الإصدار الرئيسي التالي.
بمجرد الانتهاء، ستبدأ Xcode في حل تبعيات الحزمة وتنزيلها في الخلفية. لمزيد من المعلومات حول كيفية إضافة حزمة التابعة لك، يمكنك الاطلاع على مقالة Apple.
التنزيل اليدوي
تنزيل حزمة "SDK لإعلانات Google على الأجهزة الجوّالة" و
Embed & Sign
إطار العمل التالي في مشروع Xcode:GoogleMobileAds.xcframework
UserMessagingPlatform.xcframework
في إعدادات إنشاء مشروعك:
- أضِف المسار
/usr/lib/swift
إلى مسارات البحث في Runpath. - إضافة علامة الربط
-ObjC
إلى علامات الرابط الأخرى.
- أضِف المسار
تعديل Info.plist
عدِّل ملف Info.plist
لتطبيقك لإضافة مفتاحَين:
مفتاح
GADApplicationIdentifier
مع قيمة سلسلة Ad Manager app ID found in the Ad Manager UI and of the formca-app-pub-################~##########
مفتاح
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>2fnua5tdw4.skadnetwork</string> </dict> <dict> <key>SKAdNetworkIdentifier</key> <string>ydx93a7ass.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>hs6bdukanm.skadnetwork</string> </dict> <dict> <key>SKAdNetworkIdentifier</key> <string>mlmmfzh3r3.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>su67r6k2v3.skadnetwork</string> </dict> <dict> <key>SKAdNetworkIdentifier</key> <string>yclnxrl5pm.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>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>ppxm28t8ap.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>578prtvx9j.skadnetwork</string> </dict> <dict> <key>SKAdNetworkIdentifier</key> <string>4dzt52r2t5.skadnetwork</string> </dict> <dict> <key>SKAdNetworkIdentifier</key> <string>Tl55sbb4fm.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>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" طريقتَين لتنفيذ الإعلانات المدمجة مع المحتوى: الأنماط المدمجة مع المحتوى والإعلانات المدمجة مع المحتوى العادية من خلال العرض المخصّص.
تم تصميم أنماط الإعلانات المدمجة مع المحتوى لتبسيط تنفيذ الإعلانات المدمجة مع المحتوى وهو خيار رائع إذا كنت مبتدئًا في هذا التنسيق. تم تعديل العرض المخصَّص مصمم لزيادة الحرية التي لديك في إنشاء عروضك التقديمية.
تنفيذ الأنماط المدمجة مع المحتوى تنفيذ الإعلانات المدمجة مع المحتوى (العرض المخصّص)
تم منح المكافأة
تتيح الوحدات الإعلانية التي تضم مكافأة للمستخدمين إمكانية تشغيل الألعاب أو المشاركة في الاستطلاعات أو مشاهدة الفيديوهات اربَح مكافآت داخل التطبيق، مثل العملات المعدنية أو المحاولات الإضافية، أو النقاط. يمكنك تحديد مكافآت مختلفة لوحدات إعلانية مختلفة، وتحديد قيم المكافأة العناصر التي تلقاها المستخدم.
تنفيذ الإعلانات التي تضم مكافأة
إعلان بيني يضم مكافأة
الإعلان البيني بمكافأة هو نوع جديد من أشكال الإعلانات المحفَّزة التي تتيح لك تقديم مكافآت، مثل العملات أو المحاولات الإضافية، مقابل الإعلانات التي تظهر تلقائيًا أثناء انتقالات التطبيق الطبيعية.
على عكس الإعلانات التي تضم مكافأة، لا يُطلب من المستخدمين الموافقة لعرض الإعلانات التي تضم مكافأة. بيني.
وبدلاً من رسالة طلب الموافقة داخل الإعلانات بمكافأة، تتطلّب الإعلانات البينية بمكافأة شاشة تمهيدية تُعلن عن المكافأة وتمنح المستخدمين فرصة للإيقاف إذا أرادوا إجراء ذلك.
تنفيذ الإعلانات البينية التي تضم مكافأة
إعلان على شاشة فتح التطبيق
"الإعلانات على شاشة فتح التطبيق" هي شكل إعلان يظهر عندما يفتح المستخدمون تطبيقك أو يعودون إليه. يظهر الإعلان على شاشة التحميل.