अपने C++ प्रोजेक्ट में AdMob का इस्तेमाल करना

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

अगर आपने अभी तक AdMob, Firebase, और Google Analytics को एक साथ इस्तेमाल करने के सभी फ़ायदों के बारे में नहीं बताया है, तो जानें.

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

वेब कंटेनर इंस्टॉल करने से पहले

  • अगर आपके पास पहले से Firebase प्रोजेक्ट और Firebase ऐप्लिकेशन नहीं है, तो Firebase के बारे में बताने वाली गाइड देखें: Firebase को अपने C++ प्रोजेक्ट में जोड़ें.

  • पक्का करें कि आपके Firebase प्रोजेक्ट में Google Analytics चालू हो:

    • अगर कोई नया Firebase प्रोजेक्ट बनाया जा रहा है, तो प्रोजेक्ट बनाने के वर्कफ़्लो के दौरान Google Analytics चालू करें.

    • अगर आपके पास कोई ऐसा मौजूदा Firebase प्रोजेक्ट है जिसमें Google Analytics चालू नहीं है, तो > प्रोजेक्ट सेटिंग के इंटिग्रेशन टैब से Google Analytics को चालू किया जा सकता है.

पहला चरण: अपने ऐप्लिकेशन को AdMob खाते में सेट अप करना

  1. अपने ऐप्लिकेशन के हर प्लैटफ़ॉर्म वैरिएंट को AdMob ऐप्लिकेशन के तौर पर रजिस्टर करें.

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

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

    आपसे अपने ऐप्लिकेशन में Mobile Ads SDK जोड़ने के लिए कहा जाएगा. इस गाइड में बाद में, इस टास्क के बारे में ज़्यादा जानकारी वाले निर्देश देखें.

  2. अपने हर AdMob ऐप्लिकेशन को उससे जुड़े Firebase ऐप्लिकेशन से लिंक करें.

    यह चरण ज़रूरी नहीं है, फिर भी इसका सुझाव दिया जाता है. उपयोगकर्ता मेट्रिक को चालू करने और अपने AdMob ऐप्लिकेशन को Firebase से लिंक करने के फ़ायदों के बारे में ज़्यादा जानें.

    प्लैटफ़ॉर्म के हर वैरिएंट के लिए, AdMob खाते के ऐप्लिकेशन डैशबोर्ड में जाकर, ये दो चरण पूरे करें:

    1. उपयोगकर्ता मेट्रिक चालू करें, ताकि AdMob आपके AdMob खाते में चुने गए आंकड़ों का डेटा प्रोसेस कर सके और उसे दिखा सके. अपने AdMob ऐप्लिकेशन को Firebase से लिंक करने के लिए, यह एक ज़रूरी सेटिंग है.

    2. अपने AdMob ऐप्लिकेशन को अपने मौजूदा Firebase प्रोजेक्ट और उससे जुड़े Firebase ऐप्लिकेशन से लिंक करें.

      पक्का करें कि आपने वही पैकेज नाम (Android) या बंडल आईडी (iOS) डाला है, जिसे आपने Firebase ऐप्लिकेशन के लिए डाला है. अपने > प्रोजेक्ट सेटिंग के आपके ऐप्लिकेशन कार्ड में, Firebase ऐप्लिकेशन के पैकेज का नाम या बंडल आईडी देखें.

दूसरा चरण: अपने ऐप्लिकेशन में AdMob का ऐप्लिकेशन आईडी जोड़ना

Android

अपने ऐप्लिकेशन की AndroidManifest.xml फ़ाइल में AdMob का ऐप्लिकेशन आईडी जोड़ने के लिए, नीचे बताए गए तरीके से <meta-data> टैग जोड़ें.

<manifest>
    <application>
        <!-- Sample AdMob App ID: ca-app-pub-3940256099942544~3347511713 -->
        <meta-data
            android:name="com.google.android.gms.ads.APPLICATION_ID"
            android:value="ADMOB_APP_ID"/>
    </application>
</manifest>

iOS

अपने ऐप्लिकेशन की Info.plist फ़ाइल में, अपने AdMob ऐप्लिकेशन आईडी की स्ट्रिंग वैल्यू वाली GADApplicationIdentifier कुंजी जोड़ें.

प्रोग्राम बनाकर यह बदलाव किया जा सकता है:

<!-- Sample AdMob App ID: ca-app-pub-3940256099942544~1458002511 -->
<key>GADApplicationIdentifier</key>
<string>ADMOB_APP_ID</string>

इसके अलावा, प्रॉपर्टी सूची एडिटर में जाकर इसमें बदलाव किया जा सकता है:

प्रॉपर्टी की सूची का एडिटर

तीसरा चरण: Google Mobile Ads SDK जोड़ें

