Ödüllü reklamlar

.


Ödüllü reklamlar, kullanıcıların bir reklamda etkileşim kurmalarını sağlar. inceleyebilirsiniz. Bu kılavuzda, ödüllü reklamların reklam gruplarına Google Mobile Ads C++ SDK'sını kullanan Android ve iOS uygulamaları.

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ştururken ve test ederken, uygulamalarınızın yanı sıra üretim reklamlarıdır. 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 reklamı döndürecek şekilde özel olarak yapılandırılmıştır ve kod yazma, test etme ve hata ayıklama sırasında kendi uygulamalarınızda kullanabilirsiniz. Ancak, reklam biriminizi yayınlamadan önce bunu kendi reklam birimi kimliğinizle değiştirdiğinizden emin olun. uygulamasını indirin.

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 çağırma işlevleri için kaydolun.
  3. Reklamı gösterin ve ödül etkinliğini gerçekleştirin.

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. Aşağıdaki başlığı uygulamanızın C++ koduna 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(). Faydalı olabilir ilk kullanıma hazırlama sürecini takip etmek için kullanabilirsiniz.

    // 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 bkz. Metodun tamamlanma durumunu izlemek için Vadeli İşlemleri kullanın aramaları için de kullanılabilir.

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 öğesini ilk kullanıma hazırlamış olmanızı gerektirir nesnesinin bulunduğundan ve reklam birimi kimliğiniz ile bir AdRequest nesnenizin olması gerekir. 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, RewardedAd::SetFullScreenContentListener() yöntemini içeren bir e-posta alırsınız ve reklam başarılı veya başarısız bir şekilde sunulduğunda ve aynı zamanda kapatıldı.

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ı?
Google Mobile Ads C++ SDK'sı 10 saniye sonra Bir uyumlulaştırma ağı hâlâ etkinleştirilmiş olsa bile firebase::Future, Initialize() tarafından döndürüldü başlatma işlemini tamamlamadı.
Başlatma 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. Şu kaynaktaki kaynak koduna bakın: örnek hızlı başlangıç uygulaması Uyumlulaştırma bağdaştırıcısı durumunu günlüğe kaydetme örneği için GitHub'ı ziyaret edin.

Ek kaynaklar

GitHub'da örnek