Bom dia pessoal, seguinte:
Estou iniciando a parte da Monetização do meu app, que no caso é um jogo. É a primeira vez que mexo com isso. Vi um vídeo no youtube em que o rapaz fala do Google Admob. Fiz uma conta, criei um anúncio, mas está dando a seguinte mensagem:
Configuração de pagamento incompleta - Conclua a configuração da sua conta da AdMob preenchendo seu perfil para pagamentos. Os apps em análise vão permanecer no estado “Preparando” até você adicionar a forma de pagamento.
Daí vem as dúvidas: o que é essa forma de pagamento? Eu vou ter que pagar alguma coisa pra poder usar os anúncios criados lá na minha conta da Google AdMob? Ou esse pagamento é na vdd um Recebimento que irei ter quando as pessoas clicarem nos anúncios no meu jogo? os Anúncios criados tem tempo de validade? Como faço pra colocar os anúncios da Google AdMob no meu projeto/jogo na Unity? Tem uma parada aí de colocar o código do anúncio no jogo via script, mas não sei onde estão esses códigos. O rapaz do vídeo mostrou como fazer antes de finalizar a construção do anúncio, mas no meu caso eu não peguei os códigos que ele falou e acabou que não está mais aparecendo esses códigos.
Nesse mesmo vídeo que vi no youtube, o rapaz dá esse Script baixo, mas eu não entendi mt bem a parte dos códigos que tem que ser passados da Google AdMob para a Unity.
using UnityEngine;
using GoogleMobileAds.Api;
using System;
using UnityEngine.UI;
public class Admob : MonoBehaviour
{
private BannerView adBanner;
private InterstitialAd adInterstitial;
private RewardBasedVideoAd adReward;
private string idApp, idBanner, idInterstitial, idReward;
[SerializeField] Button BtnInterstitial;
[SerializeField] Button BtnReward;
[SerializeField] Text TxtPoints;
void Start ()
{
BtnInterstitial.interactable = false;
idApp = "ca-app-pub-3940256099942544~3347511713";
idBanner = "ca-app-pub-3940256099942544/6300978111";
idInterstitial = "ca-app-pub-3940256099942544/1033173712";
idReward = "ca-app-pub-3940256099942544/5224354917";
adReward = RewardBasedVideoAd.Instance;
MobileAds.Initialize (idApp);
RequestBannerAd ();
RequestInterstitialAd ();
}
#region Banner Methods --------------------------------------------------
public void RequestBannerAd ()
{
adBanner = new BannerView (idBanner, AdSize.Banner, AdPosition.Bottom);
AdRequest request = AdRequestBuild ();
adBanner.LoadAd (request);
}
public void DestroyBannerAd ()
{
if (adBanner != null)
adBanner.Destroy ();
}
#endregion
#region Interstitial methods ---------------------------------------------
public void RequestInterstitialAd ()
{
adInterstitial = new InterstitialAd (idInterstitial);
AdRequest request = AdRequestBuild ();
adInterstitial.LoadAd (request);
//attach events
adInterstitial.OnAdLoaded += this.HandleOnAdLoaded;
adInterstitial.OnAdOpening += this.HandleOnAdOpening;
adInterstitial.OnAdClosed += this.HandleOnAdClosed;
}
public void ShowInterstitialAd ()
{
if (adInterstitial.IsLoaded ())
adInterstitial.Show ();
}
public void DestroyInterstitialAd ()
{
adInterstitial.Destroy ();
}
//interstitial ad events
public void HandleOnAdLoaded (object sender, EventArgs args)
{
//this method executes when interstitial ad is Loaded and ready to show
BtnInterstitial.interactable = true; //button is ready to click (enabled)
}
public void HandleOnAdOpening (object sender, EventArgs args)
{
//this method executes when interstitial ad is shown
BtnInterstitial.interactable = false; //disable the button
}
public void HandleOnAdClosed (object sender, EventArgs args)
{
//this method executes when interstitial ad is closed
adInterstitial.OnAdLoaded -= this.HandleOnAdLoaded;
adInterstitial.OnAdOpening -= this.HandleOnAdOpening;
adInterstitial.OnAdClosed -= this.HandleOnAdClosed;
RequestInterstitialAd (); //request new interstitial ad after close
}
#endregion
#region Reward video methods ---------------------------------------------
public void RequestRewardAd ()
{
AdRequest request = AdRequestBuild ();
adReward.LoadAd (request, idReward);
adReward.OnAdLoaded += this.HandleOnRewardedAdLoaded;
adReward.OnAdRewarded += this.HandleOnAdRewarded;
adReward.OnAdClosed += this.HandleOnRewardedAdClosed;
}
public void ShowRewardAd ()
{
if (adReward.IsLoaded ())
adReward.Show ();
}
//events
public void HandleOnRewardedAdLoaded (object sender, EventArgs args)
{//ad loaded
ShowRewardAd ();
}
public void HandleOnAdRewarded (object sender, EventArgs args)
{//user finished watching ad
int points = int.Parse (TxtPoints.text);
points += 50; //add 50 points
TxtPoints.text = points.ToString ();
}
public void HandleOnRewardedAdClosed (object sender, EventArgs args)
{//ad closed (even if not finished watching)
BtnReward.interactable = true;
BtnReward.GetComponentInChildren <Text> ().text = "More Points";
adReward.OnAdLoaded -= this.HandleOnRewardedAdLoaded;
adReward.OnAdRewarded -= this.HandleOnAdRewarded;
adReward.OnAdClosed -= this.HandleOnRewardedAdClosed;
}
#endregion
//other functions
//btn (more points) clicked
public void OnGetMorePointsClicked ()
{
BtnReward.interactable = false;
BtnReward.GetComponentInChildren <Text> ().text = "Loading...";
RequestRewardAd ();
}
//------------------------------------------------------------------------
AdRequest AdRequestBuild ()
{
return new AdRequest.Builder ().Build ();
}
void OnDestroy ()
{
DestroyBannerAd ();
DestroyInterstitialAd ();
//dettach events
adInterstitial.OnAdLoaded -= this.HandleOnAdLoaded;
adInterstitial.OnAdOpening -= this.HandleOnAdOpening;
adInterstitial.OnAdClosed -= this.HandleOnAdClosed;
adReward.OnAdLoaded -= this.HandleOnRewardedAdLoaded;
adReward.OnAdRewarded -= this.HandleOnAdRewarded;
adReward.OnAdClosed -= this.HandleOnRewardedAdClosed;
}
}
Gente, qualquer ajuda é mt bem apreciada!