Google Mobile Ads 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 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. अपने ऐप्लिकेशन को सिंक करें, ताकि यह पक्का किया जा सके कि सभी डिपेंडेंसी के पास ज़रूरी वर्शन हों.

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

iOS

इस सेक्शन में, Google Mobile Ads 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 Mobile Ads C++ SDK टूल के लिए पॉड जोड़ें:

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

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

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

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

चौथा चरण: Google Mobile Ads SDK शुरू करें

विज्ञापन लोड करने से पहले, firebase::gma::Initialize() को कॉल करके Mobile Ads SDK शुरू करें.

यह कॉल, शुरू होने के बाद या 30 सेकंड के टाइम आउट के बाद, firebase::Future दिखाता है. इस तरीके को जल्द से जल्द सिर्फ़ एक बार कॉल करें. आम तौर पर, ऐप्लिकेशन लॉन्च करते समय ऐसा करना बेहतर होता है.

यहां 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.
  }
}

पांचवां चरण: अपने ऐप्लिकेशन में लागू करने के लिए कोई विज्ञापन फ़ॉर्मैट चुनना

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

आयताकार विज्ञापन, जो डिवाइस की स्क्रीन के सबसे ऊपर या सबसे नीचे दिखते हैं

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

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

मध्यवर्ती

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

अचानक दिखने वाले (इंटरस्टीशियल) विज्ञापनों का सबसे अच्छा इस्तेमाल, ऐप्लिकेशन के चलने के दौरान कुछ समय के लिए होता है. जैसे, गेम के लेवल के बीच में या टास्क पूरा होने के बाद.

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

इनाम पाने वाले

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

इनाम वाले विज्ञापन (या "इनाम वाले") विज्ञापनों की मदद से, मुफ़्त में गेम खेलने वाले उपयोगकर्ताओं से कमाई की जा सकती है.

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

पसंद के अन्य विषय

उपयोगकर्ता मेट्रिक और आंकड़ों का डेटा देखें

इस प्रोसेस के शुरू होने के बाद, Mobile Ads SDK आपके ऐप्लिकेशन से, Analytics इवेंट और उपयोगकर्ता प्रॉपर्टी को अपने-आप लॉग करना शुरू कर देता है. इस डेटा को ऐप्लिकेशन में कोई अतिरिक्त कोड जोड़े बिना या कोई विज्ञापन लागू किए बिना देखा जा सकता है. आंकड़ों का यह डेटा यहां देखा जा सकता है:

ध्यान दें कि एआरपीयू और एआरपीपीयू मेट्रिक को बेहतर तरीके से दिखाने के लिए, हो सकता है कि आप इन मेट्रिक के लिए, रेवेन्यू का हिसाब लगाने में ecommerce_purchase नाम के Analytics कस्टम इवेंट का डेटा शामिल करना चाहें (इसका तरीका जानें).

(ज़रूरी नहीं) Google Analytics और Firebase की ज़्यादा सुविधाओं का इस्तेमाल करना

ऐप्लिकेशन से कमाई करने और उपयोगकर्ता के जुड़ाव को बेहतर बनाने के लिए, ज़्यादा अवसरों और सुविधाओं का फ़ायदा लें:

  • Google Analytics के लिए Firebase SDK टूल जोड़ना और उसका इस्तेमाल करना

    ज़्यादा जानने के लिए, AdMob ऐप्लिकेशन के साथ Google Analytics और Firebase का इस्तेमाल करने की गाइड पर जाएं.

  • अपने ऐप्लिकेशन में Firebase के दूसरे प्रॉडक्ट का इस्तेमाल करना

    Google Analytics के लिए Firebase SDK टूल जोड़ने के बाद, अपने ऐप्लिकेशन में विज्ञापन ऑप्टिमाइज़ करने के लिए अन्य Firebase प्रॉडक्ट का इस्तेमाल करें.

    • रिमोट कॉन्फ़िगरेशन की मदद से, आप हर दिन के अनलिमिटेड सक्रिय उपयोगकर्ताओं के लिए, बिना किसी शुल्क के ऐप्लिकेशन का अपडेट पब्लिश किए बिना, अपने ऐप्लिकेशन के काम करने के तरीके और दिखने के तरीके में बदलाव कर सकते हैं.

    • A/B टेस्टिंग की मदद से, अपने ऐप्लिकेशन के यूज़र इंटरफ़ेस (यूआई), सुविधाओं या यूज़र ऐक्टिविटी कैंपेन में हुए बदलावों की जांच की जा सकती है. इससे, यह पता लगाया जा सकता है कि बदलावों को बड़े पैमाने पर रोल आउट करने से पहले, आपकी मुख्य मेट्रिक (जैसे, रेवेन्यू और उपयोगकर्ताओं के बने रहने का डेटा) पर कोई असर पड़ा है या नहीं.