Questa guida illustra come utilizzare l'annuncio del plug-in Unity degli annunci per dispositivi mobili di Google I posizionamenti consentono di creare e visualizzare annunci per la tua app.
Prerequisiti
Unity 2017.4 o versioni successive.
Scarica e importare la build iniziale del plug-in GMA Unity.
Imposta l'ID app AdMob nella Editor Unity
Inizializzare l'SDK Google Mobile Ads
Prima di caricare gli annunci, inizializza l'SDK Mobile Ads chiamando
MobileAds.Initialize()
, con una richiamata a Action<InitializationStatus>
. Questo
deve essere fatto una sola volta, idealmente al momento del lancio dell'app.
using GoogleMobileAds.Api;
using System.Collections.Generic;
...
public class GoogleMobileAdsDemoScript : MonoBehaviour
{
...
public void Start()
{
// Initialize the Mobile Ads SDK.
MobileAds.Initialize((initStatus) =>
{
// SDK initialization is complete
});
...
}
}
Creazione di posizionamenti
Il primo passaggio per visualizzare un banner con gli annunci per cellulari di Google è creare e configurare un posizionamento dell'annuncio. Puoi selezionare un posizionamento dell'annuncio banner, Interstitial o formato con premio da Asset > Annunci per cellulari di Google > Annuncio Posizionamenti nell'editor Unity. Tre posizionamenti degli annunci dimostrativi vengono configurate e pronte per l'uso.
Per aggiungere un nuovo posizionamento, fai clic sul pulsante Aggiungi nuovo posizionamento alla fine del dall'elenco. Puoi configurare il posizionamento dell'annuncio dalla vista di ispezione.
Configurazione del posizionamento dell'annuncio
Ogni posizionamento ha le seguenti proprietà:
- Nome posizionamento
- Nome del posizionamento. Utilizzato per identificare i posizionamenti durante l'impostazione degli annunci in una scena.
- Formato dell'annuncio
- Banner, con premio, interstitial. Tipo di annuncio.
- ID unità pubblicitaria
- Fornisci il tuo ID unità pubblicitaria banner per Android e iOS. Devi fornire all'indirizzo almeno un ID unità pubblicitaria.
- Permanente tra le scene
- Se questa opzione è selezionata, il banner continuerà a essere visualizzato sullo schermo indipendentemente dalla scena
modifiche (stesso comportamento di
DontDestroyOnLoad
). - Caricamento automatico abilitato
- Se questa opzione è selezionata, un annuncio verrà caricato automaticamente quando una scena associata a viene caricato il posizionamento dell'annuncio.
Il seguente screenshot mostra un esempio di posizionamento dell'annuncio denominato My Awesome Banner.
Aggiunta di un AdGameObject alla scena
Puoi aggiungere un AdGameObject per i formati banner, interstitial o con premio al tuo scena utilizzando GameObject > Annunci per dispositivi mobili Google nell'editor Unity. Seleziona il per aggiungere un posizionamento alla scena attiva.
Dopo aver aggiunto un AdGameObject alla scena, vedrai un oggetto GameObject che rappresentano l'annuncio nella visualizzazione Gerarchia dell'Editor Unity.
Puoi modificare il nome del posizionamento modificando il nome dell'oggetto GameObject per trovare le regole. Il seguente screenshot mostra un esempio di AdGameObject denominato Annuncio banner.
Impostazioni di AdGameObject
Puoi configurare AdGameObject nella scena dall'ispettore nelle impostazioni del componente Ad Game Object (Script).
- Posizionamento
Seleziona il posizionamento dell'annuncio dall'elenco a discesa dei posizionamenti configurati. La contiene solo unità pubblicitarie per il formato corretto. Ad esempio, per un annuncio banner gli oggetti di gioco nel menu a discesa mostreranno solo i posizionamenti degli annunci banner configurati.
- Configurazione
BannerAdGameObject
(solo banner)
- Dimensioni: seleziona le dimensioni del banner che vuoi utilizzare.
- Il banner adattivo ancorato offre alcune altre opzioni:
- .
- Orientamento: seleziona l'orientamento del dispositivo utilizzato per calcolare l'annuncio. altezza.
- Utilizza larghezza a schermo intero: se questa opzione è selezionata, il banner occuperà a schermo intero. È possibile regolare la percentuale di larghezza dello schermo (50~99%) se deseleziona l'opzione Utilizza larghezza a schermo intero.
- Personalizzato ti consente di specificare la larghezza e l'altezza del banner.
- Il banner adattivo ancorato offre alcune altre opzioni:
- Posizione dell'annuncio: seleziona la posizione in cui posizionare il banner.
Callback
Puoi implementare funzioni che corrispondano alle richiamate degli annunci. Ad esempio, se che vuoi gestire quando un annuncio banner non viene caricato:
Crea una funzione compatibile con il callback dell'annuncio.
public void OnBannerAdFailedToLoad(string reason) { Debug.Log("Banner ad failed to load: " + reason); }
Collega lo script che contiene la funzione precedente a qualsiasi GameObject nella scena.
Fai clic sul pulsante +, poi trascina e rilascia il GameObject che hai collegato dello script.
Seleziona la funzione da collegare al callback dell'annuncio. Per callback degli annunci con parametri, seleziona la funzione per accettare le per poter ottenere il valore parametro dall'SDK.
Usa AdGameObject dallo script
Recupera l'istanza di AdGameObject dallo script
Tutti gli oggetti AdGameObject
hanno il metodo di convenienza LoadAd()
. Questo verrà caricato
un annuncio con un elemento AdRequest
semplice e senza targeting. Per applicare il targeting, devi utilizzare
LoadAd(AdRequest adRequest)
utilizzando la tua richiesta di annuncio configurata.
Per ottenere l'istanza di un AdGameObject utilizza il seguente metodo per ogni formato:
Banner
MobileAds.Instance.GetAd<BannerAdGameObject>("AD_GAMEOBJECT_NAME");
L'oggetto BannerAdGameObject
restituito ha anche metodi pratici
Hide()
e Show()
.
Interstitial
MobileAds.Instance.GetAd<InterstitialAdGameObject>("AD_GAMEOBJECT_NAME");
L'oggetto InterstitialAdGameObject
restituito ha un metodo pratico
ShowIfLoaded()
.
Con premio
MobileAds.Instance.GetAd<RewardedAdGameObject>("AD_GAMEOBJECT_NAME");
L'oggetto RewardedAdGameObject
restituito ha un metodo pratico
ShowIfLoaded()
.
Ad esempio, puoi ottenere un'istanza di un BannerAdGameObject
e caricarla come
che segue:
using UnityEngine;
using GoogleMobileAds.Api;
using GoogleMobileAds.Placement;
public class BannerTestScript : MonoBehaviour
{
BannerAdGameObject bannerAd;
void Start()
{
bannerAd = MobileAds.Instance
.GetAd<BannerAdGameObject>("AD_GAMEOBJECT_NAME");
bannerAd.LoadAd();
...
}
...
}
Se esiste un BannerAdGameObject
denominato BannerAd, puoi ottenere un'istanza
nel seguente modo:
MobileAds.Instance.GetAd<BannerAdGameObject>("BannerAd");
Accedere all'oggetto annuncio sottostante in AdGameObject
Questi snippet mostrano come accedere all'oggetto annuncio sottostante associato con AdGameObject.
Banner
BannerAdGameObject bannerAd = MobileAds.Instance
.GetAd<BannerAdGameObject>("AD_GAMEOBJECT_NAME");
// Access BannerView object
BannerView bannerView = bannerAd.BannerView;
Interstitial
InterstitialAdGameObject interstitialAdGameObject = MobileAds.Instance
.GetAd<InterstitialAdGameObject>("AD_GAMEOBJECT_NAME");
// Access InterstitialAd object
InterstitialAd interstitialAd = interstitialAdGameObject.InterstitialAd;
Con premio
RewardedAdGameObject rewardedAdGameObject = MobileAds.Instance
.Get<RewardedAdGameObject>("AD_GAMEOBJECT_NAME");
// Access RewardedAd object
RewardedAd rewardedAd = rewardedAdGameObject.RewardedAd;
Esempi
Mostrare un annuncio interstitial
Ecco un esempio di come configurare un gioco da caricare e mostrare un interstitial di un annuncio tramite AdGameObject.
Aggiungi un InterstitialAdGameObject
alla scena e attiva il caricamento automatico
Attivato, in modo che l'annuncio venga caricato automaticamente al caricamento della scena.
Dopodiché, assicurati di aver inizializzato l'SDK utilizzando come segue. Tieni presente che la casella di controllo Carica in AdGameObject non funzionerà se dimentichi di inizializzare l'SDK.
Quindi mostra un annuncio interstitial tra una transizione sullo schermo chiamando il metodo
Funzione InterstitialAdGameObject.ShowIfLoaded()
. Il seguente codice mostra un
esempio di visualizzazione di un annuncio interstitial tra una transizione di scena e l'altra.
using UnityEngine;
using UnityEngine.SceneManagement;
using GoogleMobileAds.Api;
using GoogleMobileAds.Placement;
public class MainScene : MonoBehaviour
{
InterstitialAdGameObject interstitialAd;
void Start()
{
interstitialAd = MobileAds.Instance
.GetAd<InterstitialAdGameObject>("interstitial");
MobileAds.Initialize((initStatus) => {
Debug.Log("Initialized MobileAds");
});
}
public void OnClickShowGameSceneButton()
{
// Display an interstitial ad
interstitialAd.ShowIfLoaded();
// Load a scene named "GameScene"
SceneManager.LoadScene("GameScene");
}
}
Poiché hai abilitato la funzione Caricamento automatico nel posizionamento dell'annuncio, non richiedere esplicitamente un annuncio. Quando la scena cambia, viene mostrato un annuncio interstitial se una è pronta.
Se vuoi richiedere manualmente un annuncio, disattiva la funzionalità Caricamento automatico da
strumento di controllo dei posizionamenti degli annunci e richiama InterstitialAdGameObject.LoadAd()
. Il seguente snippet di codice mostra come richiedere manualmente un
annuncio.
public class MainScene : MonoBehaviour
{
InterstitialAdGameObject interstitialAd;
void Start()
{
interstitialAd = MobileAds.Instance
.GetAdGameObject<InterstitialAdGameObject>("interstitial");
MobileAds.Initialize((initStatus) => {
Debug.Log("MobileAds initialized");
// Load an interstitial ad after the SDK initialization is complete
interstitialAd.LoadAd();
});
}
...
}
Gestire l'opzione "Guarda un annuncio con premio" stato pulsante
Ecco un esempio di come attivare un annuncio "Guarda un annuncio con premio" utilizzando l'annuncio posizionamenti.
Aggiungi un GameObject Pulsante (denominato Button in questo esempio) alla scena, verrà utilizzato per mostrare un annuncio con premio. renderemo disponibile questo pulsante solo quando è disponibile un annuncio con premio.
Nel metodo Start()
, modifica lo stato attivo del pulsante in false
. Questo
il pulsante scomparirà dalla scena.
public class MainScene : MonoBehaviour
{
...
void Start()
{
GameObject.Find("Button").SetActive(false);
...
}
}
Aggiungi un RewardedAdGameObject
alla scena e seleziona il con premio per la demo AdMob
Annuncio dal menu a discesa.
Nella sezione Callback dello strumento di controllo RewardedAdGameObject
, fai clic su
Il pulsante + da On Ad Loaded() per abilitare la funzione da chiamare
Quando viene caricato un annuncio con premio.
Trascina il pulsante GameObject che hai aggiunto nel passaggio precedente per
nel campo Nessuno (oggetto). Seleziona una funzione da chiamare dal menu a discesa.
Fai clic su Nessuna funzione > GameObject > SetActive(bool), quindi fai clic sulla casella di controllo in modo
invia true
come parametro (chiama SetActive(true)
).
In questa sezione Callback, puoi anche collegare un evento che verrà chiamato
quando viene attivato l'evento RewardedAd.OnUserEarnedReward
. Per ulteriori dettagli,
consulta questa sezione.
Successivamente, crea il pulsante in modo che mostri un annuncio con premio quando viene fatto clic. Da Nella sezione Richiamamenti click() nella finestra di ispezione dei pulsanti, fai clic sul pulsante + e trascina il GameObject Posizionamento degli annunci con premio (denominato Annuncio con premio esempio) nel campo Nessuno (oggetto).
Quindi, collega la funzione RewardedAdGameObject.ShowIfLoaded()
al
Al momento del callback Click().
Infine, non dimenticare di inizializzare l'SDK. Il seguente snippet di codice è il codice completo per la scena utilizzata in questo esempio:
using UnityEngine;
using GoogleMobileAds.Api;
public class MainScene : MonoBehaviour
{
void Start()
{
GameObject.Find("Button").SetActive(false);
MobileAds.Initialize((initStatus) => {
Debug.Log("Initialized MobileAds");
});
}
}
Una volta eseguito il progetto, vedrai il pulsante visualizzato sulla scena quando l'annuncio con premio è stato caricato ed è pronto per essere mostrato.
Configura un callback premio per un RewardAdGameObject
Ecco un esempio di come configurare un callback con premio per un annuncio con premio posizionamento, in modo da poter assegnare un premio a un utente quando viene eseguita una funzione di callback chiamato.
Crea un nuovo script e definisci una funzione che accetta Reward
come parametro
come segue:
using UnityEngine;
using GoogleMobileAds.Api;
class RewardedTestScript : MonoBehaviour {
...
public void OnUserEarnedReward(Reward reward) {
Debug.Log("OnUserEarnedReward: reward=" +
reward.Type + ", amount=" + reward.Amount);
}
...
}
Associa lo script RewardedTestScript
a qualsiasi GameObject (ad eccezione di Ad
il posizionamento di GameObject) nella scena. In questo esempio, è collegato al riquadro principale
GameObject nella fotocamera.
Aggiungi RewardedAdGameObject
alla scena. Nella sezione Callback
Nella finestra di ispezione RewardedAdGameObject
, fai clic sul pulsante + in Su utente
Premio guadagnato (Premio) per consentire di chiamare la funzione quando viene ricevuto un premio
concessi a un utente.
Trascina il GameObject della fotocamera principale che hai aggiunto nella precedente nel campo Nessuno (oggetto). Seleziona una funzione da chiamare dal menu a discesa. Fai clic su Nessuna funzione > RewardTestScript > OnUserGuadagnaedReward.
Dopo aver eseguito il progetto
e aver guardato un annuncio con premio,
RewardedTestScript.OnUserEarnedReward()
verrà richiamato quando dovrai
premiato per aver interagito con l'annuncio.