शुरू करें

यह गाइड उन पब्लिशर के लिए है जो AdMob का इस्तेमाल करके, C++ ऐप्लिकेशन से कमाई करना चाहते हैं. वे Firebase का इस्तेमाल नहीं करते. अगर आपको अपने ऐप्लिकेशन में Firebase शामिल करना है (या आप उस पर विचार कर रहे हैं), तो इस गाइड का Firebase का वर्शन देखें.

Google मोबाइल विज्ञापन C++ SDK टूल को किसी ऐप्लिकेशन में इंटिग्रेट करना, विज्ञापन दिखाने और कमाई करने की दिशा में पहला कदम है. SDK टूल को इंटिग्रेट करने के बाद, विज्ञापन फ़ॉर्मैट (जैसे कि पेज पर अचानक दिखने वाले विज्ञापन या इनाम वाले विज्ञापन) चुना जा सकता है और इसे लागू करने के लिए बताया गया तरीका अपनाया जा सकता है.

Google मोबाइल विज्ञापन C++ SDK, Google मोबाइल विज्ञापन iOS और Android SDK को रैप करता है और सिर्फ़ उन प्लैटफ़ॉर्म पर उपलब्ध होता है. Google मोबाइल विज्ञापन C++ SDK टूल, Firebase C++ कंस्ट्रक्ट का इस्तेमाल करके एसिंक्रोनस ऑपरेशंस के लिए काम करता है, ताकि यह firebase::gma नेमस्पेस में बना रहे.

अगर आप इस गाइड को पहली बार देख रहे हैं, तो हमारा सुझाव है कि आप Google मोबाइल विज्ञापन C++ टेस्ट ऐप्लिकेशन का इस्तेमाल करके, उसे डाउनलोड करके आगे बढ़ें.

ज़रूरी शर्तें

Android

  • Android Studio 3.2 या इसके बाद वाले वर्शन का इस्तेमाल करें
  • पक्का करें कि आपके ऐप्लिकेशन की बिल्ड फ़ाइल में नीचे दी गई वैल्यू का इस्तेमाल किया गया हो:
    • 16 या उससे ज़्यादा का minSdkVersion
    • 28 या उससे ज़्यादा का compileSdkVersion

iOS

  • Xcode 13 या इसके बाद का वर्शन इस्तेमाल करें
  • iOS 10.0 या इसके बाद वाले वर्शन को टारगेट करें

AdMob खाते में अपना ऐप्लिकेशन सेट अप करना

नीचे दिए गए चरणों को पूरा करके अपने ऐप्लिकेशन को AdMob ऐप्लिकेशन के तौर पर रजिस्टर करें:

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

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

Google मोबाइल विज्ञापन C++ SDK टूल इंस्टॉल करें

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

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

Android

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

      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 मोबाइल विज्ञापन 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. अपने ऐप्लिकेशन को सिंक करके यह पक्का करें कि सभी डिपेंडेंसी में ज़रूरी वर्शन मौजूद हैं.

आप बिल्कुल तैयार हैं! आपका C++ ऐप्लिकेशन बिना किसी दूसरी Firebase सेवाओं के Google मोबाइल विज्ञापन C++ SDK टूल का इस्तेमाल करने के लिए कॉन्फ़िगर किया गया है.

iOS

इस सेक्शन में, Google मोबाइल विज्ञापन C++ SDK को अपने iOS प्रोजेक्ट में जोड़ने का तरीका बताया गया है.

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

    sudo gem install cocoapods --pre
    
  2. अनज़िप किए गए SDK टूल से Google मोबाइल विज्ञापन पॉड जोड़ें.

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

      cd your-app-directory
      pod init
      
    2. Podfile में, Google मोबाइल विज्ञापन C++ SDK टूल में पॉड जोड़ें:

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

      pod install
      open your-app.xcworkspace
      
    4. Firebase C++ SDK टूल से प्रोजेक्ट में ये फ़्रेमवर्क जोड़ें:

      • xcframeworks/firebase.xcframework
      • xcframeworks/firebase_gma.xcframework

आप बिल्कुल तैयार हैं! आपका C++ ऐप्लिकेशन बिना किसी दूसरी Firebase सेवाओं के Google मोबाइल विज्ञापन C++ SDK टूल का इस्तेमाल करने के लिए कॉन्फ़िगर किया गया है.

अपने ऐप्लिकेशन का AdMob ऐप्लिकेशन आईडी कॉन्फ़िगर करें

Android

मोबाइल विज्ञापन SDK टूल Android गाइड में बताए गए तरीके से, अपने ऐप्लिकेशन को कॉन्फ़िगर करें के तीसरे चरण का पालन करें. इसके बाद, इस C++ और शुरुआती पेज पर वापस जाएं.

iOS

मोबाइल विज्ञापन SDK टूल iOS गाइड में बताए गए तरीके से, Info.plist को अपडेट करें का पालन करें. इसके बाद, इस C++ और शुरुआती पेज पर वापस जाएं.

Google मोबाइल विज्ञापन SDK टूल शुरू करना

विज्ञापन लोड करने से पहले, अपने ऐप्लिकेशन को Google मोबाइल विज्ञापन C++ SDK टूल को शुरू करने के लिए कहें. इस कॉल के लिए firebase::gma::Initialize() को कॉल करना होगा, जो SDK टूल को शुरू करता है और शुरू होने के बाद firebase::Future (30 सेकंड के टाइम आउट के बाद) पूरा करता है. ऐसा सिर्फ़ एक बार करना चाहिए. खास तौर पर, ऐप्लिकेशन लॉन्च करते समय.

Initialize() पर कॉल करने से पहले, Google मोबाइल विज्ञापन C++ SDK या मीडिएशन पार्टनर SDK टूल से विज्ञापन पहले से लोड किए जा सकते हैं. अगर आपको यूरोपियन इकनॉमिक एरिया (ईईए) के उपयोगकर्ताओं से सहमति लेनी है, तो अनुरोध वाला कोई भी फ़्लैग (जैसे कि tag_for_child_directed_treatment या tag_for_under_age_of_consent) सेट करें या विज्ञापन लोड करने से पहले कोई कार्रवाई करें. Google मोबाइल विज्ञापन 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() की पोलिंग कर सकता है, ताकि यह तय किया जा सके कि यह प्रोसेस कब पूरी हुई. प्रोसेस पूरी होने के बाद, नतीजे के तौर पर AdapterInitializationStatus पाने के लिए, आपका ऐप्लिकेशन result() को शुरू कर सकता है.

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 मोबाइल विज्ञापन C++ SDK टूल अब आयात हो गया है और आप विज्ञापन लागू करने के लिए तैयार हैं. AdMob कई तरह के विज्ञापन फ़ॉर्मैट की सुविधा देता है, ताकि आप वह विकल्प चुन सकें जो आपके ऐप्लिकेशन के उपयोगकर्ता अनुभव के लिए सबसे सही हो.

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

बैनर विज्ञापन लागू करना

मध्यवर्ती

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

पेज पर अचानक दिखने वाले विज्ञापनों को लागू करना

इनाम दिया गया

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

इनाम वाले विज्ञापन लागू करना