Gli annunci con premio sono annunci con cui gli utenti hanno la possibilità di interagire in cambio per i premi in-app. Questa guida illustra come integrare gli annunci con premio AdMob in un'app Unity.
Questa guida spiega come integrare gli annunci con premio in un'app Unity.
Prerequisiti
- Completa la Guida introduttiva.
Effettua sempre test con annunci di prova
Il seguente codice di esempio contiene un ID unità pubblicitaria che puoi utilizzare per richiedere annunci di prova. È stato appositamente configurato per restituire annunci di prova anziché annunci di produzione per ogni richiesta, quindi è possibile usarla in sicurezza.
Tuttavia, dopo aver registrato un'app nella nell'interfaccia web di Ad Manager e hai creato la tua unità pubblicitaria ID da utilizzare nella tua app, configura il dispositivo come prova in modo esplicito dispositivo durante sviluppo del prodotto.
/21775744923/example/rewarded
Inizializza l'SDK Mobile Ads
Prima di caricare gli annunci, chiedi all'app di inizializzare l'SDK Mobile Ads chiamando
MobileAds.Initialize()
. Questa operazione deve essere eseguita una sola volta, idealmente al momento del lancio dell'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 utilizzi la mediazione, attendi che venga eseguito il callback prima di caricare gli annunci Ciò garantirà che tutti gli adattatori di mediazione siano inizializzati.
Implementazione
I passaggi principali per integrare gli annunci con premio sono:
- Carica l'annuncio con premio
- [Facoltativo] Convalida i callback della verifica lato server (SSV)
- Mostra l'annuncio con premio con callback del premio
- Ascolta gli eventi degli annunci con premio
- Pulisci l'annuncio con premio
- Precarica il prossimo annuncio con premio
Carica l'annuncio con premio
Il caricamento di un annuncio con premio viene eseguito utilizzando il metodo Load()
statico nella
RewardedAd
corso. L'oggetto RewardedAd
caricato viene fornito come
nel gestore del completamento. L'esempio seguente mostra come caricare
RewardedAd
.
// This ad unit is configured to always serve test ads.
private string _adUnitId = "/21775744923/example/rewarded";
private RewardedAd _rewardedAd;
/// <summary>
/// Loads the rewarded ad.
/// </summary>
public void LoadRewardedAd()
{
// Clean up the old ad before loading a new one.
if (_rewardedAd != null)
{
_rewardedAd.Destroy();
_rewardedAd = null;
}
Debug.Log("Loading the rewarded ad.");
// create our request used to load the ad.
var adRequest = new AdManagerAdRequest();
// send the request to load the ad.
RewardedAd.Load(_adUnitId, adRequest,
(RewardedAd ad, LoadAdError error) =>
{
// if error is not null, the load request failed.
if (error != null || ad == null)
{
Debug.LogError("Rewarded ad failed to load an ad " +
"with error : " + error);
return;
}
Debug.Log("Rewarded ad loaded with response : "
+ ad.GetResponseInfo());
_rewardedAd = ad;
});
}
[Facoltativo] Convalida i callback della verifica lato server (SSV)
App che richiedono dati aggiuntivi per la verifica lato server
i callback devono usare la funzionalità dei dati personalizzati degli annunci con premio.
Qualsiasi valore di stringa impostato su un oggetto annuncio con premio viene trasmesso a custom_data
parametro di query del callback SSV. Se non viene impostato alcun valore per i dati personalizzati,
Il valore del parametro di query custom_data
non sarà presente nel callback SSV.
Il seguente esempio di codice mostra come impostare le opzioni SSV dopo il caricamento dell'annuncio con premio.
// send the request to load the ad.
RewardedAd.Load(_adUnitId, adRequest, (RewardedAd ad, LoadAdError error) =>
{
// If the operation failed, an error is returned.
if (error != null || ad == null)
{
Debug.LogError("Rewarded ad failed to load an ad with error : " + error);
return;
}
// If the operation completed successfully, no error is returned.
Debug.Log("Rewarded 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 vuoi impostare la stringa per il premio personalizzata, devi farlo prima di mostrare il parametro annuncio.
Mostrare l'annuncio con premio con il callback del premio
Quando presenti il tuo annuncio, devi richiamarti per gestire il premio per
per l'utente. Gli annunci possono essere mostrati una sola volta per caricamento. Usa il metodo CanShowAd()
per
verificare che l'annuncio sia pronto per essere pubblicato.
Il seguente codice presenta il metodo migliore per visualizzare un annuncio con premio.
public void ShowRewardedAd()
{
const string rewardMsg =
"Rewarded ad rewarded the user. Type: {0}, amount: {1}.";
if (rewardedAd != null && rewardedAd.CanShowAd())
{
rewardedAd.Show((Reward reward) =>
{
// TODO: Reward the user.
Debug.Log(String.Format(rewardMsg, reward.Type, reward.Amount));
});
}
}
Ascoltare eventi di annunci con premio
Per personalizzare ulteriormente il comportamento dell'annuncio, puoi collegarti a una serie di eventi nel ciclo di vita dell'annuncio: apertura, chiusura e così via. Ascolta per questi eventi registrando un delegato, come mostrato di seguito.
private void RegisterEventHandlers(RewardedAd ad)
{
// Raised when the ad is estimated to have earned money.
ad.OnAdPaid += (AdValue adValue) =>
{
Debug.Log(String.Format("Rewarded ad paid {0} {1}.",
adValue.Value,
adValue.CurrencyCode));
};
// Raised when an impression is recorded for an ad.
ad.OnAdImpressionRecorded += () =>
{
Debug.Log("Rewarded ad recorded an impression.");
};
// Raised when a click is recorded for an ad.
ad.OnAdClicked += () =>
{
Debug.Log("Rewarded ad was clicked.");
};
// Raised when an ad opened full screen content.
ad.OnAdFullScreenContentOpened += () =>
{
Debug.Log("Rewarded ad full screen content opened.");
};
// Raised when the ad closed full screen content.
ad.OnAdFullScreenContentClosed += () =>
{
Debug.Log("Rewarded ad full screen content closed.");
};
// Raised when the ad failed to open full screen content.
ad.OnAdFullScreenContentFailed += (AdError error) =>
{
Debug.LogError("Rewarded ad failed to open full screen content " +
"with error : " + error);
};
}
Pulisci l'annuncio con premio
Al termine di un RewardedAd
, assicurati di chiamare il metodo Destroy()
prima di eliminarne il riferimento:
_rewardedAd.Destroy();
In questo modo, il plug-in viene informato che l'oggetto non è più utilizzato e la memoria che possono essere rivendicati. La mancata chiamata di questo metodo determina perdite di memoria.
Precarica il prossimo annuncio con premio
RewardedAd
è un oggetto monouso. Ciò significa che,
una volta mostrato un annuncio con premio,
non può essere riutilizzato. Per richiedere un altro annuncio con premio:
dovrai creare un nuovo oggetto RewardedAd
.
Per preparare un annuncio con premio per la prossima opportunità di impressione, precarica il metodo
annuncio con premio una volta che l'OnAdFullScreenContentClosed
o
È stato generato OnAdFullScreenContentFailed
evento dell'annuncio.
private void RegisterReloadHandler(RewardedAd ad)
{
// Raised when the ad closed full screen content.
ad.OnAdFullScreenContentClosed += () =>
{
Debug.Log("Rewarded Ad full screen content closed.");
// Reload the ad so that we can show another as soon as possible.
LoadRewardedAd();
};
// Raised when the ad failed to open full screen content.
ad.OnAdFullScreenContentFailed += (AdError error) =>
{
Debug.LogError("Rewarded ad failed to open full screen content " +
"with error : " + error);
// Reload the ad so that we can show another as soon as possible.
LoadRewardedAd();
};
}
Risorse aggiuntive
- Esempio di HelloWorld: Implementazione minima di tutti i formati degli annunci.