Os anúncios premiados oferecem aos usuários itens no app em troca de interações com anúncios em vídeo, anúncios jogáveis e pesquisas. Para mais detalhes, consulte Visão geral dos blocos de anúncios premiados.
Para eliminar a latência de apresentação e garantir que um anúncio esteja disponível quando um usuário receber uma recompensa, o Google Mobile Ads SDK for React Native usa o pré-carregamento de anúncios para gerenciar o carregamento em segundo plano, o armazenamento em cache e a reposição do buffer.
Este guia mostra como integrar anúncios premiados em um app nativo do React Native.
Pré-requisitos
Antes de continuar, faça o seguinte:
- Configure o Google Mobile Ads SDK for React Native.
- Ative os anúncios de teste e use este bloco de anúncios de teste:
Android
ca-app-pub-3940256099942544/5224354917
iOS
ca-app-pub-3940256099942544/1712485313
Entender o pré-carregamento de anúncios
O pré-carregamento de anúncios no Google Mobile Ads SDK for React Native automatiza o carregamento e o armazenamento em cache de anúncios.
O pré-carregamento de anúncios oferece os seguintes benefícios:
- Gerenciamento de referências: mantém as referências até que os anúncios sejam mostrados.
- Recarregamento automático: carrega um novo anúncio quando um é recuperado do cache.
- Tentativas gerenciadas: carrega um novo anúncio quando um falha.
- Tratamento de expiração: atualiza os anúncios antes que eles expirem.
- Otimização de cache: otimiza a ordem do cache para exibir o anúncio de maior prioridade.
Para carregar anúncios manualmente, consulte Carregar um único anúncio premiado.
Iniciar pré-carregamento
Para começar a pré-carregar anúncios, chame o método
RewardedAdPreloader.start
e transmita o valor de preloadId, as definições de configuração e os callbacks de
evento para monitorar as mudanças no estado do buffer:
export function startRewardedAdPreloader(
adUnitId: string,
preloadId: string,
customPreloadCallback?: PreloadCallback,
): boolean {
const started = RewardedAdPreloader.start(
preloadId,
{
request: {adUnitId},
bufferSize: 2,
},
{
// Called when an ad is preloaded into the buffer.
onAdPreloaded: (event) => {
console.log(`Rewarded ad preloaded for ${event.preloadId}`);
customPreloadCallback?.onAdPreloaded?.(event);
},
// Called when an ad fails to preload.
onAdFailedToPreload: (error: LoadAdError) => {
console.error('Failed to preload rewarded ad:', error.message);
customPreloadCallback?.onAdFailedToPreload?.(error);
},
// Called when all preloaded ads in the buffer have been shown.
onAdsExhausted: () => {
console.log('Rewarded ad buffer exhausted.');
customPreloadCallback?.onAdsExhausted?.();
},
},
);
return started;
}
Um ID de pré-carregamento é uma string que identifica de forma exclusiva uma configuração de pré-carregamento de anúncios. Se você usar o ID do bloco de anúncios para uma única configuração de pré-carregamento no seu app, poderá usar esse ID como o ID de pré-carregamento. Se o app exigir vários pré-carregadores para o mesmo ID de bloco de anúncios, transmita strings diferentes para cada ID de pré-carregamento.
Quando o app busca um anúncio pré-carregado do buffer, o Google Mobile Ads SDK for React Native
solicita um anúncio de substituição em segundo plano para preencher o buffer novamente. Se não houver
anúncios pré-carregados no buffer, Google Mobile Ads SDK for React Native vai invocar o
onAdsExhausted.
Limites de cache de pré-carregamento
O Google Mobile Ads SDK for React Native aplica um limite em todo o app para o número total de anúncios pré-carregados em todos os blocos de anúncios e IDs de pré-carregamento:
- Limite padrão: o Google mantém no máximo seis anúncios pré-carregados na memória. Esse limite é compartilhado entre todos os formatos e IDs de pré-carregamento.
- Tamanho recomendado do buffer: dois para cada ID de pré-carregamento.
Se o app atingir o limite, as solicitações em segundo plano para anúncios pré-carregados serão pausadas até que os anúncios atuais sejam consultados no cache ou destruídos. O pré-carregamento também é pausado temporariamente enquanto um anúncio de tela cheia é exibido na tela.
Sondar e mostrar o anúncio
Antes de mostrar um anúncio, verifique se ele está disponível chamando o método
RewardedAdPreloader.isAdAvailable. Para recuperar o anúncio, chame o
método RewardedAdPreloader.pollAd.
Para detectar eventos de apresentação, como dispensas de anúncios ou falhas de exibição,
defina a propriedade adEventCallback na
instância do anúncio antes de chamar o método show:
O exemplo a seguir verifica a disponibilidade do anúncio e detecta eventos de apresentação antes de mostrá-lo:
export function showPreloadedRewardedAd(
preloadId: string,
onRewardEarned: (reward: Reward) => void,
customAdEventCallback?: FullScreenAdEventCallback,
) {
if (!RewardedAdPreloader.isAdAvailable(preloadId)) {
console.log('No preloaded rewarded ad available right now.');
return;
}
const ad = RewardedAdPreloader.pollAd(preloadId);
if (!ad) {
return;
}
ad.adEventCallback = {
// Called when the ad is presented on screen.
onAdShowedFullScreenContent: () => {
console.log('Preloaded rewarded ad showed full screen content.');
customAdEventCallback?.onAdShowedFullScreenContent?.();
},
// Called when the ad is closed by the user.
onAdDismissedFullScreenContent: () => {
console.log('Preloaded rewarded ad dismissed full screen content.');
customAdEventCallback?.onAdDismissedFullScreenContent?.();
ad.destroy();
},
// Called when presentation fails.
onAdFailedToShowFullScreenContent: (error) => {
console.error('Failed to show preloaded rewarded ad:', error);
customAdEventCallback?.onAdFailedToShowFullScreenContent?.(error);
ad.destroy();
},
// Called when an impression is recorded.
onAdImpression: () => {
console.log('Preloaded rewarded ad recorded an impression.');
customAdEventCallback?.onAdImpression?.();
},
// Called when the user taps the ad.
onAdClicked: () => {
console.log('Preloaded rewarded ad was clicked.');
customAdEventCallback?.onAdClicked?.();
},
// Called when the ad is estimated to have earned money.
onAdPaid: (adValue) => {
console.log(
`Preloaded rewarded ad paid: ${adValue.amountMicros}` +
` ${adValue.currencyCode}`,
);
customAdEventCallback?.onAdPaid?.(adValue);
},
};
ad.show(onRewardEarned);
}
Para liberar memória e recursos, chame o método ad.destroy nos callbacks
onAdDismissedFullScreenContent
e
onAdFailedToShowFullScreenContent.
Ler as informações da resposta
Para inspecionar as informações de resposta do próximo anúncio pré-carregado sem removê-lo do
cache, chame o método
RewardedAdPreloader.peekAdResponseInfo:
export function peekRewardedAdResponseInfo(
preloadId: string,
): ResponseInfo | null {
const responseInfo = RewardedAdPreloader.peekAdResponseInfo(preloadId);
if (responseInfo) {
console.log('Next preloaded rewarded ad response info:', responseInfo);
}
return responseInfo;
}
Se um anúncio estiver disponível, o método peekAdResponseInfo vai retornar um objeto ResponseInfo com informações sobre a origem do anúncio carregado e os adaptadores de rede.
Opcional: validar callbacks de verificação do lado do servidor
Se o app exigir parâmetros de verificação personalizados, como um ID do usuário ou
metadados de recompensa personalizados, em callbacks de verificação do lado do servidor (SSV),
defina a propriedade
serverSideVerificationOptions
na instância do anúncio pesquisado antes de chamar
show.
Os valores definidos são transmitidos aos parâmetros de consulta de callback de SSV:
userId: transmite para o parâmetro de consultauser_idpara identificar o usuário.customData: transmite para o parâmetro de consultacustom_datapara encaminhar metadados personalizados.
O exemplo a seguir define
ServerSideVerificationOptions
(customData e
userId) em um objeto de anúncio premiado
antes de mostrar um anúncio:
Limpar recursos
Se você não precisar mais mostrar anúncios de um ID de pré-carregamento específico pelo restante
da sessão, chame o método
RewardedAdPreloader.destroy. Esse processo interrompe o pré-carregamento do ID em questão e libera da memória os anúncios pré-carregados não utilizados.
O exemplo a seguir interrompe o pré-carregamento:
export function destroyRewardedAdPreloader(preloadId: string) {
RewardedAdPreloader.destroy(preloadId);
}
Depois que o usuário dispensar o anúncio ou se ele não for mostrado, destrua as instâncias individuais de anúncios consultados. Para mais detalhes, consulte Sondar e mostrar o anúncio.
Ver o exemplo completo
O exemplo de componente a seguir inicia o pré-carregamento na montagem, rastreia as contagens de anúncios disponíveis e fornece controles para mostrar anúncios premiados pré-carregados:
Substitua:
- REWARDED_AD_UNIT_ID pelo ID do bloco de anúncios.
- PRELOAD_ID pelo ID do pré-carregador.
Próximas etapas
Depois de integrar os anúncios premiados, confira os seguintes tópicos: