AdMobs fait planter l'appli [résolu]

Toutes les questions sur le développement Mobile, y compris la partie script.
Aelhan
Messages : 119
Inscription : 11 Déc 2019 23:00

AdMobs fait planter l'appli [résolu]

Message par Aelhan » 23 Mars 2021 19:17

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 :(
Dernière édition par Aelhan le 25 Mars 2021 09:13, édité 1 fois.
Celui qui pose une question risque cinq minutes d'avoir l'air bête.
Celui qui ne pose pas de question restera bête toute sa vie.

Avatar de l’utilisateur
boubouk50
ModoGenereux
ModoGenereux
Messages : 5573
Inscription : 28 Avr 2014 11:57
Localisation : Toulouse

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

Message par boubouk50 » 24 Mars 2021 09:11

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.
"Ce n'est pas en améliorant la bougie, que l'on a inventé l'ampoule, c'est en marchant longtemps."
Nétiquette du forum
Savoir faire une recherche
Apprendre la programmation

Aelhan
Messages : 119
Inscription : 11 Déc 2019 23:00

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

Message par Aelhan » 24 Mars 2021 13:25

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.
Celui qui pose une question risque cinq minutes d'avoir l'air bête.
Celui qui ne pose pas de question restera bête toute sa vie.

Avatar de l’utilisateur
boubouk50
ModoGenereux
ModoGenereux
Messages : 5573
Inscription : 28 Avr 2014 11:57
Localisation : Toulouse

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

Message par boubouk50 » 24 Mars 2021 15:56

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?
"Ce n'est pas en améliorant la bougie, que l'on a inventé l'ampoule, c'est en marchant longtemps."
Nétiquette du forum
Savoir faire une recherche
Apprendre la programmation

Aelhan
Messages : 119
Inscription : 11 Déc 2019 23:00

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

Message par Aelhan » 24 Mars 2021 19:30

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.
Celui qui pose une question risque cinq minutes d'avoir l'air bête.
Celui qui ne pose pas de question restera bête toute sa vie.

Aelhan
Messages : 119
Inscription : 11 Déc 2019 23:00

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

Message par Aelhan » 25 Mars 2021 09:15

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 !
Celui qui pose une question risque cinq minutes d'avoir l'air bête.
Celui qui ne pose pas de question restera bête toute sa vie.

Répondre

Revenir vers « Développement plateformes mobile Iphone et Android »