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

पुरस्कृत वीडियो

आप AdMob मध्यस्थता के माध्यम से अपने C ++ एप्लिकेशन में पुरस्कृत वीडियो प्रदर्शित करने के लिए AdMob का उपयोग कर सकते हैं।

यह मार्गदर्शिका आपको एक पुरस्कृत वीडियो को अनुरोध करने और प्रदर्शित करने का तरीका दिखाती है, यह निर्धारित करती है कि पुरस्कृत वीडियो उपलब्ध है, और उपयोगकर्ता को पुरस्कृत करें।

आवश्यक शर्तें

इससे पहले कि आप पुरस्कृत वीडियो C ++ एपीआई के साथ बातचीत करना शुरू करें, आपको अपने ऐप में मध्यस्थता नेटवर्क एडेप्टर और एसडीके को शामिल करना होगा जिसे आप से पुरस्कृत वीडियो परोसना चाहते हैं। आप iOS और Android के लिए पुरस्कृत वीडियो गाइड के प्रकाशकों में अपने ऐप में पुरस्कृत वीडियो मध्यस्थता जोड़ने के चरण देख सकते हैं।

इसके अलावा, यदि यह आपकी C ++ ऐप में AdMob और Firebase स्थापित करने का पहला मौका है, तो AdMob C ++ को अपने ऐप को AdMob और Firebase के साथ एकीकृत करने के लिए चरण-दर-चरण निर्देशों के लिए आरंभ मार्गदर्शिका देखें।

पुरस्कृत_वीडियो नामस्थान के साथ सहभागिता करें

rewarded_video नामस्थान में Google मोबाइल विज्ञापन एसडीके के माध्यम से पुरस्कृत वीडियो प्रदर्शित करने के तरीके हैं। बैनर और बीच के विज्ञापनों के विपरीत, जिनकी अपनी वस्तुएं हैं, पुरस्कृत वीडियो को rewarded_video नामस्थान में स्थिर तरीकों का उपयोग करके नियंत्रित rewarded_video है।

rewarded_video नाम स्थान का उपयोग करने के लिए, अपने ऐप के C ++ कोड में निम्नलिखित शामिल करें:

 #include "firebase/admob/rewarded_video.h"
 

यहाँ rewarded_video नामस्थान के साथ बातचीत के लिए बुनियादी कदम हैं:

  1. लाइब्रेरी और मध्यस्थता एडाप्टर्स को इनिशियलाइज़ करने के लिए Initialize() कॉल Initialize() :

     firebase::admob::rewarded_video::Initialize();
     
  2. अब जब लाइब्रेरी और मध्यस्थता एडेप्टर को आरंभ कर दिया गया है, तो आप पुरस्कृत वीडियो को लोड करने के लिए LoadAd() को कॉल करने के लिए तैयार हैं:

     firebase::admob::AdRequest my_ad_request;
    // Set some or all of the member variables in the AdRequest struct.
    firebase::admob::rewarded_video::LoadAd("YOUR_REWARDED_AD_UNIT_ID", my_ad_request);
     

    विज्ञापन अनुरोधों को लक्षित और अनुकूलित करने पर एक उदाहरण के लिए एक AdMob विज्ञापन अनुरोध बनाएँ देखें।

  3. एक बार पुरस्कृत वीडियो लोड हो जाने के बाद, उपयोगकर्ता को वीडियो दिखाने के लिए Show() कॉल करें:

     // my_ad_parent is a reference to an iOS UIView or an Android Activity. This is
    // the parent UIView or Activity of the rewarded video.
    firebase::admob::rewarded_video::Show(my_ad_parent);
     
  4. आवश्यकतानुसार चरण 2 और 3 दोहराएं।

  5. कॉल Pause() पुरस्कृत वीडियो से जुड़े किसी भी बैकग्राउंड प्रोसेसिंग को रोकने के लिए:

     firebase::admob::rewarded_video::Pause();
     

    जब भी C ++ इंजन रुकता है या एप्लिकेशन फ़ोकस खोता है, तो इस विधि को कॉल करें।

  6. उदाहरण के लिए, जब Google Play से उपयोगकर्ता आपके ऐप पर वापस लौटता है, तो Resume() को फिर से शुरू करने के लिए कॉल Resume()

     firebase::admob::rewarded_video::Resume();
     
  7. जब आप अपने ऐप में पुरस्कृत वीडियो विज्ञापन प्रदर्शित कर रहे हों, तो Destroy() किए गए वीडियो नामस्थान द्वारा उपयोग किए गए किसी भी संसाधन को साफ़ करने और उसे Destroy() करने के लिए Destroy() कॉल करें:

     firebase::admob::rewarded_video::Destroy();
     

