Ödüllü reklamlar

.


Ödüllü reklamlar, kullanıcıların bir reklamda etkileşim kurmalarını sağlar. inceleyebilirsiniz. Bu kılavuzda, Google Mobile Ads C++ SDK'sı kullanılarak ödüllü reklamların Android ve iOS uygulamalarına nasıl entegre edileceği gösterilmektedir.

Bazı müşteri başarı öykülerini okuyun: örnek olay 1, örnek olay 2.

Ön koşullar

Her zaman test reklamlarıyla test etme

Uygulamalarınızı oluşturup test ederken canlı üretim reklamları yerine test reklamları kullandığınızdan emin olun. Aksi takdirde hesabınız askıya alınabilir.

Test reklamlarını yüklemenin en kolay yolu, aşağıdakiler için özel test reklam birimi kimliğimizi kullanmaktır: cihaz platformuna göre değişen ödüllü reklamlar:

  • Android: ca-app-pub-3940256099942544/5224354917
  • iOS: ca-app-pub-3940256099942544/1712485313

Bu reklamlar, her istek için test reklamları döndürecek şekilde özel olarak yapılandırılmıştır. Kodlama, test etme ve hata ayıklama sırasında kendi uygulamalarınızda bu reklamları kullanabilirsiniz. Uygulamanızı yayınlamadan önce bu kimliği kendi reklam birimi kimliğinizle değiştirdiğinizden emin olun.

Mobile Ads SDK'sının test reklamlarının işleyiş şekli hakkında daha fazla bilgi için Test Reklamları.

Uygulama

Ödüllü reklamları entegre etmek için başlıca adımlar şunlardır:

  1. Bir reklam yükleyin.
  2. Geri arama için kaydolun.
  3. Reklamı gösterin ve ödül etkinliğini yönetin.

RewardedAd yapılandırın

Ödüllü reklamlar RewardedAd nesne halinde görüntülenir. Bu nedenle, reklam grubuna uygulamanıza ödüllü reklamları entegre etmek, bir örnek oluşturup ilk kullanıma / RewardedAd.

  1. Uygulamanızın C++ koduna aşağıdaki üstbilgeyi ekleyin:

     #include "firebase/gma/rewarded_ad.h"
    

  2. Bir RewardedAd nesnesini tanımlayın ve örneklendirin:

     firebase::gma::RewardedAd* rewarded_ad;
     rewarded_ad = new firebase::gma::RewardedAd();
    

  3. Üst görünümünüzü kullanarak RewardedAd örneğini başlatın AdParent türü. Üst görünüm, bir Android için JNI jobject referansıdır Activity veya bir iOS UIView işaretçisi.

    // my_ad_parent is a jobject reference to an Android Activity or
    // a pointer to an iOS UIView.
    firebase::gma::AdParent ad_parent =
      static_cast<firebase::gma::AdParent>(my_ad_parent);
    firebase::Future<void> result = rewarded_ad->Initialize(ad_parent);
    
  4. Geleceği değişken olarak tutmak yerine, belirli aralıklarla şunu çağırarak başlatma işleminin durumunu kontrol edin: RewardedAd nesnesinde InitializeLastResult(). Bu, genel oyun döngüsünüzdeki başlatma sürecini takip etmek için yararlı olabilir.

    // Monitor the status of the future in your game loop:
    firebase::Future<void> result = rewarded_ad->InitializeLastResult();
    if (result.status() == firebase::kFutureStatusComplete) {
      // Initialization completed.
      if(future.error() == firebase::gma::kAdErrorCodeNone) {
        // Initialization successful.
      } else {
        // An error has occurred.
      }
    } else {
      // Initialization on-going.
    }
    

firebase::Future ile çalışma hakkında daha fazla bilgi için Yöntem çağrılarının tamamlanma durumunu izlemek için Futures'i kullanma başlıklı makaleyi inceleyin.

Reklam yükle

Reklam yükleme, RewardedAd üzerinde LoadAd() yöntemi kullanılarak gerçekleştirilir. nesnesini tanımlayın. Yükleme yöntemi, RewardedAd nesnesini başlatmanızı, reklam birimi kimliğinizin ve bir AdRequest nesnenizin olmasını gerektirir. CEVAP Durumu ve sonucu izlemek için kullanabileceğiniz firebase::Future döndürülür devam eder.

Aşağıdaki kod, RewardedAd yüklendikten sonra reklamın nasıl yükleneceğini gösterir başarıyla başlatıldı:

firebase::gma::AdRequest ad_request;
firebase::Future<firebase::gma::AdResult> load_ad_result;
load_ad_result = rewarded_ad->LoadAd(rewarded_ad_unit_id, ad_request);

