Page 1 sur 1

AdMobs fait planter l'appli [résolu]

Publié : 23 Mars 2021 19:17
par Aelhan
Bonjour,

J'ai aujourd'hui intégré les rewarded ad de chez google, en suivant leur procédure sur https://developers.google.com/admob/unity/rewarded-ads
Sous Unity, en mode game, tout fonctionne comme attendu, mais en build, lorsque je lance l'appli, ça crashe systématiquement dès que l'objet contenant le script des ads (un panel) est activé. Voici mon code, si quelqu'un peut m'indiquer une piste où creuser svp :

Code : Tout sélectionner

using UnityEngine;
using GoogleMobileAds.Api;
using System;

public class ticketAdMobScript : MonoBehaviour
{
    RewardedAd rewardedAd;

    public void Start()
    {
        string ticketRewardedAd = "ca-app-pub-3940256099942544/5224354917";
        this.rewardedAd = new RewardedAd(ticketRewardedAd);

        this.rewardedAd.OnAdLoaded += HandleRewardedAdLoaded;
        this.rewardedAd.OnAdFailedToLoad += HandleRewardedAdFailedToLoad;
        this.rewardedAd.OnAdOpening += HandleRewardedAdOpening;
        this.rewardedAd.OnAdFailedToShow += HandleRewardedAdFailedToShow;
        this.rewardedAd.OnUserEarnedReward += HandleUserEarnedReward;
        this.rewardedAd.OnAdClosed += HandleRewardedAdClosed;

        AdRequest request = new AdRequest.Builder().Build();
        this.rewardedAd.LoadAd(request);
    }


    public void HandleRewardedAdLoaded(object sender, EventArgs args)
    {
    }

    public void HandleRewardedAdFailedToLoad(object sender, AdErrorEventArgs args)
    {
    }

    public void HandleRewardedAdOpening(object sender, EventArgs args)
    {
    }

    public void HandleRewardedAdFailedToShow(object sender, AdErrorEventArgs args)
    {
    }

    public void HandleRewardedAdClosed(object sender, EventArgs args)
    {
        // Create an empty ad request.
        AdRequest request = new AdRequest.Builder().Build();
        // Load the rewarded ad with the request.
        this.rewardedAd.LoadAd(request);
    }

    public void HandleUserEarnedReward(object sender, Reward args)
    {
        staticVars.wheelTicketQuantity++;
        PlayerPrefs.SetInt("wheelTicketQuantity", staticVars.wheelTicketQuantity);
    }

    public void UserChoseToWatchAd()
    {
        if (this.rewardedAd.IsLoaded())
        {
            this.rewardedAd.Show();
        }
    }

}
Merci d'avance !


EDIT : Poser une question aide toujours à trouver soi même la réponse, je n'avais pas mis la ligne

Code : Tout sélectionner

        MobileAds.Initialize(initStatus => { });
au début du Start()... Du coup, plus de crash, mais pas de pub quand même alors que ça fonctionne dans le moteur :(


EDIT 2 : J'ai creusé un peu, et ai ajouté le fait que le bouton qui permet de regarder l'ad soit interactable une fois l'ad chargé. Dans le moteur, toujours pas de souci, dans le build, l'ad ne charge pas :(

Re: AdMobs fait planter l'appli [partiellement résolu]

Publié : 24 Mars 2021 09:11
par boubouk50
Je n'y connais rien, mais tu devrais remplir les fonctions HandleRewardedAdFailedToLoad et HandleRewardedAdFailedToShow appelées par les Events pour récupérer les erreurs associées. Au moins cela devrait te donner une piste sur la raison de l'échec.

Re: AdMobs fait planter l'appli [partiellement résolu]

Publié : 24 Mars 2021 13:25
par Aelhan
Je te remercie pour ta réponse mais en mettant un texte qui se remplit selon les fonctions appelées je vois que... aucune fonction du script n'est appelée ! C'est vraiment étrange comme comportement mais je continue à creuser.

Re: AdMobs fait planter l'appli [partiellement résolu]

Publié : 24 Mars 2021 15:56
par boubouk50
En as-tu mis pour chacun des Events?

Si rien n'est appelé, vérifie que tu n'aies pas une erreur en amont de this.rewardedAd.LoadAd(request);
Si la requête est bien lancée, alors cela se situe donc lors de sa résolution. Et là, il faudra creuser effectivement...

Dans les logs de ton application (Android?) tu n'as pas d'erreurs rapportées?

Re: AdMobs fait planter l'appli [partiellement résolu]

Publié : 24 Mars 2021 19:30
par Aelhan
En fouillant, je crois comprendre qu'il faut que l'app soit en ligne pour afficher les pubs, et aussi que le compte google ads soit entièrement configuré, ce que je n'avais pas fait (mais maintenant c'est ok). L'appli est encore en cours de vérification par google, est-ce que ceux qui utilisent admob peuvent me dire si c'est le cas ? En tout cas, ce qui m'étonne c'est que ça le fasse aussi pour les pubs de test.

Sinon la seule erreur que j'ai est un avertissement : "You are trying to create a MonoBehaviour using the 'new' keyword. This is not allowed." mais cela vient d'un script du package adMob, je ne devrais donc pas le modifier à mon avis.

Re: AdMobs fait planter l'appli [résolu]

Publié : 25 Mars 2021 09:15
par Aelhan
Cela s'est finalement résolu tout seul, ce qu'il faut faire, c'est être patient et attendre que google valide le compte adMob... En revanche, pas besoin que l'appli soit sur le store.
Merci @boubouk50 d'avoir au moins essayé !
Très bonne journée à tous !