Pré-requisitos
- SDK de anúncios para dispositivos móveis do Google 19.7.0 ou superior.
- Siga o guia de primeiros passos para importar o SDK de anúncios para dispositivos móveis do Google e atualizar seu manifesto do Android.
Sempre teste com anúncios de teste
Ao criar e testar seus aplicativos, use anúncios de teste em vez de anúncios de produção ao vivo. O não cumprimento pode levar à suspensão da sua conta.
A maneira mais fácil de carregar anúncios de teste é usar nosso ID de bloco de anúncios de teste dedicado para anúncios premiados do Android:
ca-app-pub-3940256099942544/5224354917
Ele foi especialmente configurado para retornar anúncios de teste para cada solicitação, e você pode usá-lo em seus próprios aplicativos durante a codificação, teste e depuração. Apenas certifique-se de substituí-lo por seu próprio ID de bloco de anúncios antes de publicar seu aplicativo.
Para obter mais informações sobre como os anúncios de teste do SDK de anúncios para dispositivos móveis funcionam, consulte Anúncios de teste .
Carregar um objeto de anúncio premiado
Os anúncios premiados são carregados chamando o método static load()
na classe RewardedAd
e passando um RewardedAdLoadCallback
. Isso geralmente é feito no método onCreate()
de uma Activity
. Observe que, como outros retornos de chamada de carregamento de formato, RewardedAdLoadCallback
aproveita LoadAdError
para fornecer detalhes de erro de maior fidelidade.
Java
import com.google.android.gms.ads.rewarded.RewardedAd; public class MainActivity extends Activity { private RewardedAd mRewardedAd; private final String TAG = "MainActivity"; @Override protected void onCreate(Bundle savedInstanceState) { AdRequest adRequest = new AdRequest.Builder().build(); RewardedAd.load(this, "ca-app-pub-3940256099942544/5224354917", adRequest, new RewardedAdLoadCallback() { @Override public void onAdFailedToLoad(@NonNull LoadAdError loadAdError) { // Handle the error. Log.d(TAG, loadAdError.getMessage()); mRewardedAd = null; } @Override public void onAdLoaded(@NonNull RewardedAd rewardedAd) { mRewardedAd = rewardedAd; Log.d(TAG, "Ad was loaded."); } }); } }
Kotlin
class MainActivity : AppCompatActivity() { private var mRewardedAd: RewardedAd? = null private final var TAG = 'MainActivity' override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.activity_main) var adRequest = AdRequest.Builder().build() RewardedAd.load(this,"ca-app-pub-3940256099942544/5224354917", adRequest, object : RewardedAdLoadCallback() { override fun onAdFailedToLoad(adError: LoadAdError) { Log.d(TAG, adError?.message) mRewardedAd = null } override fun onAdLoaded(rewardedAd: RewardedAd) { Log.d(TAG, "Ad was loaded.") mRewardedAd = rewardedAd } }) } }
Defina o FullScreenContentCallback
O FullScreenContentCallback
lida com eventos relacionados à exibição de seu RewardedAd
. Antes de exibir seu RewardedAd
, defina o retorno de chamada assim:
Java
mRewardedAd.setFullScreenContentCallback(new FullScreenContentCallback() { @Override public void onAdShowedFullScreenContent() { // Called when ad is shown. Log.d(TAG, "Ad was shown."); } @Override public void onAdFailedToShowFullScreenContent(AdError adError) { // Called when ad fails to show. Log.d(TAG, "Ad failed to show."); } @Override public void onAdDismissedFullScreenContent() { // Called when ad is dismissed. // Set the ad reference to null so you don't show the ad a second time. Log.d(TAG, "Ad was dismissed."); mRewardedAd = null; } });
Kotlin
mRewardedAd?.fullScreenContentCallback = object: FullScreenContentCallback() { override fun onAdShowedFullScreenContent() { // Called when ad is shown. Log.d(TAG, "Ad was shown.") } override fun onAdFailedToShowFullScreenContent(adError: AdError?) { // Called when ad fails to show. Log.d(TAG, "Ad failed to show.") } override fun onAdDismissedFullScreenContent() { // Called when ad is dismissed. // Set the ad reference to null so you don't show the ad a second time. Log.d(TAG, "Ad was dismissed.") mRewardedAd = null } }
Mostrar o anúncio
Ao exibir um anúncio premiado, você usará um objeto OnUserEarnedRewardListener
para lidar com eventos de recompensa.
Java
if (mRewardedAd != null) { Activity activityContext = MainActivity.this; mRewardedAd.show(activityContext, new OnUserEarnedRewardListener() { @Override public void onUserEarnedReward(@NonNull RewardItem rewardItem) { // Handle the reward. Log.d(TAG, "The user earned the reward."); int rewardAmount = rewardItem.getAmount(); String rewardType = rewardItem.getType(); } }); } else { Log.d(TAG, "The rewarded ad wasn't ready yet."); }
Kotlin
if (mRewardedAd != null) { mRewardedAd?.show(this, OnUserEarnedRewardListener() { fun onUserEarnedReward(rewardItem: RewardItem) { var rewardAmount = rewardItem.amount var rewardType = rewardItem.type Log.d(TAG, "User earned the reward.") } }) } else { Log.d(TAG, "The rewarded ad wasn't ready yet.") }
Perguntas frequentes
- Existe um tempo limite para a chamada de inicialização?
- Após 10 segundos, o SDK de anúncios para dispositivos móveis do Google invoca o
OnInitializationCompleteListener
mesmo que uma rede de mediação ainda não tenha concluído a inicialização. - E se algumas redes de mediação não estiverem prontas quando eu receber o retorno de chamada de inicialização?
É uma prática recomendada carregar um anúncio dentro do retorno de chamada do
OnInitializationCompleteListener
. Mesmo que uma rede de mediação não esteja pronta, o SDK de anúncios para dispositivos móveis do Google ainda solicitará um anúncio a essa rede. Portanto, se uma rede de mediação terminar de inicializar após o tempo limite, ela ainda poderá atender a futuras solicitações de anúncios nessa sessão.Você pode continuar pesquisando o status de inicialização de todos os adaptadores em toda a sessão do aplicativo chamando
MobileAds.getInitializationStatus()
.- Como descubro por que uma determinada rede de mediação não está pronta?
AdapterStatus.getDescription()
descreve por que um adaptador não está pronto para atender a solicitações de anúncios.