Ö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
- Başlayın bölümünü tamamlayın.
- (Yalnızca Android) JNI
jobject
referanslarıyla çalışma hakkında bilgi (bkz. Android JNI ipuçları).
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:
- Bir reklam yükleyin.
- Geri çağırma işlevleri için kaydolun.
- 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
.
Aşağıdaki başlığı uygulamanızın C++ koduna ekleyin:
#include "firebase/gma/rewarded_ad.h"
Bir
RewardedAd
nesnesini tanımlayın ve örneklendirin:firebase::gma::RewardedAd* rewarded_ad; rewarded_ad = new firebase::gma::RewardedAd();
Üst görünümünüzü kullanarak
RewardedAd
örneğini başlatınAdParent
türü. Üst görünüm, bir Android için JNIjobject
referansıdırActivity
veya bir iOSUIView
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);
Geleceği değişken olarak tutmak yerine, belirli aralıklarla şunu çağırarak başlatma işleminin durumunu kontrol edin:
RewardedAd
nesnesindeInitializeLastResult()
. 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 bulunduğundan emin olun. 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 zaman aşımına uğradıktan sonra başlatıldıktan sonra, 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
- Örneğimizin kaynak kodunu görüntüleyin hızlı başlangıç uygulaması bölümüne gidin.