Google Mobile Ads SDK को किसी ऐप्लिकेशन में इंटिग्रेट करना, विज्ञापन दिखाने और कमाई करने के लिए पहला कदम है. SDK टूल को इंटिग्रेट करने के बाद, इस्तेमाल किए जा सकने वाले विज्ञापन फ़ॉर्मैट में से एक या उससे ज़्यादा को लागू किया जा सकता है.
ज़रूरी शर्तें
- Xcode 15.3 या इसके बाद के वर्शन का इस्तेमाल करना
- iOS 12.0 या इसके बाद के वर्शन को टारगेट करना
Mobile Ads SDK इंपोर्ट करना
Google Mobile Ads SDK इंपोर्ट करने के लिए, इनमें से कोई एक तरीका अपनाएं.
CocoaPods (इसका इस्तेमाल करना सबसे सही है)
SDK टूल को iOS प्रोजेक्ट में इंपोर्ट करने का सबसे आसान तरीका, CocoaPods का इस्तेमाल करना है. अपने प्रोजेक्ट की Podfile खोलें और अपने ऐप्लिकेशन के टारगेट में यह लाइन जोड़ें:
pod 'Google-Mobile-Ads-SDK'
इसके बाद, कमांड लाइन से यह चलाएं:
pod install --repo-update
अगर आपने पहले कभी CocoaPods का इस्तेमाल नहीं किया है, तो Podfile बनाने और इस्तेमाल करने के तरीके के बारे में जानने के लिए, उनका आधिकारिक दस्तावेज़ पढ़ें.
Swift Package Manager
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 का लेख देखें.
मैन्युअल तरीके से डाउनलोड करना
Google Mobile Ads SDK को डाउनलोड करें और
Embed & Sign
अपने Xcode प्रोजेक्ट में ये फ़्रेमवर्क जोड़ें:GoogleMobileAds.xcframework
UserMessagingPlatform.xcframework
अपने प्रोजेक्ट की बिल्ड सेटिंग में:
- रनपाथ सर्च पाथ में
/usr/lib/swift
पाथ जोड़ें. -ObjC
लिंकर फ़्लैग को अन्य लिंकर फ़्लैग में जोड़ें.
- रनपाथ सर्च पाथ में
अपनी Info.plist अपडेट करना
दो कुंजियां जोड़ने के लिए, अपने ऐप्लिकेशन की Info.plist
फ़ाइल अपडेट करें:
GADApplicationIdentifier
की, आपकीAd Manager app ID found in the Ad Manager UI and of the formca-app-pub-################~##########
की स्ट्रिंग वैल्यू वाली कुंजी.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>
शुरुआती परफ़ॉर्मेंस को बेहतर बनाने के लिए, अपने येल्ड ग्रुप को उन ऐप्लिकेशन से जोड़ना ज़रूरी है जिनमें उनका इस्तेमाल किया जाता है. iOS को टारगेट करने वाले और किसी खास ऐप्लिकेशन से जुड़े नहीं होने वाले, येल्ड ग्रुप कॉन्फ़िगरेशन आपके खाते के सभी iOS ऐप्लिकेशन पर भेजे जाएंगे. इससे, इनके शुरू होने में लगने वाला समय बढ़ सकता है.
किसी असली ऐप्लिकेशन में, सैंपल ऐप्लिकेशन आईडी को अपने असल Ad Manager ऐप्लिकेशन आईडी से बदलें. अगर आपको सिर्फ़ 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 टूल अब इंपोर्ट और शुरू हो गया है. अब आपके पास विज्ञापन लागू करने का विकल्प है. Ad Manager में कई तरह के विज्ञापन फ़ॉर्मैट उपलब्ध हैं. इसलिए, आपके पास अपने ऐप्लिकेशन के उपयोगकर्ता अनुभव के हिसाब से सबसे सही विकल्प चुनने का विकल्प है.
SwiftUI डेवलपर के लिए, SwiftUI की गाइड पढ़ें.
बैनर
बैनर विज्ञापन यूनिट, रेक्टैंगल के आकार वाले विज्ञापन दिखाती हैं. ये विज्ञापन, ऐप्लिकेशन के लेआउट का कुछ हिस्सा घेरते हैं. ये तय समयावधि के बाद अपने-आप रीफ़्रेश हो सकते हैं. इसका मतलब है कि उपयोगकर्ताओं को समय-समय पर एक नया विज्ञापन दिखेगा, भले ही वे आपके ऐप्लिकेशन में एक ही स्क्रीन का इस्तेमाल करें. साथ ही, ये सबसे आसानी से लागू किए जा सकने वाले विज्ञापन फ़ॉर्मैट भी हैं.
मध्यवर्ती
इंटरस्टीशियल विज्ञापन यूनिट, आपके ऐप्लिकेशन में पूरे पेज को कवर करने वाले विज्ञापन दिखाती हैं. इन्हें अपने ऐप्लिकेशन के इंटरफ़ेस में इस तरह सेट करें कि वे तय समय और ट्रांज़िशन के दौरान दिखें. उदाहरण के लिए, किसी गेमिंग ऐप्लिकेशन में लेवल पूरा होने के बाद.
इंटरस्टीशियल विज्ञापन लागू करना
मूल भाषा वाला
नेटिव विज्ञापनों में, हेडलाइन और कॉल-टू-ऐक्शन जैसी एसेट को अपने ऐप्लिकेशन में दिखाने के तरीके को पसंद के मुताबिक बनाया जा सकता है. विज्ञापन को खुद स्टाइल करके, ऐसे विज्ञापन बनाए जा सकते हैं जो न तो उपयोगकर्ताओं को परेशान करते हैं और न ही उनके अनुभव को खराब करते हैं.
Google Ad Manager, नेटिव विज्ञापनों को लागू करने के दो तरीके उपलब्ध कराता है: नेटिव स्टाइल और कस्टम रेंडरिंग की मदद से स्टैंडर्ड नेटिव विज्ञापन.
नेटिव स्टाइल को नेटिव विज्ञापनों को आसानी से लागू करने के लिए डिज़ाइन किया गया है. अगर आपने पहले कभी इस फ़ॉर्मैट का इस्तेमाल नहीं किया है, तो यह आपके लिए एक बेहतर विकल्प है. कस्टम रेंडरिंग की सुविधा को इस तरह से डिज़ाइन किया गया है कि आपके पास प्रज़ेंटेशन बनाने में ज़्यादा से ज़्यादा विकल्प हों.
नेटिव स्टाइल लागू करना नेटिव विज्ञापन लागू करना (कस्टम रेंडरिंग)
इनाम दिया गया
इनाम वाली विज्ञापन यूनिट की मदद से, उपयोगकर्ता गेम खेल सकते हैं या सर्वे में हिस्सा ले सकते हैं. इसके अलावा, वे क्वाइन, एक्स्ट्रा लाइफ़ या पॉइंट जैसे इन-ऐप्लिकेशन रिवॉर्ड पाने के लिए वीडियो भी देख सकते हैं. आपके पास अलग-अलग विज्ञापन यूनिट के लिए, अलग-अलग इनाम सेट करने का विकल्प होता है. साथ ही, उपयोगकर्ताओं को मिलने वाले इनाम की वैल्यू और आइटम भी तय किए जा सकते हैं.
इनाम वाला इंटरस्टीशियल विज्ञापन
इनाम वाले इंटरस्टीशियल विज्ञापन, नए तरह से तैयार किए गए विज्ञापन फ़ॉर्मैट हैं. इनकी मदद से, ऐप्लिकेशन में स्वाभाविक तौर पर हुए ट्रांज़िशन के दौरान दिखने वाले विज्ञापनों के लिए, सिक्के या खेलने के कुछ और मौके जैसे इनाम दिए जा सकते हैं.
इनाम वाले इंटरस्टीशियल विज्ञापन देखने के लिए, उपयोगकर्ताओं को ऑप्ट-इन करना ज़रूरी नहीं होता. इनाम वाले विज्ञापनों के लिए ऐसा करना ज़रूरी है.
इनाम वाले विज्ञापनों में ऑप्ट-इन अनुरोध करने के बजाय, इनाम वाले इंटरस्टीशियल विज्ञापनों को एक जानकारी देने वाली स्क्रीन की ज़रूरत होती है. इस स्क्रीन पर इनाम का एलान किया जाता है और उपयोगकर्ताओं को ऑप्ट-आउट करने का मौका दिया जाता है.
इनाम वाले इंटरस्टीशियल विज्ञापनों को लागू करना
ऐप्लिकेशन खोलने पर दिखने वाला विज्ञापन
ऐप्लिकेशन खोलने पर दिखने वाला विज्ञापन एक ऐसा विज्ञापन फ़ॉर्मैट है जो तब दिखता है, जब उपयोगकर्ता आपके ऐप्लिकेशन को खोलते हैं या उस पर वापस आते हैं. यह विज्ञापन, लोड हो रही स्क्रीन को ओवरले करता है.