Google is committed to advancing racial equity for Black communities. See how.
इस पेज का अनुवाद Cloud Translation API से किया गया है.
Switch to English

शुरू हो जाओ

आप अपने C ++ एप्लिकेशन में विज्ञापन प्रदर्शित करने के लिए AdMob का उपयोग कर सकते हैं। यह मार्गदर्शिका आपको दिखाती है कि फायरबेस के साथ कैसे एकीकृत करें और Google मोबाइल विज्ञापन एसडीके के साथ बातचीत करें।

यदि यह आपका पहली बार इस गाइड के माध्यम से जा रहा है, तो यह अनुशंसा की जाती है कि आप AdMob परीक्षण ऐप का उपयोग करके डाउनलोड करें और उसका पालन करें।

फायरबेस के साथ एकीकृत करें

  1. अपने C ++ ऐप में AdMob और Firebase जोड़ने के लिए Android अनुभाग के लिए iOS या सेटअप के लिए सेटअप में चरणों को पूरा करें।

  2. अपने ऐप के C ++ कोड में निम्नलिखित हेडर शामिल करें:

     #include "firebase/admob.h"
    #include "firebase/admob/types.h"
    #include "firebase/app.h"
    #include "firebase/future.h"
     
  3. अपने AdMob ऐप आईडी के साथ AdMob लाइब्रेरी को इनिशियलाइज़ करने के लिए अपने ऐप में C ++ कोड के साथ निम्नलिखित जोड़ें (यह बैनर एक बैनर व्यू या इंटरस्टिशियल ऐड बनाने से पहले निष्पादित किया जाना चाहिए):

     #if defined(__ANDROID__)
    // Create the Firebase app.
    firebase::App* app =
        firebase::App::Create(firebase::AppOptions(),
                              your_jni_env,
                              your_android_activity);
    
    // Your Android AdMob app ID.
    const char* kAdMobAppID = "ca-app-pub-XXXXXXXXXXXXXXXX~NNNNNNNNNN";
    #else
    // Create the Firebase app.
    firebase::App* app =
        firebase::App::Create(firebase::AppOptions());
    
    // Your iOS AdMob app ID.
    const char* kAdMobAppID = "ca-app-pub-XXXXXXXXXXXXXXXX~NNNNNNNNNN";
    #endif  // __ANDROID__
    
    // Initialize the AdMob library with your AdMob app ID.
    firebase::admob::Initialize(*app, kAdMobAppID);
     

Google मोबाइल विज्ञापन SDK के साथ सहभागिता करें

विज्ञापन इकाई आईडी सेट करें

C ++ कोड लिखते समय जो iOS और Android दोनों पर समर्थित है, आपको कोड को परिभाषित करने के लिए प्रीप्रोसेसर निर्देशों का उपयोग करने की आवश्यकता हो सकती है जिसे केवल एक विशिष्ट ओएस पर संकलित किया जाना चाहिए। IOS और Android दोनों पर बैनर और इंटरस्टीशियल विज्ञापन प्रदर्शित करने के लिए, यह अनुशंसा की जाती है कि आप प्रत्येक OS और प्रत्येक अद्वितीय विज्ञापन प्लेसमेंट के लिए एक नई विज्ञापन इकाई ID बनाएँ। निम्नलिखित विज्ञापन इकाई आईडी iOS और Android के लिए बनाए गए थे और हमेशा परीक्षण विज्ञापनों की सेवा के लिए कॉन्फ़िगर किए गए हैं:

 #if defined(__ANDROID__)
// Android ad unit IDs
const char* kBannerAdUnit = "ca-app-pub-3940256099942544/6300978111";
const char* kInterstitialAdUnit = "ca-app-pub-3940256099942544/1033173712";
#else
// iOS ad unit IDs
const char* kBannerAdUnit = "ca-app-pub-3940256099942544/2934735716";
const char* kInterstitialAdUnit = "ca-app-pub-3940256099942544/4411468910";
#endif
 

एक बैनर दृश्य सेट करें

निम्नलिखित शीर्ष लेख को अपने ऐप के C ++ कोड में जोड़ें:

 #include "firebase/admob/banner_view.h"
 

