शुरू करें

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

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

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

अगर आप यह गाइड पहली बार देख रहे हैं, तो हमारा सुझाव है कि आप Google Mobile Ads 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 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 के लिए निर्देश देखे जा सकते हैं.

  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 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

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

  1. चलाकर देखें, CocoaPods का वर्शन 1 या उसके बाद का वर्शन:

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

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

      cd APP_DIRECTORY
      pod init
      
    2. अपनी 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'
      
    3. पॉड इंस्टॉल करें. इसके बाद, .xcworkspace फ़ाइल को Xcode में खोलें.

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

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

अब आप बिलकुल तैयार हैं! आपका C++ ऐप्लिकेशन इस तरह से कॉन्फ़िगर किया गया है कि वह Google Mobile Ads C++ SDK टूल का इस्तेमाल कर सके, वह भी किसी दूसरी Firebase सेवा के बिना.

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

Android

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

iOS

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

Google Mobile Ads SDK शुरू करें

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

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

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

मध्यवर्ती

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

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

इनाम दिया गया

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

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