यह गाइड उन पब्लिशर के लिए है जो Firebase का इस्तेमाल किए बिना, AdMob की मदद से C++ ऐप्लिकेशन से कमाई करना चाहते हैं. अगर आपको अपने ऐप्लिकेशन में Firebase को शामिल करना है या शामिल करने के बारे में सोचना है, तो इस गाइड का AdMob के साथ Firebase वर्शन देखें.
किसी ऐप्लिकेशन में 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 से लिंक करने के लिए, ndk-build के निर्देश, हमारी
सामान्य Firebase C++ SDK टूल की 'शुरू करने के लिए
गाइड' में देखे जा सकते हैं.
अपने प्रोजेक्ट की
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_DIRECTORYpod 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 installopen APP.xcworkspaceFirebase C++ SDK टूल से, ये फ़्रेमवर्क प्रोजेक्ट में जोड़ें:
xcframeworks/firebase.xcframeworkxcframeworks/firebase_gma.xcframework
आप बिलकुल तैयार हैं! आपका C++ ऐप्लिकेशन, Google Mobile Ads C++ SDK टूल का इस्तेमाल करने के लिए कॉन्फ़िगर किया गया है. इसके लिए, Firebase की किसी अन्य सेवा की ज़रूरत नहीं है.
अपने ऐप्लिकेशन के AdMob ऐप्लिकेशन आईडी को कॉन्फ़िगर करना
Android
iOS
मोबाइल विज्ञापन 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 टूल या मीडिएशन पार्टनर के SDK टूल, विज्ञापन पहले से लोड कर सकते हैं. अगर आपको यूरोपियन इकनॉमिक एरिया (ईईए) के उपयोगकर्ताओं से अनुमति लेनी है, अनुरोध के हिसाब से कोई फ़्लैग सेट करना है (जैसे, 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 का इस्तेमाल कर सकता है.
अगर 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, अलग-अलग तरह के कई विज्ञापन फ़ॉर्मैट ऑफ़र करता है. इसलिए, ऐसा फ़ॉर्मैट चुना जा सकता है जो आपके ऐप्लिकेशन के उपयोगकर्ता अनुभव के हिसाब से सबसे सही हो.
बैनर
आयताकार विज्ञापन, जो डिवाइस की स्क्रीन पर सबसे ऊपर या सबसे नीचे दिखते हैं. बैनर विज्ञापन, स्क्रीन पर तब तक दिखते हैं, जब तक उपयोगकर्ता ऐप्लिकेशन से इंटरैक्ट करते हैं. ये विज्ञापन कुछ समय बाद अपने-आप रीफ़्रेश हो सकते हैं. अगर आपने मोबाइल पर विज्ञापन दिखाने की शुरुआत की है, तो बैनर विज्ञापन सबसे सही विकल्प हैं.
मध्यवर्ती
फ़ुल-स्क्रीन विज्ञापन, जो उपयोगकर्ता के बंद करने तक किसी ऐप्लिकेशन के इंटरफ़ेस को कवर करते हैं. इनका इस्तेमाल, ऐप्लिकेशन के इस्तेमाल के दौरान होने वाले सामान्य पॉज़ के दौरान किया जाता है. जैसे, गेम के अलग-अलग लेवल के बीच में या कोई टास्क पूरा होने के तुरंत बाद.
इंटरस्टीशियल विज्ञापन लागू करना
इनाम दिया गया
इन विज्ञापनों से उपयोगकर्ताओं को इनाम मिलता है. इनाम पाने के लिए उपयोगकर्ताओं को छोटे-छोटे वीडियो देखने होते हैं. इसके अलावा उन्हें 'खेलने देने वाले विज्ञापन' से इंटरैक्ट करना होता है या फिर कोई सर्वे भरना होता है. इनका इस्तेमाल, मुफ़्त में खेले जा सकने वाले ऐप्लिकेशन से कमाई करने के लिए किया जाता है.