शुरू करें


यह गाइड उन पब्लिशर के लिए है जिन्हें Firebase का इस्तेमाल किए बिना, AdMob की मदद से C++ ऐप्लिकेशन से कमाई करनी है. अगर आपको अपने ऐप्लिकेशन में Firebase को शामिल करना है या ऐसा करने के बारे में सोच रहे हैं, तो इस गाइड के बजाय AdMob with 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 के ज़रिए विज्ञापन दिखाने वाले ऐप्लिकेशन के तौर पर रजिस्टर करने के लिए, यह तरीका अपनाएं:

  1. AdMob खाते में साइन इन करें या उसके लिए साइन अप करें.

  2. AdMob में अपना ऐप्लिकेशन रजिस्टर करें. इस चरण में, एक यूनीक AdMob ऐप्लिकेशन आईडी के साथ AdMob के ज़रिए विज्ञापन दिखाने वाला ऐप्लिकेशन बनाया जाता है. इस आईडी की ज़रूरत, इस गाइड में बाद में पड़ती है.

Google Mobile Ads C++ SDK इंस्टॉल करना

Google Mobile Ads C++ SDK, firebase::gma नेमस्पेस में मौजूद होता है. इसलिए, Firebase C++ SDK डाउनलोड करें. इसके बाद, इसे अपनी पसंद की डायरेक्ट्री में अनज़िप करें.

Firebase C++ SDK, किसी खास प्लैटफ़ॉर्म के लिए नहीं है. हालांकि, इसके लिए प्लैटफ़ॉर्म के हिसाब से लाइब्रेरी कॉन्फ़िगरेशन की ज़रूरत होती है.

Android

हमारा सुझाव है कि आप CMake का इस्तेमाल करें. हालांकि, ndk-build के लिए निर्देश, Firebase C++ SDK टूल इस्तेमाल करने से जुड़ी सामान्य गाइड में देखे जा सकते हैं. इससे आपको अपने ऐप्लिकेशन में libfirebase_app.a और libfirebase_gma.a को लिंक करने में मदद मिलेगी.

  1. अपने प्रोजेक्ट की gradle.properties फ़ाइल में, अनज़िप किए गए एसडीके की जगह की जानकारी दें:

    systemProp.firebase_cpp_sdk.dir=FULL_PATH_TO_SDK
    
  2. अपने प्रोजेक्ट की 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"
    
  3. अपनी मॉड्यूल (ऐप्लिकेशन-लेवल) 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
    }
    
  4. अपने प्रोजेक्ट की 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}")
    
  5. अपने ऐप्लिकेशन को सिंक करें, ताकि यह पक्का किया जा सके कि सभी डिपेंडेंसी के पास ज़रूरी वर्शन हों.

iOS

इस सेक्शन में बताया गया तरीका, आपके iOS प्रोजेक्ट में Google Mobile Ads C++ SDK टूल जोड़ने का एक उदाहरण है.

  1. CocoaPods का वर्शन 1 या इसके बाद का वर्शन पाने के लिए, यह कमांड चलाएं:

    sudo gem install cocoapods --pre
  2. अनज़िप किए गए SDK टूल से Google Mobile Ads पॉड जोड़ें.

    1. अगर आपके पास पहले से Podfile नहीं है, तो एक Podfile बनाएं:

      cd APP_DIRECTORY
      pod init
    2. अपनी Podfile में, Google Mobile Ads C++ SDK, Google User Messaging Platform SDK, और Firebase Core SDK के बुनियादी वर्शन के लिए पॉड जोड़ें. GMA C++ SDK के लिए, Firebase Core SDK का बुनियादी वर्शन ज़रूरी है:

      pod 'Firebase/CoreOnly'
      pod 'Google-Mobile-Ads-SDK'
      pod 'GoogleUserMessagingPlatform'
      
    3. पॉड इंस्टॉल करें. इसके बाद, Xcode में .xcworkspace फ़ाइल खोलें.

      pod install
      open APP.xcworkspace
    4. 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 टूल शुरू हो जाता है और 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 का स्टेटस 'पूरा हो गया' है और गड़बड़ी का कोड 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 कई तरह के विज्ञापन फ़ॉर्मैट उपलब्ध कराता है. इससे आपको अपने ऐप्लिकेशन के उपयोगकर्ता अनुभव के हिसाब से सबसे सही फ़ॉर्मैट चुनने में मदद मिलती है.

ये रेक्टैंगल विज्ञापन होते हैं, जो डिवाइस की स्क्रीन पर सबसे ऊपर या सबसे नीचे दिखते हैं. जब उपयोगकर्ता आपके ऐप्लिकेशन के साथ इंटरैक्ट करते हैं, तब स्क्रीन पर बैनर विज्ञापन दिखते रहते हैं. साथ ही, ये विज्ञापन कुछ समय बाद अपने-आप रीफ़्रेश हो सकते हैं. अगर आपने मोबाइल विज्ञापन का इस्तेमाल पहले कभी नहीं किया है, तो यह आपके लिए एक बेहतरीन शुरुआत है.

बैनर विज्ञापनों का इस्तेमाल करना

मध्यवर्ती

फ़ुल-स्क्रीन विज्ञापन, जो किसी ऐप्लिकेशन के इंटरफ़ेस को तब तक कवर करते हैं, जब तक उपयोगकर्ता उन्हें बंद नहीं कर देता. इनका इस्तेमाल, ऐप्लिकेशन के इस्तेमाल के दौरान नैचुरल पॉज़ पर किया जाता है. जैसे, गेम के लेवल के बीच में या कोई टास्क पूरा होने के तुरंत बाद.

अचानक दिखने वाले (इंटरस्टीशियल) विज्ञापनों का इस्तेमाल करना

इनाम दिया गया

इन विज्ञापनों में इनाम पाने के लिए उपयोगकर्ताओं को छोटे-छोटे वीडियो देखने होते हैं. इसके अलावा, उन्हें 'गेम खेलने देने वाले विज्ञापन' से इंटरैक्ट करना होता है या फिर सर्वे भरना होता है. इनका इस्तेमाल, मुफ़्त में खेले जाने वाले गेम से कमाई करने के लिए किया जाता है.

इनाम वाले विज्ञापन दिखाना