Intersticial premiado é um tipo de formato de anúncio incentivado que permite oferecer recompensas por anúncios automaticamente durante as transições naturais do app. Ao contrário dos anúncios premiados, os usuários não para visualizar um intersticial premiado.
Pré-requisitos
- Leia o Guia explicativo.
Sempre faça testes com anúncios de teste
O exemplo de código a seguir contém o ID de um 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 anúncios de produção para todas as solicitações, o que torna o uso seguro deles.
No entanto, depois de registrar um aplicativo no na interface da Web do Ad Manager e criou seu próprio bloco de anúncios para uso no app, configure o dispositivo como um teste de forma explícita. dispositivo durante no desenvolvimento de software.
/21775744923/example/rewarded-interstitial
Inicializar o SDK de anúncios para dispositivos móveis
Antes de carregar os anúncios, faça com que seu app inicialize o SDK dos anúncios para dispositivos móveis chamando
MobileAds.Initialize()
: Isso precisa ser feito apenas 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 a chamada de retorno ocorra antes de carregar os anúncios como isso garante que todos os adaptadores de mediação sejam inicializados.
Implementação
As principais etapas para integrar anúncios intersticiais premiados são:
- Carregar o anúncio intersticial premiado
- [Opcional] Validar os callbacks de verificação do lado do servidor (SSV)
- Mostrar o anúncio intersticial premiado com callback de recompensa
- Detectar eventos de anúncios intersticiais premiados
- Limpar o anúncio intersticial premiado
- Pré-carregue o próximo anúncio intersticial premiado
Carregar o anúncio intersticial premiado
É possível carregar um anúncio intersticial premiado usando o Load()
estático
na classe RewardedInterstitialAd
. O método de carregamento requer um anúncio
ID da unidade de medida, um objeto AdManagerAdRequest
e um preenchimento
que é chamado quando o carregamento do anúncio é concluído ou apresenta falha. O modelo carregado
O objeto RewardedInterstitialAd
é fornecido como um parâmetro na conclusão
. O exemplo abaixo mostra como carregar um RewardedInterstitialAd
.
// This ad unit is configured to always serve test ads.
private string _adUnitId = "/21775744923/example/rewarded-interstitial";
private RewardedInterstitialAd _rewardedInterstitialAd;
/// <summary>
/// Loads the rewarded interstitial ad.
/// </summary>
public void LoadRewardedInterstitialAd()
{
// Clean up the old ad before loading a new one.
if (_rewardedInterstitialAd != null)
{
_rewardedInterstitialAd.Destroy();
_rewardedInterstitialAd = null;
}
Debug.Log("Loading the rewarded interstitial ad.");
// create our request used to load the ad.
var adRequest = new AdManagerAdRequest();
adRequest.Keywords.Add("unity-admob-sample");
// send the request to load the ad.
RewardedInterstitialAd.Load(_adUnitId, adRequest,
(RewardedInterstitialAd ad, LoadAdError error) =>
{
// if error is not null, the load request failed.
if (error != null || ad == null)
{
Debug.LogError("rewarded interstitial ad failed to load an ad " +
"with error : " + error);
return;
}
Debug.Log("Rewarded interstitial ad loaded with response : "
+ ad.GetResponseInfo());
_rewardedInterstitialAd = ad;
});
}
[Opcional] Validar os callbacks de verificação do lado do servidor (SSV)
Apps que exigem dados extras na verificação do lado do servidor
retornos de chamada devem usar o recurso de dados personalizados dos anúncios intersticiais premiados.
Qualquer valor de string definido em um objeto de anúncio premiado é transmitido ao custom_data
.
parâmetro de consulta do retorno de chamada de SSV. Se nenhum valor de dados personalizado for definido, o
O valor do parâmetro de consulta custom_data
não será incluído no callback de SSV.
O exemplo de código a seguir demonstra como definir as opções de SSV após o o anúncio intersticial premiado é carregado.
// send the request to load the ad.
RewardedInterstitialAd.Load(_adUnitId,
adRequest,
(RewardedInterstitialAd ad, LoadAdError error) =>
{
// If the operation failed, an error is returned.
if (error != null || ad == null)
{
Debug.LogError("Rewarded interstitial ad failed to load an ad " +
" with error : " + error);
return;
}
// If the operation completed successfully, no error is returned.
Debug.Log("Rewarded interstitial ad loaded with response : " +
ad.GetResponseInfo());
// Create and pass the SSV options to the rewarded ad.
var options = new ServerSideVerificationOptions
.Builder()
.SetCustomData("SAMPLE_CUSTOM_DATA_STRING")
.Build()
ad.SetServerSideVerificationOptions(options);
});
Se você quiser definir uma string de prêmio personalizada, faça isso antes de mostrar o anúncio.
Mostrar o anúncio intersticial premiado com callback de recompensa
Ao apresentar seu anúncio, você precisa fornecer um callback para processar a recompensa por
o usuário. Os anúncios só podem ser exibidos uma vez por carregamento. Use o método CanShowAd()
para
verificar se o anúncio está pronto para ser exibido.
O código a seguir apresenta o melhor método para exibir um anúncio premiado anúncio intersticial.
public void ShowRewardedInterstitialAd()
{
const string rewardMsg =
"Rewarded interstitial ad rewarded the user. Type: {0}, amount: {1}.";
if (rewardedInterstitialAd != null && rewardedInterstitialAd.CanShowAd())
{
rewardedInterstitialAd.Show((Reward reward) =>
{
// TODO: Reward the user.
Debug.Log(String.Format(rewardMsg, reward.Type, reward.Amount));
});
}
}
Detectar eventos de anúncios intersticiais premiados
Para personalizar ainda mais o comportamento de seu anúncio, você pode vincular vários eventos no ciclo de vida do anúncio. Ouça esses eventos registrando um delegado conforme mostrado abaixo.
private void RegisterEventHandlers(RewardedInterstitialAd ad)
{
// Raised when the ad is estimated to have earned money.
ad.OnAdPaid += (AdValue adValue) =>
{
Debug.Log(String.Format("Rewarded interstitial ad paid {0} {1}.",
adValue.Value,
adValue.CurrencyCode));
};
// Raised when an impression is recorded for an ad.
ad.OnAdImpressionRecorded += () =>
{
Debug.Log("Rewarded interstitial ad recorded an impression.");
};
// Raised when a click is recorded for an ad.
ad.OnAdClicked += () =>
{
Debug.Log("Rewarded interstitial ad was clicked.");
};
// Raised when an ad opened full screen content.
ad.OnAdFullScreenContentOpened += () =>
{
Debug.Log("Rewarded interstitial ad full screen content opened.");
};
// Raised when the ad closed full screen content.
ad.OnAdFullScreenContentClosed += () =>
{
Debug.Log("Rewarded interstitial ad full screen content closed.");
};
// Raised when the ad failed to open full screen content.
ad.OnAdFullScreenContentFailed += (AdError error) =>
{
Debug.LogError("Rewarded interstitial ad failed to open " +
"full screen content with error : " + error);
};
}
Limpar o anúncio intersticial premiado
Quando terminar de usar uma RewardedInterstitialAd
, chame o método
Destroy()
antes de descartar sua referência a ele:
_rewardedInterstitialAd.Destroy();
Isso notifica o plug-in de que o objeto não é mais usado e que a memória ocupações podem ser recuperadas. A falha em chamar esse método resulta em vazamentos de memória.
Pré-carregue o próximo anúncio intersticial premiado
RewardedInterstitialAd
é um objeto de uso único. Isso significa que uma vez que um anúncio premiado
anúncio intersticial for exibido, o objeto não poderá ser usado novamente. Para solicitar outra
anúncio intersticial premiado, você precisará carregar um novo RewardedInterstitialAd
objeto.
Para preparar um anúncio intersticial premiado para a próxima oportunidade de impressão,
pré-carregue o anúncio intersticial premiado assim que os eventos OnAdFullScreenContentClosed
ou
OnAdFullScreenContentFailed
evento de anúncio é gerado.
private void RegisterReloadHandler(RewardedInterstitialAd ad)
{
// Raised when the ad closed full screen content.
ad.OnAdFullScreenContentClosed += ()
{
Debug.Log("Rewarded interstitial ad full screen content closed.");
// Reload the ad so that we can show another as soon as possible.
LoadRewardedInterstitialAd();
};
// Raised when the ad failed to open full screen content.
ad.OnAdFullScreenContentFailed += (AdError error) =>
{
Debug.LogError("Rewarded interstitial ad failed to open " +
"full screen content with error : " + error);
// Reload the ad so that we can show another as soon as possible.
LoadRewardedInterstitialAd();
};
}
Outros recursos
- Exemplo do HelloWorld: Uma implementação mínima de todos os formatos de anúncio.