एक BannerView वस्तु को घोषित और BannerView :

 firebase::admob::BannerView* banner_view;
banner_view = new firebase::admob::BannerView();
 

एक AdSize बनाएँ और बैनर दृश्य आरंभ करें:

 firebase::admob::AdSize ad_size;
ad_size.ad_size_type = firebase::admob::kAdSizeStandard;
ad_size.width = 320;
ad_size.height = 50;
// my_ad_parent is a reference to an iOS UIView or an Android Activity.
// This is the parent UIView or Activity of the banner view.
banner_view->Initialize(static_cast<firebase::admob::AdParent>(my_ad_parent), kBannerAdUnit, ad_size);
 

एक अंतरालीय विज्ञापन सेट करें

निम्नलिखित शीर्ष लेख को अपने ऐप के C ++ कोड में जोड़ें:

 #include "firebase/admob/interstitial_ad.h"
 

किसी InterstitialAd ऑब्जेक्ट को डिक्लेयर और तत्काल करना:

 firebase::admob::InterstitialAd* interstitial_ad;
interstitial_ad = new firebase::admob::InterstitialAd();
 

अंतरालीय विज्ञापन को आरम्भ करें:

 // my_ad_parent is a reference to an iOS UIView or an Android Activity.
// This is the parent UIView or Activity of the interstitial ad.
interstitial_ad->Initialize(static_cast<firebase::admob::AdParent>(my_ad_parent), kInterstitialAdUnit);
 

एक AdMob विज्ञापन अनुरोध बनाएँ

AdMob पुस्तकालय आपको एक विज्ञापन अनुरोध पर कस्टम लक्ष्यीकरण जानकारी प्रदान करने की अनुमति देता है। यह एक AdRequest संरचना के सदस्यों को सेट करके किया जाता है। फिर संरचना को BannerView::LoadAd() या InterstitialAd::LoadAd() विधि से पास किया जाता है।

विज्ञापन अनुरोधों को लक्षित और अनुकूलित करने की सामान्य जानकारी के लिए, हमारे iOS और Android लक्ष्यीकरण मार्गदर्शिकाएँ देखें।

यहां बताया गया है AdRequest एक के द्वारा प्रयोग किया struct BannerView और InterstitialAd एक विज्ञापन अनुरोध बनाने के लिए:

 struct AdRequest {
  const char **test_device_ids;
  unsigned int test_device_id_count;
  const char **keywords;
  unsigned int keyword_count;
  const KeyValuePair *extras;
  unsigned int extras_count;
  int birthday_day;
  int birthday_month;
  int birthday_year;
  Gender gender;
  ChildDirectedTreatmentState tagged_for_child_directed_treatment;
};
 

AdRequest संरचना को घोषित और आरंभ करें:

 // Initialize all the AdRequest struct member values to zero.
firebase::admob::AdRequest my_ad_request = {};
 

निम्नलिखित कोड विज्ञापन अनुरोध में लक्ष्यीकरण जानकारी जोड़ने के लिए AdRequest संरचना के सदस्य मान सेट करता है:

 // If the app is aware of the user's gender, it can be added to the
// targeting information. Otherwise, "unknown" should be used.
my_ad_request.gender = firebase::admob::kGenderUnknown;

// The user's birthday, if known. Note that months are indexed from one.
my_ad_request.birthday_day = 10;
my_ad_request.birthday_month = 11;
my_ad_request.birthday_year = 1976;

// Additional keywords to be used in targeting.
static const char* kKeywords[] = {"AdMob", "C++", "Fun"};
my_ad_request.keyword_count = sizeof(kKeywords) / sizeof(kKeywords[0]);
my_ad_request.keywords = kKeywords;

// "Extra" key value pairs can be added to the request as well.
static const firebase::admob::KeyValuePair kRequestExtras[] = {
    {"the_name_of_an_extra", "the_value_for_that_extra"}};
my_ad_request.extras_count = sizeof(kRequestExtras) / sizeof(kRequestExtras[0]);
my_ad_request.extras = kRequestExtras;

