Os anúncios intersticiais são anúncios em tela cheia que cobrem a interface do app host. Eles geralmente são exibidos em pontos de transição naturais no fluxo de um app, como durante a pausa entre os níveis de um jogo. Quando um app exibe um anúncio intersticial, o usuário tem a opção de tocar no anúncio e continuar para o destino ou fechá-lo e retornar ao app. Estudo de caso.
Este guia explica como integrar anúncios intersticiais a um aplicativo do Unity.
Pré-requisitos
- Concluir o Guia de primeiros passos.
Sempre faça testes com anúncios de teste
O exemplo de código abaixo contém um ID de bloco de anúncios que pode ser usado para solicitar anúncios de teste. Ele foi configurado especialmente para retornar anúncios de teste em vez de anúncios de produção para cada solicitação, o que torna o uso seguro.
No entanto, depois de registrar um app na IU da AdMob e criar seus próprios IDs de bloco de anúncios para uso no app, será necessário configurar explicitamente seu dispositivo como um dispositivo de teste durante o desenvolvimento.
Android
ca-app-pub-3940256099942544/1033173712
iOS
ca-app-pub-3940256099942544/4411468910
Inicializar o SDK de anúncios para dispositivos móveis
Antes de carregar anúncios, chame MobileAds.Initialize()
para que o app inicialize o SDK de 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 até que o callback ocorra antes de carregar os anúncios. Isso garantirá que todos os adaptadores de mediação sejam inicializados.
Implementação
As principais etapas para integrar anúncios intersticiais são:
- Carregar o anúncio intersticial
- Mostrar o anúncio intersticial
- Ouvir eventos de anúncios intersticiais
- Limpar o anúncio intersticial
- Pré-carregar o próximo anúncio intersticial
Carregar o anúncio intersticial
É possível carregar um anúncio intersticial usando o método estático Load()
na classe InterstitialAd
. O método de carregamento exige um ID de bloco de anúncios, um objeto AdRequest
e um gerenciador de conclusão que é chamado quando o carregamento do anúncio é concluído ou falha. O objeto InterstitialAd
carregado é fornecido como um parâmetro no gerenciador de conclusão. O exemplo abaixo mostra como carregar um InterstitialAd
.
// These ad units are configured to always serve test ads.
#if UNITY_ANDROID
private string _adUnitId = "ca-app-pub-3940256099942544/1033173712";
#elif UNITY_IPHONE
private string _adUnitId = "ca-app-pub-3940256099942544/4411468910";
#else
private string _adUnitId = "unused";
#endif
private InterstitialAd interstitialAd;
/// <summary>
/// Loads the interstitial ad.
/// </summary>
public void LoadInterstitialAd()
{
// Clean up the old ad before loading a new one.
if (interstitialAd != null)
{
interstitialAd.Destroy();
interstitialAd = null;
}
Debug.Log("Loading the interstitial ad.");
// create our request used to load the ad.
var adRequest = new AdRequest();
adRequest.Keywords.Add("unity-admob-sample");
// send the request to load the ad.
InterstitialAd.Load(_adUnitId, adRequest,
(InterstitialAd ad, LoadAdError error) =>
{
// if error is not null, the load request failed.
if (error != null || ad == null)
{
Debug.LogError("interstitial ad failed to load an ad " +
"with error : " + error);
return;
}
Debug.Log("Interstitial ad loaded with response : "
+ ad.GetResponseInfo());
interstitialAd = ad;
});
}
Mostrar o anúncio intersticial
Para mostrar um anúncio intersticial carregado, chame o método Show()
na instância InterstitialAd
. Os anúncios podem ser exibidos uma vez por carregamento. Use o método CanShowAd()
para verificar se o anúncio está pronto para ser exibido.
/// <summary>
/// Shows the interstitial ad.
/// </summary>
public void ShowAd()
{
if (interstitialAd != null && interstitialAd.CanShowAd())
{
Debug.Log("Showing interstitial ad.");
interstitialAd.Show();
}
else
{
Debug.LogError("Interstitial ad is not ready yet.");
}
}
Ouvir eventos de anúncios intersticiais
Para personalizar ainda mais o comportamento do seu anúncio, você pode se envolver em vários eventos no ciclo de vida do anúncio: abertura, fechamento e assim por diante. Ouça esses eventos registrando um representante, conforme mostrado abaixo.
private void RegisterEventHandlers(InterstitialAd ad)
{
// Raised when the ad is estimated to have earned money.
ad.OnAdPaid += (AdValue adValue) =>
{
Debug.Log(String.Format("Interstitial ad paid {0} {1}.",
adValue.Value,
adValue.CurrencyCode));
};
// Raised when an impression is recorded for an ad.
ad.OnAdImpressionRecorded += () =>
{
Debug.Log("Interstitial ad recorded an impression.");
};
// Raised when a click is recorded for an ad.
ad.OnAdClicked += () =>
{
Debug.Log("Interstitial ad was clicked.");
};
// Raised when an ad opened full screen content.
ad.OnAdFullScreenContentOpened += () =>
{
Debug.Log("Interstitial ad full screen content opened.");
};
// Raised when the ad closed full screen content.
ad.OnAdFullScreenContentClosed += () =>
{
Debug.Log("Interstitial ad full screen content closed.");
};
// Raised when the ad failed to open full screen content.
ad.OnAdFullScreenContentFailed += (AdError error) =>
{
Debug.LogError("Interstitial ad failed to open full screen content " +
"with error : " + error);
};
}
Limpar o anúncio intersticial
Quando terminar de usar um InterstitialAd
, chame o método Destroy()
antes de descartar sua referência a ele:
interstitialAd.Destroy();
Isso notifica o plug-in de que o objeto não é mais usado e de que a memória ocupada pode ser recuperada. A não chamada desse método resulta em vazamentos de memória.
Pré-carregar o próximo anúncio intersticial
Os anúncios intersticiais são um objeto de uso único. Isso significa que, depois que um anúncio intersticial é exibido,
o objeto não pode ser usado novamente. Para solicitar outro anúncio intersticial,
você precisará criar um novo objeto InterstitialAd
.
Para preparar um anúncio intersticial para a próxima oportunidade de impressão, pré-carregue o anúncio intersticial assim que o evento OnAdFullScreenContentClosed
ou OnAdFullScreenContentFailed
for gerado.
private void RegisterReloadHandler(InterstitialAd ad)
{
// Raised when the ad closed full screen content.
ad.OnAdFullScreenContentClosed += ()
{
Debug.Log("Interstitial Ad full screen content closed.");
// Reload the ad so that we can show another as soon as possible.
LoadInterstitialAd();
};
// Raised when the ad failed to open full screen content.
ad.OnAdFullScreenContentFailed += (AdError error) =>
{
Debug.LogError("Interstitial ad failed to open full screen content " +
"with error : " + error);
// Reload the ad so that we can show another as soon as possible.
LoadInterstitialAd();
};
}
Algumas práticas recomendadas
- Avalie se os anúncios intersticiais são o tipo certo para seu aplicativo.
- Anúncios intersticiais funcionam melhor em apps com pontos de transição naturais. A conclusão de uma tarefa em um app, como o compartilhamento de uma imagem ou a conclusão de uma fase do jogo, cria esse ponto. Como o usuário espera uma interrupção na ação, é fácil apresentar um anúncio intersticial sem prejudicar a experiência. Considere em quais pontos do fluxo de trabalho do app você exibirá anúncios intersticiais e como o usuário provavelmente responderá.
- Lembre-se de pausar a ação ao exibir um anúncio intersticial.
- Existem vários tipos diferentes de anúncios intersticiais: de texto, gráficos, em vídeo e muito mais. É importante garantir que, quando seu app exibir um anúncio intersticial, ele também suspenda o uso de alguns recursos para permitir que o anúncio os aproveite. Por exemplo, ao fazer a chamada para exibir um
anúncio intersticial, pause qualquer saída de áudio que estiver sendo produzida pelo app.
Você pode retomar a reprodução dos sons no evento
OnAdFullScreenContentClosed()
, que será invocado quando o usuário terminar de interagir com o anúncio. Além disso, considere a suspensão temporária de qualquer tarefa intensa de computação (como um loop de jogo) enquanto o anúncio estiver sendo exibido. Isso garante que o usuário não tenha gráficos lentos ou que não respondem, ou vídeos travados. - Não sobrecarregue o usuário com anúncios.
- Embora aumentar a frequência de anúncios intersticiais no seu aplicativo possa parecer uma ótima maneira de aumentar a receita, isso também pode prejudicar a experiência do usuário e diminuir as taxas de cliques. Certifique-se de que os usuários não sejam interrompidos com tanta frequência que não possam mais aproveitar o uso do seu app.
Outros recursos
Amostras
- Exemplo de HelloWorld: implementação mínima de todos os formatos de anúncio.