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

AdMob के iOS और Android SDK टूल का इस्तेमाल करें.


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

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

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

शुरू करने से पहले

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

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

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

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

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

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

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

    2. अपने ऐप्लिकेशन के हर प्लैटफ़ॉर्म वर्शन को AdMob के साथ रजिस्टर करें.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

अपने AdMob ऐप्लिकेशन आईडी को अपने ऐप्लिकेशन की AndroidManifest.xml फ़ाइल में जोड़ें. इसके लिए, नीचे दिखाए गए तरीके से <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 फ़ाइल में, GADApplicationIdentifier कुंजी जोड़ें. इसकी स्ट्रिंग वैल्यू, आपका AdMob ऐप्लिकेशन आईडी होना चाहिए.

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

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

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

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

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

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

      cd YOUR_APP_DIRECTORY
      pod init
    2. अपने Podfile में, Google Mobile Ads 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++ ऐप्लिकेशन, Google Mobile Ads C++ SDK का इस्तेमाल करने के लिए कॉन्फ़िगर किया गया है.

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

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

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

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

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

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

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

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

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

मध्यवर्ती

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

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

इंटरस्टीशियल विज्ञापन लागू करना

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

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

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

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

दिलचस्पी के अन्य विषय

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

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

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

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

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

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

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

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

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

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

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