// Register the device IDs associated with any devices that will be used to
// test your app. Below are sample test device IDs used for making the ad request.
static const char* kTestDeviceIDs[] =
    {"2077ef9a63d2b398840261c8221a0c9b",
     "098fe087d987c9a878965454a65654d7"};
my_ad_request.test_device_id_count =
    sizeof(kTestDeviceIDs) / sizeof(kTestDeviceIDs[0]);
my_ad_request.test_device_ids = kTestDeviceIDs;
 

AdRequest लिए AdRequest संरचना पास करें BannerView::LoadAd() और Interstitial::LoadAd() विधियाँ:

 banner_view->LoadAd(my_ad_request);
interstitial_ad->LoadAd(my_ad_request);

Note: A single `AdRequest` struct can be reused for multiple calls.
 

विधि कॉल की पूर्ण स्थिति की निगरानी के लिए फ्यूचर्स का उपयोग करें

फ्यूचर्स आपको अपने पिछले BannerView या InterstitialAd विधि कॉल की पूर्ण स्थिति निर्धारित करने का एक तरीका प्रदान करते हैं। जब InterstitialAd::LoadAd() विधि से कॉल किया जाता है, उदाहरण के लिए, एक नया Future बनाया और वापस आ जाता है। विज्ञापन लोड होने पर निर्धारित करने के लिए ऐप्स भविष्य की स्थिति को प्रदूषित कर सकते हैं। एक बार जब भविष्य पूरा हो जाता है, तो अंतरालीय विज्ञापन आपके ऐप में अगले प्राकृतिक रोक बिंदु पर प्रदर्शित होने के लिए तैयार है।

BannerView और InterstitialAd कक्षाओं में अधिकांश विधियों में एक समान "अंतिम परिणाम" विधि होती है, जो ऐप्स किसी दिए गए कार्य के लिए सबसे हाल के भविष्य को पुनः प्राप्त करने के लिए उपयोग कर सकते हैं। InterstitialAd::LoadAd() विधि, उदाहरण के लिए, InterstitialAd::LoadAdLastResult() नामक एक ही विधि है InterstitialAd::LoadAdLastResult() । यह एक फ्यूचर देता है जिसका उपयोग InterstitialAd::LoadAd() विधि के लिए अंतिम कॉल की स्थिति की जांच करने के लिए किया जा सकता है।

इसी तरह, एप्लिकेशन BannerView::InitializeLastResult() और त्रुटि कोड, यदि कोई हो) BannerView::Initialize() के अंतिम कॉल का BannerView::Initialize() करने के लिए BannerView::Initialize() विधि का उपयोग कर सकते हैं। यदि इसकी स्थिति पूरी हो गई है और इसका त्रुटि कोड firebase::admob::kAdMobErrorNone , तो आप बैनर दृश्य BannerView::Show() बैनर BannerView::Show() विधि को कॉल करके दृश्य को तैयार करने के लिए तैयार हैं।

 if (banner_view->InitializeLastResult().status() ==
    firebase::kFutureStatusComplete &&
    banner_view->InitializeLastResult().error() ==
    firebase::admob::kAdMobErrorNone) {
  banner_view->Show();
}
 

एक बार BannerView::Show() विधि के लिए भविष्य की स्थिति पूरी हो गई है, तो आप बैनर दृश्य में एक विज्ञापन लोड करने के लिए तैयार हैं:

 if (banner_view->ShowLastResult().status() ==
    firebase::kFutureStatusComplete &&
    banner_view->ShowLastResult().error() ==
    firebase::admob::kAdMobErrorNone) {
  banner_view->LoadAd(my_ad_request);
}
 

इंटरस्टीशियल विज्ञापनों के लिए, इंटरस्टिशियल ऐड InterstitialAd::InitializeLastResult() पद्धति के लिए अंतिम कॉल की स्थिति का प्रतिनिधित्व करने वाले फ्यूचर (और एरर कोड, यदि कोई हो) प्राप्त करने के लिए InterstitialAd::Initialize() विधि का उपयोग करें। यदि इसकी स्थिति पूरी हो गई है और इसका त्रुटि कोड firebase::admob::kAdMobErrorNone , तो आप अंतरालीय विज्ञापन लोड करने के लिए तैयार हैं:

 if (interstitial_ad->InitializeLastResult().status() ==
    firebase::kFutureStatusComplete &&
    interstitial_ad->InitializeLastResult().error() ==
    firebase::admob::kAdMobErrorNone) {
  interstitial_ad->LoadAd(my_ad_request);
}
 

