Annunci con premio

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

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:

  1. Carica l'annuncio con premio
  2. [Facoltativo] Convalida i callback della verifica lato server (SSV)
  3. Mostra l'annuncio con premio con callback del premio
  4. Ascolta gli eventi degli annunci con premio
  5. Pulisci l'annuncio con premio
  6. 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