ऊपर दिए गए चरण आपके ऐप के लिए मूल विधि कॉल को हाइलाइट करते समय उपयोग करते हैं और पुरस्कृत वीडियो प्रदर्शित करते हैं। हालांकि, उन्हें कॉल करने से पहले पिछली विधि कॉल की पूर्ण स्थिति की निगरानी करना सबसे अच्छा अभ्यास है। अगला भाग पिछले rewarded_video नामस्थान विधि कॉल की पूर्ण स्थिति निर्धारित करने के लिए फ्यूचर्स का उपयोग करने के चरणों का वर्णन करता है।

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

वायदा आपको अपने पिछले rewarded_video नामस्थान विधि कॉल की पूर्ण स्थिति निर्धारित करने का एक तरीका प्रदान करता है। जब rewarded_video::Initialize() को कॉल rewarded_video::Initialize() विधि, उदाहरण के लिए, एक नया भविष्य बनाया जाता है और वापस आ जाता है। फायरबेस देखें : अधिक विवरण के लिए भविष्य । जब इनिशियलाइज़ेशन पूरा हो गया है तो एप्स भविष्य की स्थिति को निर्धारित कर सकते हैं। भविष्य पूरा हो जाने के बाद, आप पुरस्कृत वीडियो को लोड करने के लिए तैयार हैं।

rewarded_video नाम स्थान में अधिकांश विधियों में एक "अंतिम परिणाम" विधि होती है, जो किसी दिए गए कार्य के लिए सबसे हाल के भविष्य को पुनः प्राप्त करने के लिए एप्लिकेशन का उपयोग कर सकते हैं। Initialize() विधि, उदाहरण के लिए, एक विधि कहा जाता है InitializeLastResult() कि रिटर्न के लिए सबसे हाल ही में कॉल के लिए भविष्य Initialize() :

 if (firebase::admob::rewarded_video::InitializeLastResult().status() ==
    firebase::kFutureStatusComplete &&
    firebase::admob::rewarded_video::InitializeLastResult().error() ==
    firebase::admob::kAdMobErrorNone) {
  firebase::admob::rewarded_video::LoadAd("YOUR_REWARDED_AD_UNIT_ID",
      my_ad_request);
}
 

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

 if (firebase::admob::rewarded_video::LoadAdLastResult().status() ==
    firebase::kFutureStatusComplete &&
    firebase::admob::rewarded_video::LoadAdLastResult().error() ==
    firebase::admob::kAdMobErrorNone) {
  // my_ad_parent is a reference to an iOS UIView or an Android Activity.
  // This is the parent UIView or Activity of the rewarded video.
  firebase::admob::rewarded_video::Show(my_ad_parent);
}
 

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

AdMob rewarded_video नामस्थान एक अमूर्त Listener वर्ग प्रदान करता है जिसे आप पुरस्कारों और पुरस्कृत वीडियो प्रस्तुति राज्य परिवर्तनों को अधिसूचित करने के लिए SetListener() विधि में विस्तारित और पास कर सकते हैं।

नीचे एक वर्ग का एक उदाहरण कार्यान्वयन है जो Listener सार वर्ग का विस्तार करता है:

 // A simple listener that logs changes to rewarded video state.
class LoggingRewardedVideoListener
    : public firebase::admob::rewarded_video::Listener {
 public:
  LoggingRewardedVideoListener() {}
  void OnRewarded(firebase::admob::rewarded_video::RewardItem reward) override {
    LogMessage("Rewarding user with %f %s.", reward.amount,
               reward.reward_type.c_str());
  }
  void OnPresentationStateChanged(
      firebase::admob::rewarded_video::PresentationState state) override {
    LogMessage("Rewarded video PresentationState has changed to %d.", state);
  }
};

// After calling Initialize and waiting for the Initialize future to complete
// successfully, set the listener.
LoggingRewardedVideoListener rewarded_video_listener;
firebase::admob::rewarded_video::SetListener(&rewarded_video_listener);
 

पोल पुरस्कार

rewarded_video नामस्थान PollableRewardListener भी प्रदान करता है, एक ऐसा वर्ग जिसे आप SetListener() विधि से SetListener() और पास कर सकते हैं। यह वर्ग अमूर्त Listener वर्ग का विस्तार किए बिना पुरस्कारों तक पहुँचने के लिए एक वैकल्पिक विकल्प प्रदान करता है।