एक बार InterstitialAd::LoadAd() विधि के लिए अंतिम कॉल के लिए भविष्य की स्थिति पूरी हो गई है, तो आप अपने ऐप में अगले प्राकृतिक रोक बिंदु पर बीचवाला विज्ञापन प्रदर्शित करने के लिए तैयार हैं:

 if (interstitial_ad->LoadAdLastResult().status() ==
    firebase::kFutureStatusComplete &&
    interstitial_ad->LoadAdLastResult().error() ==
    firebase::admob::kAdMobErrorNone) {
  interstitial_ad->Show();
}
 

फ्यूचर पूरा होने पर आपको कॉलबैक के लिए पंजीकृत किया जा सकता है। यह कोड स्निपेट कॉलबैक के लिए फ़ंक्शन पॉइंटर का उपयोग करता है:

 // Initialize the interstitial ad.
interstitial_ad->Initialize(static_cast<firebase::admob::AdParent>(my_ad_parent), kInterstitialAdUnit);

// Registers the OnCompletion callback. user_data is a pointer that is passed verbatim
// to the callback as a void*. In this example, we pass the interstitial ad object to be
// used in the OnCompletionCallback function.
interstitial_ad->InitializeLastResult().OnCompletion(OnCompletionCallback, interstitial_ad /*user_data*/);

// The OnCompletion callback function.
static void OnCompletionCallback(const firebase::Future<void>& future, void* user_data) {
  // Called when the Future is completed for the last call to the InterstitialAd::Initialize()
  // method. If the error code is firebase::admob::kAdMobErrorNone, then you're ready to
  // load the interstitial ad.
  firebase::admob::InterstitialAd *interstitial_ad = static_cast<firebase::admob::InterstitialAd*>(user_data);
  if (future.error() == firebase::admob::kAdMobErrorNone) {
    interstitial_ad->LoadAd(my_ad_request);
  }
}
 

विज्ञापन जीवन चक्र की घटनाओं की सूचना देने के लिए एक श्रोता का उपयोग करें

AdMob एक अमूर्त BannerView::Listener वर्ग प्रदान करता है, जिसे आप बैनर व्यू के प्रेजेंटेशन स्टेट और बाउंडिंग बॉक्स में परिवर्तनों के बारे में सूचित करने के लिए BannerView::SetListener() विधि से बढ़ा सकते हैं और पास कर सकते हैं। एक समान सार InterstitialAd::Listener वर्ग को इंटरस्टीशियल विज्ञापनों के लिए भी प्रदान किया जाता है जिन्हें एक इंटरस्टिशियल विज्ञापन की प्रस्तुति स्थिति में परिवर्तन के बारे में सूचित करने के लिए बढ़ाया जा सकता है।

नीचे एक वर्ग का एक उदाहरण कार्यान्वयन है जो BannerView::Listener विस्तार करता है BannerView::Listener वर्ग (एक समान कार्यान्वयन का उपयोग BannerView::Listener विज्ञापनों के लिए किया जा सकता है):

 class ExampleBannerViewListener
    : public firebase::admob::BannerView::Listener {
public:
  ExampleBannerViewListener() {}

  void OnPresentationStateChanged(
      firebase::admob::BannerView* banner_view,
      firebase::admob::BannerView::PresentationState state) override {
    // This method gets called when the banner view's presentation
    // state changes.
  }

  void OnBoundingBoxChanged(
      firebase::admob::BannerView* banner_view,
      firebase::admob::BoundingBox box) override {
    // This method gets called when the banner view's bounding box
    // changes.
  }
};
 

आगे क्या होगा

AdMob के साथ अपने ऐप का मुद्रीकरण करना सीखें और इस गाइड में उपयोग की जाने वाली परीक्षण विज्ञापन इकाई आईडी को अपनी स्वयं की विज्ञापन इकाई आईडी से बदलना सुनिश्चित करें।