यह गाइड उन पब्लिशर के लिए है जो Firebase का इस्तेमाल किए बिना, AdMob की मदद से C++ ऐप्लिकेशन से कमाई करना चाहते हैं. अगर आपको अपने ऐप्लिकेशन में Firebase शामिल करना है या इस बारे में सोच रहे हैं, तो इस गाइड का Firebase के साथ AdMob वर्शन देखें.
Google Mobile Ads C++ SDK को किसी ऐप्लिकेशन में इंटिग्रेट करना, विज्ञापन दिखाने और कमाई करने के लिए पहला कदम है. SDK टूल को इंटिग्रेट करने के बाद, इंटरस्टीशियल या इनाम वाले विज्ञापन जैसे विज्ञापन फ़ॉर्मैट को चुना जा सकता है. साथ ही, उसे लागू करने के लिए दिए गए निर्देशों का पालन किया जा सकता है.
Google Mobile Ads C++ SDK, Google Mobile Ads के iOS और Android SDK टूल को रैप करता है. साथ ही, यह सिर्फ़ उन प्लैटफ़ॉर्म पर उपलब्ध है. Google Mobile Ads C++ SDK टूल, एक साथ कई काम करने की सुविधा के साथ काम करने के लिए, Firebase C++ कॉन्स्ट्रक्ट का इस्तेमाल करता है. इसलिए, यह firebase::gma
नेमस्पेस में मौजूद होता है.
अगर आपने पहली बार इस गाइड को पढ़ा है, तो हमारा सुझाव है कि आप Google Mobile Ads C++ टेस्ट ऐप्लिकेशन को डाउनलोड करें और इस गाइड में दिए गए निर्देशों का पालन करें.
ज़रूरी शर्तें
Android
- Android Studio 3.2 या इसके बाद के वर्शन का इस्तेमाल करना
- पक्का करें कि आपके ऐप्लिकेशन की बिल्ड फ़ाइल में इन वैल्यू का इस्तेमाल किया गया हो:
minSdkVersion
16 या उससे ज़्यादा होना चाहिएcompileSdkVersion
28 या उससे ज़्यादा होना चाहिए
iOS
- Xcode 13 या उसके बाद के वर्शन का इस्तेमाल करना
- iOS 10.0 या इसके बाद के वर्शन को टारगेट करना
अपने AdMob खाते में ऐप्लिकेशन सेट अप करना
अपने ऐप्लिकेशन को AdMob ऐप्लिकेशन के तौर पर रजिस्टर करने के लिए, यह तरीका अपनाएं:
AdMob खाते में साइन इन करें या उसके लिए साइन अप करें.
अपने ऐप्लिकेशन को AdMob के साथ रजिस्टर करें. इस चरण में, एक यूनीक AdMob ऐप्लिकेशन आईडी वाला AdMob ऐप्लिकेशन बनता है. इस आईडी की ज़रूरत, इस गाइड में आगे की प्रक्रिया के दौरान पड़ेगी.
Google Mobile Ads C++ SDK इंस्टॉल करना
Google Mobile Ads C++ SDK टूल, firebase::gma
नेमस्पेस में मौजूद होता है. इसलिए, Firebase C++ SDK टूल डाउनलोड करें. इसके बाद, अपनी पसंद की डायरेक्ट्री में इसे अनज़िप करें.
Firebase C++ SDK टूल, किसी खास प्लैटफ़ॉर्म के लिए नहीं है. हालांकि, इसके लिए प्लैटफ़ॉर्म के हिसाब से लाइब्रेरी कॉन्फ़िगरेशन की ज़रूरत होती है.
Android
हमारा सुझाव है कि आप CMake का इस्तेमाल करें. हालांकि, अपने ऐप्लिकेशन में libfirebase_app.a
और libfirebase_gma.a
को लिंक करने के लिए, Firebase C++ SDK टूल का इस्तेमाल शुरू करने के लिए सामान्य गाइड में, ndk-build के लिए निर्देश देखे जा सकते हैं.
अपने प्रोजेक्ट की
gradle.properties
फ़ाइल में, अनज़िप किए गए SDK टूल की जगह की जानकारी दें:systemProp.firebase_cpp_sdk.dir=FULL_PATH_TO_SDK
अपने प्रोजेक्ट की
settings.gradle
फ़ाइल में, यह कॉन्टेंट जोड़ें:def firebase_cpp_sdk_dir = System.getProperty('firebase_cpp_sdk.dir') gradle.ext.firebase_cpp_sdk_dir = "$firebase_cpp_sdk_dir" includeBuild "$firebase_cpp_sdk_dir"
अपने मॉड्यूल (ऐप्लिकेशन-लेवल) की Gradle फ़ाइल में, आम तौर पर
app/build.gradle
में यह कॉन्टेंट जोड़ें. इसमें Google Mobile Ads C++ SDK के लिए लाइब्रेरी डिपेंडेंसी शामिल है.android.defaultConfig.externalNativeBuild.cmake { arguments "-DFIREBASE_CPP_SDK_DIR=$gradle.firebase_cpp_sdk_dir" } # Add the dependency for the Google Mobile Ads C++ SDK apply from: "$gradle.firebase_cpp_sdk_dir/Android/firebase_dependencies.gradle" firebaseCpp.dependencies { gma }
अपने प्रोजेक्ट की
CMakeLists.txt
फ़ाइल में, यह कॉन्टेंट जोड़ें.# Add Firebase libraries to the target using the function from the SDK. add_subdirectory(${FIREBASE_CPP_SDK_DIR} bin/ EXCLUDE_FROM_ALL) # Add the Google Mobile Ads C++ SDK. # The Firebase C++ library `firebase_app` is required, # and it must always be listed last. set(firebase_libs firebase_gma firebase_app ) target_link_libraries(${target_name} "${firebase_libs}")
अपने ऐप्लिकेशन को सिंक करें, ताकि यह पक्का किया जा सके कि सभी डिपेंडेंसी के ज़रूरी वर्शन मौजूद हों.
iOS
इस सेक्शन में दिए गए चरणों में, अपने iOS प्रोजेक्ट में Google Mobile Ads C++ SDK जोड़ने का तरीका बताया गया है.
CocoaPods का वर्शन 1 या उसके बाद का वर्शन पाने के लिए, यह तरीका अपनाएं:
sudo gem install cocoapods --pre
अनज़िप किए गए SDK टूल से, Google Mobile Ads पॉड जोड़ें.
अगर आपके पास पहले से कोई Podfile नहीं है, तो एक बनाएं:
cd APP_DIRECTORY
pod init
अपनी Podfile में, Google Mobile Ads C++ SDK, Google User Messaging Platform SDK, और ज़रूरी Firebase कोर SDK टूल के लिए पॉड जोड़ें. GMA C++ SDK के लिए ये ज़रूरी हैं:
pod 'Firebase/CoreOnly' pod 'Google-Mobile-Ads-SDK' pod 'GoogleUserMessagingPlatform'
पॉड इंस्टॉल करें. इसके बाद, Xcode में
.xcworkspace
फ़ाइल खोलें.pod install
open APP.xcworkspace
प्रोजेक्ट में Firebase C++ SDK टूल से ये फ़्रेमवर्क जोड़ें:
xcframeworks/firebase.xcframework
xcframeworks/firebase_gma.xcframework
आप बिल्कुल तैयार हैं! आपका C++ ऐप्लिकेशन, Firebase की किसी भी अन्य सेवा के बिना Google Mobile Ads C++ SDK टूल का इस्तेमाल करने के लिए कॉन्फ़िगर किया गया है.
अपने ऐप्लिकेशन का AdMob ऐप्लिकेशन आईडी कॉन्फ़िगर करना
Android
Mobile Ads SDK के लिए Android गाइड में बताए गए तरीके से, अपने ऐप्लिकेशन को कॉन्फ़िगर करने का तीसरा चरण पूरा करें. इसके बाद, इस पेज पर वापस आएं.
iOS
Mobile Ads SDK के लिए iOS गाइड में बताए गए तरीके से, अपना Info.plist अपडेट करें. इसके बाद, इस पेज पर वापस आएं.
Google Mobile Ads SDK को शुरू करना
विज्ञापन लोड करने से पहले, अपने ऐप्लिकेशन को Google Mobile Ads C++ SDK टूल को शुरू करने के लिए कहें. इसके लिए, firebase::gma::Initialize()
को कॉल करें. यह SDK टूल को शुरू करता है और शुरू होने के बाद (या 30 सेकंड के टाइम आउट के बाद) firebase::Future
को पूरा करता है. इसे सिर्फ़ एक बार करना होगा. आम तौर पर, ऐप्लिकेशन लॉन्च करते समय ऐसा करना चाहिए.
Initialize()
को कॉल करने पर, Google Mobile Ads C++ SDK या मीडिएशन पार्टनर SDKs के ज़रिए विज्ञापन पहले से लोड किए जा सकते हैं. अगर आपको यूरोपियन इकनॉमिक एरिया (ईईए) में रहने वाले उपयोगकर्ताओं की सहमति लेनी है, तो अनुरोध से जुड़े किसी भी फ़्लैग (जैसे, tag_for_child_directed_treatment
या tag_for_under_age_of_consent
) को सेट करें. इसके अलावा, विज्ञापन लोड करने से पहले कोई कार्रवाई भी की जा सकती है. हालांकि, ऐसा करने के लिए, Google Mobile Ads C++ SDK को शुरू करने से पहले, firebase::gma::SetRequestConfiguration()
को चालू करना न भूलें. ज़्यादा जानकारी के लिए, टारगेटिंग की हमारी गाइड देखें.
Initialize()
को कॉल करने का तरीका यहां बताया गया है:
Android
// Initialize the Google Mobile Ads library
firebase::InitResult result;
Future<AdapterInitializationStatus> future =
firebase::gma::Initialize(jni_env, j_activity, &result);
if (result != kInitResultSuccess) {
// Initialization immediately failed, most likely due to a missing
// dependency. Check the device logs for more information.
return;
}
// Monitor the status of the future.
// See "Use a Future to monitor the completion status of a method call" below.
if (future.status() == firebase::kFutureStatusComplete &&
future.error() == firebase::gma::kAdErrorCodeNone) {
// Initialization completed.
} else {
// Initialization on-going, or an error has occurred.
}
iOS
// Initialize the Google Mobile Ads library.
firebase::InitResult result;
Future<AdapterInitializationStatus> future =
firebase::gma::Initialize(&result);
if (result != kInitResultSuccess) {
// Initialization immediately failed, most likely due to a missing
// dependency. Check the device logs for more information.
return;
}
// Monitor the status of the future.
// See "Use a Future to monitor the completion status of a method call" below.
if (future.status() == firebase::kFutureStatusComplete &&
future.error() == firebase::gma::kAdErrorCodeNone) {
// Initialization completed.
} else {
// Initialization on-going, or an error has occurred.
}
किसी मेथड कॉल के पूरा होने का स्टेटस देखने के लिए, Future
का इस्तेमाल करना
Future
की मदद से, असाइनिश्मेंट के पूरा होने की स्थिति का पता लगाया जा सकता है.
उदाहरण के लिए, जब आपका ऐप्लिकेशन firebase::gma::Initialize()
को कॉल करता है, तो एक नया firebase::Future
बनाया जाता है और उसे दिखाया जाता है. इसके बाद, आपका ऐप्लिकेशन Future
के status()
को पोल करके यह पता लगा सकता है कि शुरू करने की प्रोसेस कब पूरी हुई.
इसके बाद, आपका ऐप्लिकेशन नतीजा पाने के लिए result()
को कॉल कर सकता है
AdapterInitializationStatus
.
Future
दिखाने वाले तरीकों के लिए, "पिछला नतीजा" दिखाने वाला एक तरीका होता है. ऐप्लिकेशन, किसी कार्रवाई के लिए सबसे नया Future
पाने के लिए, इस तरीके का इस्तेमाल कर सकते हैं. उदाहरण के लिए, firebase::gma::Initialize()
के लिए एक तरीका है, जिसे firebase::gma::InitializeLastResult()
कहा जाता है. यह एक Future
दिखाता है, जिसका इस्तेमाल आपका ऐप्लिकेशन firebase::gma::Initialize()
को किए गए आखिरी कॉल की स्थिति देखने के लिए कर सकता है.
अगर Future
का स्टेटस 'पूरा हो गया' है और उसका गड़बड़ी कोड firebase::gma::kAdErrorCodeNone
है, तो इसका मतलब है कि कार्रवाई पूरी हो गई है.
Future
पूरा होने पर कॉलबैक ट्रिगर करने के लिए भी उन्हें रजिस्टर किया जा सकता है. कुछ मामलों में, कॉलबैक किसी दूसरी थ्रेड में चलेगा. इसलिए, पक्का करें कि आपका कोड थ्रेड-सेफ़ हो. यह कोड स्निपेट, कॉलबैक के लिए फ़ंक्शन पॉइंटर का इस्तेमाल करता है:
// Registers the OnCompletion callback. user_data is a pointer that is passed verbatim
// to the callback as a void*. This allows you to pass any custom data to the callback
// handler. In this case, the app has no data, so you must pass nullptr.
firebase::gma::InitializeLastResult().OnCompletion(OnCompletionCallback,
/*user_data=*/nullptr);
// The OnCompletion callback function.
static void OnCompletionCallback(
const firebase::Future<AdapterInitializationStatus>& future, void* user_data) {
// Called when the Future is completed for the last call to firebase::gma::Initialize().
// If the error code is firebase::gma::kAdErrorCodeNone,
// then the SDK has been successfully initialized.
if (future.error() == firebase::gma::kAdErrorCodeNone) {
// success!
} else {
// failure.
}
}
विज्ञापन फ़ॉर्मैट चुनना
Google Mobile Ads C++ SDK टूल अब इंपोर्ट हो गया है और अब आपके पास विज्ञापन लागू करने का विकल्प है. AdMob में कई तरह के विज्ञापन फ़ॉर्मैट उपलब्ध हैं, ताकि आप अपने ऐप्लिकेशन के उपयोगकर्ता अनुभव के हिसाब से सबसे सही विकल्प चुन सकें.
बैनर
आयताकार विज्ञापन, जो डिवाइस की स्क्रीन के ऊपर या नीचे दिखते हैं. जब उपयोगकर्ता आपके ऐप्लिकेशन के साथ इंटरैक्ट करते हैं, तब स्क्रीन पर सबसे ऊपर या सबसे नीचे बैनर विज्ञापन दिखते रहते हैं. ये विज्ञापन कुछ समय बाद अपने-आप रीफ़्रेश हो सकते हैं. अगर आपने मोबाइल पर विज्ञापन दिखाने की सुविधा का इस्तेमाल पहले कभी नहीं किया है, तो इनसे शुरुआत करें.
मध्यवर्ती
फ़ुल-स्क्रीन विज्ञापन, जो किसी ऐप्लिकेशन के इंटरफ़ेस को तब तक कवर करते हैं, जब तक उपयोगकर्ता उन्हें बंद नहीं कर देता. इनका इस्तेमाल, ऐप्लिकेशन के फ़्लो में मौजूद नैचुरल ब्रेक के दौरान किया जा सकता है. जैसे, किसी गेम के लेवल के बीच में या टास्क पूरा होने के बाद.
इंटरस्टीशियल विज्ञापन लागू करना
इनाम दिया गया
इन विज्ञापनों में इनाम पाने के लिए उपयोगकर्ताओं को छोटे-छोटे वीडियो देखने होते हैं. इसके अलावा, उन्हें 'गेम खेलने देने वाले विज्ञापन' से इंटरैक्ट करना होता है या फिर सर्वे भरना होता है. इसका इस्तेमाल, बिना किसी शुल्क के डाउनलोड किए जा सकने वाले ऐप्लिकेशन से कमाई करने के लिए किया जाता है.