मतदान-आधारित श्रोता मोबाइल विज्ञापनों एसडीके द्वारा दिए गए पुरस्कारों को बनाए रखने के लिए एक कतार का उपयोग करता है जिसे बाद में पुनः प्राप्त किया जा सकता है। PollReward(RewardItem* reward) की विधि PollableRewardListener सबसे पुराने पंक्तिबद्ध इनाम और प्रतियां अपने डेटा प्रदान में पॉप RewardItem struct।

यहाँ पुरस्कृत_वीडियो का उपयोग करके मतदान पुरस्कार के लिए एक उदाहरण लागू rewarded_video::PollableRewardListener वर्ग:

 // After calling Initialize and waiting for the Initialize future to complete
// successfully, instantiate a PollableRewardListener object and set the listener.
firebase::admob::rewarded_video::PollableRewardListener* listener =
    new firebase::admob::rewarded_video::PollableRewardListener();

// Pass the PollableRewardListener object to the SetListener method.
firebase::admob::rewarded_video::SetListener(listener);

...
// Display the rewarded videos to users so they can earn rewards.
...

// Declare a RewardItem struct. Pass this RewardItem struct by reference to
// the PollReward method.
firebase::admob::rewarded_video::RewardItem reward;
// Call the PollReward method to see if a reward is available.
while (listener->PollReward(&reward)) {
  // A reward is available. Do something with the reward.
  printf("Reward user with %f %s.", reward.amount, reward.reward_type);
}
 

सरल खेल लूप उदाहरण

यहां एक सरल गेम लूप है जो rewarded_video नामस्थान के लिए कॉल करने के लिए स्टेट मशीन का उपयोग करता है:

 namespace rewarded_video = firebase::admob::rewarded_video;

enum State {
  kNextStepInitialize,
  kNextStepLoadAd,
  kNextStepShowAd,
  kNextStepRewardUser,
  kNextStepRestartGame
}

// Instantiate a PollableRewardListener object.
firebase::admob::rewarded_video::PollableRewardListener* listener =
    new firebase::admob::rewarded_video::PollableRewardListener();

State state = kNextStepInitialize;
for ( ; ; ) /* game loop */ {
  switch (state) {
    case kNextStepInitialize:
      rewarded_video::Initialize();
      state = kNextStepLoadAd;
      break;
    case kNextStepLoadAd:
      if (rewarded_video::InitializeLastResult().status() ==
          firebase::kFutureStatusComplete &&
          rewarded_video::InitializeLastResult().error() ==
          firebase::admob::kAdMobErrorNone) {
        // Pass the PollableRewardListener object to the SetListener method.
        firebase::admob::rewarded_video::SetListener(listener);
        rewarded_video::LoadAd("YOUR_REWARDED_AD_UNIT_ID",
                               my_ad_request);
      }
      state = kNextStepShowAd;
      break;
    case kNextStepShowAd:
      if (rewarded_video::LoadAdLastResult().status() ==
          firebase::kFutureStatusComplete &&
          rewarded_video::LoadAdLastResult().error() ==
          firebase::admob::kAdMobErrorNone) {
        rewarded_video::Show(my_ad_parent);
      }

      if (rewarded_video::ShowLastResult().status() ==
          firebase::kFutureStatusComplete &&
          rewarded_video::ShowLastResult().error() ==
          firebase::admob::kAdMobErrorNone &&
          rewarded_video::presentation_state() ==
          rewarded_video::kPresentationStateHidden) {
        // If the rewarded video has been displayed to the user and
        // the user closed the ad, then reward the user.
        state = kNextStepRewardUser;
      }
      break;
    case kNextStepRewardUser:
      firebase::admob::rewarded_video::RewardItem reward;
      // Call the PollReward method to see if a reward is available.
      while (listener->PollReward(&reward)) {
        // A reward is available. Do something with the reward.
        printf("Reward user with %f %s.", reward.amount, reward.reward_type);
      }
      state = kNextStepRestartGame;
      break;
    case kNextStepRestartGame:
      // restart game
      break;
  }

  // render game
}
 

आगे क्या होगा

आईओएस रिवॉर्डेड वीडियो देखें और रिवॉर्डेड वीडियो विज्ञापनों के बारे में अधिक जानकारी के लिए एंड्रॉइड रिवॉर्डेड वीडियो गेट स्टार्टेड गाइड प्राप्त करें।