Geri çağırma işlevleri için kaydolun

Almak için FullScreenContentListener sınıfını uzatmanız gerekir Ödüllü reklam sunumu ve yaşam döngüsü olayları hakkında bildirimler Özel FullScreenContentListener alt sınıfınız RewardedAd::SetFullScreenContentListener() yöntemi aracılığıyla kaydedilebilir. Reklam başarıyla veya başarısız bir şekilde sunulduğunda ve kapatıldığında bu sınıfa geri çağırma çağrıları gönderilir.

Aşağıdaki kod, sınıfın nasıl genişletileceğini ve reklama nasıl atanacağını gösterir:

  class ExampleFullScreenContentListener
      : public firebase::gma::FullScreenContentListener {

   public:
    ExampleFullScreenContentListener() {}

    void OnAdClicked() override {
      // This method is invoked when the user clicks the ad.
    }

    void OnAdDismissedFullScreenContent() override {
     // This method is invoked when the ad dismisses full screen content.
    }

    void OnAdFailedToShowFullScreenContent(const AdError& error) override {
      // This method is invoked when the ad failed to show full screen content.
      // Details about the error are contained within the AdError parameter.
    }

    void OnAdImpression() override {
      // This method is invoked when an impression is recorded for an ad.
    }

    void OnAdShowedFullScreenContent() override {
      // This method is invoked when the ad showed its full screen content.
    }
  };

  ExampleFullScreenContentListener* example_full_screen_content_listener =
    new ExampleFullScreenContentListener();
  rewarded_ad->SetFullScreenContentListener(example_full_screen_content_listener);

RewardedAd, tek kullanımlık bir nesnedir. Bu, ödüllü reklamın bir kez tekrar gösterilemez. En iyi uygulama, başka bir ödüllü reklam yüklemektir OnAdDismissedFullScreenContent() yönteminizin Bir sonraki ödüllü reklamın yüklenmeye başlaması için FullScreenContentListener kapatmak için kullanılır.

Reklamı gösterin ve ödül etkinliğini gerçekleştirin

Ödüllü reklam kullanıcılara göstermeden önce kullanıcıya Ödül karşılığında ödüllü reklam içeriğini görüntülemek için açık seçim. Ödüllü reklamlar her zaman isteğe bağlı olarak etkinleştirilmelidir.

Reklamınızı gösterirken, kullanılacak bir UserEarnedReward nesnesi sağlamanız gerekir kullanıcının ödülü.

Aşağıdaki kodda, RewardedAd öğesinin nasıl görüntüleneceği gösterilmektedir:

// A simple listener track UserEarnedReward events.
class ExampleUserEarnedRewardListener :
    public firebase::gma::UserEarnedRewardListener {
 public:
   ExampleUserEarnedRewardListener() { }

  void OnUserEarnedReward(const firebase::gma::AdReward& reward) override {
    // Reward the user!
  }
};

ExampleUserEarnedRewardListener* user_earned_reward_listener =
  new ExampleUserEarnedRewardListener();
firebase::Future<void> result = rewarded_ad->Show(user_earned_reward_listener);

SSS

İlk kullanıma hazırlama çağrısı için zaman aşımı var mı?
10 saniye sonra Google Mobile Ads C++ SDK'sı, bir uyumlulaştırma ağı ilk kullanıma hazırlama işlemini tamamlamamış olsa bile Initialize() tarafından döndürülen firebase::Future işlevini tamamlar.
İlklendirme geri çağırmasını aldığımda bazı uyumlulaştırma ağları hazır değilse ne olur?

Reklamları SDK başlatma işlemi tamamlandıktan sonra yüklemek en iyi uygulamadır. Bir uyumlulaştırma ağı hazır olmasa bile Google Mobile Ads C++ SDK'sı yine de o ağdan reklam isteyebilir. Bir uyumlulaştırma ağı tamamlanırsa sonra başlatıldıktan sonra, sıradaki reklam isteklerine kabul edilir.

İşlem sırasında tüm bağdaştırıcıların başlatma durumunu yoklamaya devam edebilirsiniz. GetInitializationStatus() numaralı telefonu arayarak uygulama oturumunuz.

Belirli bir uyumlulaştırma ağının neden hazır olmadığını nasıl öğrenebilirim?

AdapterStatus.description(), bir bağdaştırıcının neden hizmet vermeye hazır olmadığını açıklar. reklam istekleri. Uyumlulaştırma bağdaştırıcısı durumunu günlüğe kaydetme örneği için GitHub'daki örnek hızlı başlangıç uygulamamızın kaynak koduna bakın.

Ek kaynaklar

GitHub'daki örnek