यह गाइड उन पब्लिशर के लिए है जो Firebase का इस्तेमाल नहीं कर रहे, AdMob की मदद से iOS ऐप्लिकेशन से कमाई करना चाहते हैं. अगर आपको अपने ऐप्लिकेशन में Firebase शामिल करना है या इस बारे में सोच रहे हैं, तो इस गाइड का Firebase के साथ AdMob वर्सन देखें.
Google Mobile Ads SDK को किसी ऐप्लिकेशन में इंटिग्रेट करना, विज्ञापन दिखाने और कमाई करने के लिए पहला कदम है. SDK टूल को इंटिग्रेट करने के बाद, इस्तेमाल किए जा सकने वाले विज्ञापन फ़ॉर्मैट में से एक या उससे ज़्यादा को लागू किया जा सकता है.
ज़रूरी शर्तें
- Xcode 15.3 या इसके बाद के वर्शन का इस्तेमाल करना
- iOS 12.0 या इसके बाद के वर्शन को टारगेट करना
- हमारा सुझाव है कि आप: AdMob खाता बनाएं और कोई ऐप्लिकेशन रजिस्टर करें.
Mobile Ads SDK इंपोर्ट करना
Google Mobile Ads SDK इंपोर्ट करने के लिए, इनमें से कोई एक तरीका अपनाएं.
CocoaPods (इसका इस्तेमाल करना सबसे बेहतर है)
SDK टूल को iOS प्रोजेक्ट में इंपोर्ट करने का सबसे आसान तरीका, CocoaPods का इस्तेमाल करना है. अपने प्रोजेक्ट की Podfile खोलें और अपने ऐप्लिकेशन के टारगेट में यह लाइन जोड़ें:
pod 'Google-Mobile-Ads-SDK'
इसके बाद, कमांड लाइन से यह चलाएं:
pod install --repo-update
अगर आपने पहले कभी CocoaPods का इस्तेमाल नहीं किया है, तो Podfile बनाने और इस्तेमाल करने के तरीके के बारे में जानने के लिए, उनका आधिकारिक दस्तावेज़ पढ़ें.
Swift पैकेज मैनेजर
Google Mobile Ads SDK टूल के 9.0.0 वर्शन से, Swift Package Manager के साथ काम किया जा सकता है. Swift पैकेज इंपोर्ट करने के लिए, यह तरीका अपनाएं:
Xcode में, Google Mobile Ads Swift पैकेज इंस्टॉल करने के लिए, फ़ाइल > पैकेज जोड़ें... पर जाएं.
दिखने वाले प्रॉम्प्ट में, Google Mobile Ads Swift Package GitHub रिपॉज़िटरी खोजें:
https://github.com/googleads/swift-package-manager-google-mobile-ads.git
Google Mobile Ads Swift Package का वह वर्शन चुनें जिसका इस्तेमाल करना है. नए प्रोजेक्ट के लिए, हमारा सुझाव है कि आप अगला मेजर वर्शन इस्तेमाल करें.
इसके बाद, Xcode आपके पैकेज की डिपेंडेंसी को हल करना शुरू कर देगा और उन्हें बैकग्राउंड में डाउनलोड करेगा. पैकेज की डिपेंडेंसी जोड़ने के तरीके के बारे में ज़्यादा जानने के लिए, Apple का लेख देखें.
मैन्युअल तरीके से डाउनलोड करना
अपने Xcode प्रोजेक्ट में Google Mobile Ads SDK और
Embed & Sign
नीचे दिए गए फ़्रेमवर्क को डाउनलोड करें:GoogleMobileAds.xcframework
UserMessagingPlatform.xcframework
अपने प्रोजेक्ट की बिल्ड सेटिंग में:
- रनपाथ सर्च पाथ में
/usr/lib/swift
पाथ जोड़ें. -ObjC
लिंकर फ़्लैग को अन्य लिंकर फ़्लैग में जोड़ें.
- रनपाथ सर्च पाथ में
अपनी Info.plist अपडेट करें
दो कुंजियां जोड़ने के लिए, अपने ऐप्लिकेशन की Info.plist
फ़ाइल को अपडेट करें:
आपकेAdMob app ID found in the AdMob UIकी स्ट्रिंग वैल्यू के साथ एक
GADApplicationIdentifier
कुंजी.Google (
cstr6suwn9.skadnetwork
) और चुनिंदा तीसरे पक्ष के खरीदारों के लिएSKAdNetworkIdentifier
वैल्यू वालीSKAdNetworkItems
कुंजी, जिन्होंने 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>
अगर आपने अब तक AdMob खाता नहीं बनाया है और कोई ऐप्लिकेशन रजिस्टर नहीं किया है, तो ऐसा करने का यह सबसे सही समय है.
किसी असली ऐप्लिकेशन में, सैंपल ऐप्लिकेशन आईडी को अपने असल AdMob ऐप्लिकेशन आईडी से बदलें. अगर आपको सिर्फ़ Hello World ऐप्लिकेशन में SDK टूल के साथ एक्सपेरिमेंट करना है, तो सैंपल आईडी का इस्तेमाल किया जा सकता है.
Mobile Ads SDK को शुरू करना
विज्ञापन लोड करने से पहले, GADMobileAds.sharedInstance
पर startWithCompletionHandler:
तरीका लागू करें. इससे SDK टूल शुरू हो जाता है और शुरू होने के बाद या 30 सेकंड के टाइम आउट के बाद, यह एक पूरा होने वाले हैंडलर को वापस कॉल करता है. इसे सिर्फ़ एक बार करना होगा. आम तौर पर, ऐप्लिकेशन लॉन्च करते समय ऐसा करना चाहिए. आपको जल्द से जल्द startWithCompletionHandler:
पर कॉल करना चाहिए.
यहां AppDelegate
में startWithCompletionHandler:
तरीके को कॉल करने का उदाहरण दिया गया है:
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
विज्ञापन फ़ॉर्मैट चुनना
Mobile Ads SDK टूल अब इंपोर्ट और शुरू हो गया है. अब आपके पास विज्ञापन लागू करने का विकल्प है. AdMob में कई तरह के विज्ञापन फ़ॉर्मैट उपलब्ध हैं. इसलिए, आपके पास अपने ऐप्लिकेशन के उपयोगकर्ता अनुभव के हिसाब से सबसे सही विकल्प चुनने का विकल्प है.
SwiftUI डेवलपर के लिए, हमारी SwiftUI गाइड फ़ॉलो करें.
बैनर
बैनर विज्ञापन यूनिट, आयताकार विज्ञापन दिखाती हैं. ये विज्ञापन, ऐप्लिकेशन के लेआउट का कुछ हिस्सा घेरते हैं. ये तय समयावधि के बाद अपने-आप रीफ़्रेश हो सकते हैं. इसका मतलब है कि उपयोगकर्ताओं को समय-समय पर एक नया विज्ञापन दिखेगा, भले ही वे आपके ऐप्लिकेशन में एक ही स्क्रीन का इस्तेमाल करें. साथ ही, ये सबसे आसानी से लागू किए जा सकने वाले विज्ञापन फ़ॉर्मैट भी हैं.
मध्यवर्ती
इंटरस्टीशियल विज्ञापन यूनिट आपके ऐप्लिकेशन में पूरे पेज पर दिखने वाले विज्ञापन दिखाती हैं. उन्हें अपने ऐप्लिकेशन के इंटरफ़ेस में सामान्य ब्रेक और ट्रांज़िशन पर रखें. जैसे, किसी गेमिंग ऐप्लिकेशन में लेवल पूरा करने के बाद.
इंटरस्टीशियल विज्ञापन लागू करना
मूल भाषा वाला
नेटिव विज्ञापन ऐसे विज्ञापन होते हैं जिनमें आप अपने ऐप्लिकेशन में हेडलाइन और कॉल टू एक्शन जैसे एसेट को दिखाने के तरीके को पसंद के मुताबिक बना सकते हैं. विज्ञापन को खुद स्टाइल करके, ऐसे विज्ञापन बनाए जा सकते हैं जो न तो उपयोगकर्ताओं को परेशान करते हैं और न ही उनके अनुभव को खराब करते हैं.
इनाम दिया गया
इनाम वाली विज्ञापन यूनिट की मदद से, उपयोगकर्ता गेम खेल सकते हैं, सर्वे में हिस्सा ले सकते हैं या इन-ऐप्लिकेशन इनाम जैसे कि सिक्के, खेलने के ज़्यादा मौके या पॉइंट पाने के लिए वीडियो देख सकते हैं. आपके पास अलग-अलग विज्ञापन यूनिट के लिए, अलग-अलग इनाम सेट करने का विकल्प होता है. साथ ही, उपयोगकर्ताओं को मिलने वाले इनाम की वैल्यू और आइटम भी तय किए जा सकते हैं.
इनाम वाला इंटरस्टीशियल विज्ञापन
इनाम वाले इंटरस्टीशियल विज्ञापन, नए तरह से तैयार किए गए विज्ञापन फ़ॉर्मैट हैं. इनकी मदद से, ऐप्लिकेशन में स्वाभाविक तौर पर हुए ट्रांज़िशन के दौरान दिखने वाले विज्ञापनों के लिए, सिक्के या खेलने के कुछ और मौके जैसे इनाम दिए जा सकते हैं.
इनाम वाले विज्ञापनों के उलट, उपयोगकर्ताओं को इनाम वाले इंटरस्टीशियल विज्ञापनों को देखने के लिए ऑप्ट-इन करना ज़रूरी नहीं होता.
इनाम वाले विज्ञापनों में ऑप्ट-इन करने की सूचना के बजाय, इनाम वाले इंटरस्टीशियल विज्ञापनों को एक इंट्रो स्क्रीन की ज़रूरत होती है, जिसमें इनाम के बारे में बताया जाता है. साथ ही, अगर उपयोगकर्ता ऐसा करना चाहते हैं, तो उन्हें ऑप्ट-आउट करने का मौका मिलता है.
इनाम वाले इंटरस्टीशियल विज्ञापन लागू करना
ऐप्लिकेशन खोलने पर दिखने वाला विज्ञापन
ऐप्लिकेशन खोलने पर दिखने वाला विज्ञापन एक ऐसा विज्ञापन फ़ॉर्मैट है जो तब दिखता है, जब उपयोगकर्ता आपके ऐप्लिकेशन को खोलते हैं या उस पर वापस आते हैं. यह विज्ञापन, लोड हो रही स्क्रीन को ओवरले करता है.