Anúncios premiados

Selecione a plataforma: Android iOS Unity Flutter

Anúncios premiados são aqueles que dão aos usuários a opção de interagir com eles em troca de recompensas no app. Este guia mostra como integrar anúncios premiados da AdMob a um app Unity.

Este guia explica como integrar anúncios premiados a um app Unity.

Pré-requisitos

Sempre usar anúncios de teste

O exemplo de código a seguir contém um ID de bloco de anúncios que você pode usar para solicitar anúncios de teste. Ele foi configurado especialmente para retornar anúncios de teste em vez de anúncios de produção em todas as solicitações, o que garante a segurança.

No entanto, depois de registrar um app na interface da Web do Ad Manager e criar seus próprios IDs de bloco de anúncios para usar nele, configure explicitamente seu aparelho como um dispositivo de teste durante o desenvolvimento.

/21775744923/example/rewarded

Inicializar o SDK dos anúncios para dispositivos móveis

Antes de carregar anúncios, chame MobileAds.Initialize() para que o app inicialize o SDK dos anúncios para dispositivos móveis. Isso só precisa ser feito uma vez, de preferência na inicialização do app.

using GoogleMobileAds;
using GoogleMobileAds.Api;

public class GoogleMobileAdsDemoScript : MonoBehaviour
{
    public void Start()
    {
        // Initialize the Google Mobile Ads SDK.
        MobileAds.Initialize((InitializationStatus initStatus) =>
        {
            // This callback is called once the MobileAds SDK is initialized.
        });
    }
}

Se você estiver usando a mediação, aguarde o callback antes de carregar anúncios, porque isso garante a inicialização de todos os adaptadores de mediação.

Carregar o anúncio premiado

É possível carregar um anúncio premiado usando o método estático Load() na classe RewardedAd. O objeto RewardedAd carregado é fornecido como um parâmetro no gerenciador de conclusão. O exemplo a seguir carrega um anúncio premiado:

// Create our request used to load the ad.
var adRequest = new AdRequest();

// Send the request to load the ad.
RewardedAd.Load("AD_UNIT_ID", adRequest, (RewardedAd ad, LoadAdError error) =>
{
    if (error != null)
    {
        // The ad failed to load.
        return;
    }
    // The ad loaded successfully.
});

Substitua AD_UNIT_ID pelo ID do seu bloco de anúncios.

[Opcional] Validar callbacks de verificação do lado do servidor (SSV)

Os apps que exigem dados extras em callbacks de verificação do lado do servidor precisam usar o recurso de dados personalizados dos anúncios premiados. Qualquer valor de string definido em um objeto de anúncio premiado é transmitido ao parâmetro de consulta custom_data do callback de SSV. Se nenhum valor de dados personalizado for definido, o valor do parâmetro de consulta custom_data não vai estar presente no callback de SSV.

O exemplo de código a seguir demonstra como definir as opções de SSV depois que o anúncio premiado é carregado.

// Create and pass the SSV options to the rewarded ad.
var options = new ServerSideVerificationOptions
{
    CustomData = ""SAMPLE_CUSTOM_DATA_STRING""
};

rewardedAd.SetServerSideVerificationOptions(options);

Substitua SAMPLE_CUSTOM_DATA_STRING pelos seus dados personalizados.

Se quiser definir a string de recompensa personalizada, faça isso antes de mostrar o anúncio.

Mostrar o anúncio premiado com o callback de recompensa

Ao apresentar seu anúncio, você precisa fornecer um callback para processar a recompensa do usuário. Os anúncios só podem aparecer uma vez por carregamento. Use o método CanShowAd() para verificar se o anúncio está pronto para ser veiculado.

O código a seguir apresenta o melhor método para exibir um anúncio premiado.

if (rewardedAd != null && rewardedAd.CanShowAd()) { rewardedAd.Show((Reward reward) => { // O anúncio foi mostrado e o usuário recebeu uma recompensa. }); }

Detectar eventos de anúncios premiados

Para personalizar ainda mais o comportamento do seu anúncio, conecte-o a vários eventos no ciclo de vida dele. O código a seguir detecta eventos de anúncio:

rewardedAd.OnAdPaid += (AdValue adValue) => { // Mostrado quando é provável que o anúncio tenha gerado dinheiro. }; rewardedAd.OnAdImpressionRecorded += () => { // Mostrado quando uma impressão é gravada para um anúncio. }; rewardedAd.OnAdClicked += () => { // Mostrado quando um clique é gravado para um anúncio. }; rewardedAd.OnAdFullScreenContentOpened += () => { // Mostrado quando o anúncio abre conteúdo em tela cheia. }; rewardedAd.OnAdFullScreenContentClosed += () => { // Mostrado quando o anúncio fecha conteúdo em tela cheia. }; rewardedAd.OnAdFullScreenContentFailed += (AdError error) => { // Mostrado quando o anúncio não consegue abrir conteúdo em tela cheia. };

Limpar o anúncio premiado

Quando terminar de usar um RewardedAd, chame o método Destroy() antes de descartar a referência a ele:

if (rewardedAd != null) { rewardedAd.Destroy(); }

Isso notifica o plug-in de que o objeto não é mais usado e que é possível recuperar a memória que ele ocupa. Se esse método não for chamado, haverá vazamentos de memória.

Pré-carregar o próximo anúncio premiado

RewardedAd é um objeto de uso único. Isso significa que, depois que um anúncio premiado é mostrado, o objeto não pode ser usado novamente. Para solicitar outro anúncio premiado, crie um novo objeto RewardedAd.

Para preparar um anúncio premiado para a próxima oportunidade de impressão, faça o pré-carregamento dele assim que o evento de anúncio OnAdFullScreenContentClosed ou OnAdFullScreenContentFailed for gerado.

rewardedAd.OnAdFullScreenContentClosed += () =>
{
    // Reload the ad so that we can show another as soon as possible.
    var adRequest = new AdRequest();
    RewardedAd.Load("AD_UNIT_ID", adRequest, (RewardedAd ad, LoadAdError error) =>
    {
        // Handle ad loading here.
    });
};

Outros recursos