Pré-requisitos
Sempre use anúncios de teste
Ao criar e testar seus apps, use anúncios de teste em vez de anúncios de produção ativos. Sua conta poderá ser suspensa se isso não for feito.
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 configurado especialmente para retornar anúncios de teste em todas as solicitações e pode ser usado nos seus próprios apps durante a programação, os testes e a depuração. Substitua pelo ID do seu bloco de anúncios antes de publicar o app.
Consulte Anúncios de teste para saber mais sobre como eles funcionam com o SDK de última geração do GMA.
Carregar um anúncio
Para carregar um anúncio, o SDK de última geração do GMA oferece o seguinte:
Carregue com a API de carregamento de um único anúncio.
Carregue com a API de pré-carregamento de anúncios, que elimina a necessidade de carregamento e armazenamento em cache manuais.
Carregar com a API de carregamento de um único anúncio
O exemplo a seguir mostra como carregar um único anúncio:
Kotlin
import com.google.android.libraries.ads.mobile.sdk.common.AdLoadCallback
import com.google.android.libraries.ads.mobile.sdk.common.AdRequest
import com.google.android.libraries.ads.mobile.sdk.common.FullScreenContentError
import com.google.android.libraries.ads.mobile.sdk.common.LoadAdError
import com.google.android.libraries.ads.mobile.sdk.rewarded.RewardedAd
import com.google.android.libraries.ads.mobile.sdk.rewarded.RewardedAdEventCallback
import com.google.android.libraries.ads.mobile.sdk.MobileAds
class RewardedActivity : Activity() {
private var rewardedAd: RewardedAd? = null
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
// Load ads after you inititalize GMA Next Gen SDK.
RewardedAd.load(
AdRequest.Builder(AD_UNIT_ID).build(),
object : AdLoadCallback<RewardedAd> {
override fun onAdLoaded(ad: RewardedAd) {
// Rewarded ad loaded.
rewardedAd = ad
}
override fun onAdFailedToLoad(adError: LoadAdError) {
// Rewarded ad failed to load.
rewardedAd = null
}
},
)
}
companion object {
// Sample rewarded ad unit ID.
const val AD_UNIT_ID = "ca-app-pub-3940256099942544/5224354917"
}
}
Java
import com.google.android.libraries.ads.mobile.sdk.common.AdLoadCallback;
import com.google.android.libraries.ads.mobile.sdk.common.AdRequest;
import com.google.android.libraries.ads.mobile.sdk.common.FullScreenContentError;
import com.google.android.libraries.ads.mobile.sdk.common.LoadAdError;
import com.google.android.libraries.ads.mobile.sdk.rewarded.RewardedAd;
import com.google.android.libraries.ads.mobile.sdk.rewarded.RewardedAdEventCallback;
import com.google.android.libraries.ads.mobile.sdk.MobileAds;
class RewardedActivity extends Activity {
// Sample rewarded ad unit ID.
private static final String AD_UNIT_ID = "ca-app-pub-3940256099942544/5224354917";
private RewardedAd rewardedAd;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
// Load ads after you initialize GMA Next Gen SDK.
RewardedAd.load(
new AdRequest.Builder(AD_UNIT_ID).build(),
new AdLoadCallback<RewardedAd>() {
@Override
public void onAdLoaded(@NonNull RewardedAd rewardedAd) {
// Rewarded ad loaded.
AdLoadCallback.super.onAdLoaded(rewardedAd);
RewardedActivity.this.rewardedAd = rewardedAd;
}
@Override
public void onAdFailedToLoad(@NonNull LoadAdError adError) {
// Rewarded ad failed to load.
AdLoadCallback.super.onAdFailedToLoad(adError);
rewardedAd = null;
}
}
);
}
}
Carregar com a API de pré-carregamento de anúncios
Para iniciar o pré-carregamento, faça o seguinte:
Inicialize uma configuração de pré-carregamento com uma solicitação de anúncio.
Inicie o pré-carregador de anúncios premiados com o ID do bloco de anúncios e a configuração de pré-carregamento:
Kotlin
private fun startPreloading(adUnitId: String) {
val adRequest = AdRequest.Builder(adUnitId).build()
val preloadConfig = PreloadConfiguration(adRequest)
RewardedAdPreloader.start(adUnitId, preloadConfig)
}
Java
private void startPreloading(String adUnitId) {
AdRequest adRequest = new AdRequest.Builder(adUnitId).build();
PreloadConfiguration preloadConfig = new PreloadConfiguration(adRequest);
RewardedAdPreloader.start(adUnitId, preloadConfig);
}
Quando estiver tudo pronto para mostrar o anúncio, faça uma pesquisa no pré-carregador:
Kotlin
// Polling returns the next available ad and loads another ad in the background.
val ad = RewardedAdPreloader.pollAd(adUnitId)
Java
// Polling returns the next available ad and loads another ad in the background.
final RewardedAd ad = RewardedAdPreloader.pollAd(adUnitId);
Definir o RewardedAdEventCallback
O RewardedAdEventCallback processa eventos relacionados à exibição do seu RewardedAd. Antes de mostrar o anúncio premiado, defina o
callback:
Kotlin
// Listen for ad events.
rewardedAd?.adEventCallback =
object : RewardedAdEventCallback {
override fun onAdShowedFullScreenContent() {
// Rewarded ad did show.
}
override fun onAdDismissedFullScreenContent() {
// Rewarded ad did dismiss.
rewardedAd = null
}
override fun onAdFailedToShowFullScreenContent(
fullScreenContentError: FullScreenContentError
) {
// Rewarded ad failed to show.
rewardedAd = null
}
override fun onAdImpression() {
// Rewarded ad did record an impression.
}
override fun onAdClicked() {
// Rewarded ad did record a click.
}
}
Java
// Listen for ad events.
rewardedAd.setAdEventCallback(
new RewardedAdEventCallback() {
@Override
public void onAdShowedFullScreenContent() {
// Rewarded ad did show.
RewardedAdEventCallback.super.onAdShowedFullScreenContent();
}
@Override
public void onAdDismissedFullScreenContent() {
// Rewarded ad did dismiss.
RewardedAdEventCallback.super.onAdDismissedFullScreenContent();
rewardedAd = null;
}
@Override
public void onAdFailedToShowFullScreenContent(
@NonNull FullScreenContentError fullScreenContentError) {
// Rewarded ad failed to show.
RewardedAdEventCallback.super.onAdFailedToShowFullScreenContent(
fullScreenContentError);
rewardedAd = null;
}
@Override
public void onAdImpression() {
// Rewarded ad did record an impression.
RewardedAdEventCallback.super.onAdImpression();
}
@Override
public void onAdClicked() {
// Rewarded ad did record a click.
RewardedAdEventCallback.super.onAdClicked();
}
}
);
Mostrar o anúncio
Para mostrar um anúncio premiado, use o método show(). Use um objeto OnUserEarnedRewardListener para processar eventos premiados.
Kotlin
// Show the ad.
rewardedAd?.show(
this@RewardedActivity,
object : OnUserEarnedRewardListener {
override fun onUserEarnedReward(rewardItem: RewardItem) {
// User earned the reward.
val rewardAmount = rewardItem.amount
val rewardType = rewardItem.type
}
},
)
Java
// Show the ad.
rewardedAd.show(
RewardedActivity.this,
new OnUserEarnedRewardListener() {
@Override
public void onUserEarnedReward(@NonNull RewardItem rewardItem) {
// User earned the reward.
int rewardAmount = rewardItem.getAmount();
String rewardType = rewardItem.getType();
}
});
Perguntas frequentes
- Existe um tempo limite para a chamada de inicialização?
- Após 10 segundos, o SDK de próxima geração do GMA 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 callback de inicialização?
Recomendamos carregar um anúncio no callback do
OnInitializationCompleteListener. Mesmo que uma rede de mediação não esteja pronta, o SDK de última geração dos anúncios para dispositivos móveis ainda pede um anúncio a ela. Portanto, se uma rede de mediação terminar a inicialização após o tempo limite, ela ainda poderá atender a solicitações de anúncios futuras nessa sessão.Você pode continuar sondando o status de inicialização de todos os adaptadores durante a sessão do app chamando
MobileAds.getInitializationStatus().- Como descobrir por que uma rede de mediação específica não está pronta?
AdapterStatus.getDescription()descreve por que um adaptador não está pronto para atender a solicitações de anúncio.- O callback
onUserEarnedReward()sempre é chamado antes doonAdDismissedFullScreenContent()? Para anúncios do Google, todas as chamadas
onUserEarnedReward()ocorrem antes deonAdDismissedFullScreenContent(). Para anúncios veiculados por mediação, a implementação do SDK da rede de publicidade de terceiros determina a ordem de callback. Para SDKs de redes de publicidade que fornecem um único callback de fechamento com informações de recompensas, o adaptador de mediação invocaonUserEarnedReward()antes deonAdDismissedFullScreenContent().
Exemplo
Faça o download e execute o exemplo de app que demonstra o uso do SDK de última geração do GMA.