Registrar ID de información de respuesta del anuncio en Crashlytics

Firebase Crashlytics es una herramienta liviana para informar fallas en tiempo real que te facilita la administración de los problemas de estabilidad de tu app. Crashlytics te permite ahorrar tiempo para solucionar problemas, ya que agrupe las fallas de forma inteligente y destaca las circunstancias que las generaron.

En esta guía, se describe cómo integrar Crashlytics en tu proyecto de Unity para registrar los IDs de respuesta de los anuncios. Más adelante, cuando soluciones problemas de fallas en tu app, puedes buscar los IDs de respuesta de anuncios y usar el Centro de revisión de anuncios en AdMob para encontrar y bloquear los anuncios.

Paso 1: Agrega Firebase a tu app de Unity

Sigue la guía de integración de Firebase Unity para integrar Firebase Crashlytics a Unity.

Paso 2: Registra el ID de respuesta del anuncio

  1. Crea una secuencia de comandos de MonoBehaviour y, luego, inicializa los SDK de AdMob y de Firebase. Usa el valor booleano isCrashlyticsInitialized para supervisar cuándo Crashlytics se inicializa.

    using GoogleMobileAds.Api;
    using Fabric.Crashlytics;
    ...
    public class GameObjectScript : MonoBehaviour
    {
        bool isCrashlyticsInitialized = false;
        public void Start()
        {
            ....
            // Initialize the Google Mobile Ads SDK.
            MobileAds.Initialize(initStatus => { });
            ....
            // Initialize Firebase
            Firebase.FirebaseApp.CheckAndFixDependenciesAsync().ContinueWith(task => {
                Firebase.DependencyStatus dependencyStatus = task.Result;
                if (dependencyStatus == Firebase.DependencyStatus.Available)
                {
                    Firebase.FirebaseApp app = Firebase.FirebaseApp.DefaultInstance;
                    isCrashlyticsInitialized = true;
                }
                else
                {
                    UnityEngine.Debug.LogError(System.String.Format(
                      "Could not resolve all Firebase dependencies: {0}",dependencyStatus));
                    // Firebase Unity SDK is not safe to use here.
                }
            }
        }
    }
    
  2. Solicita un anuncio de banner.

    using GoogleMobileAds.Api;
    using Fabric.Crashlytics;
    ...
    public class GameObjectScript : MonoBehaviour
    {
    
        public void Start()
        {
            ...
            // Initialize the Google Mobile Ads SDK.
            MobileAds.Initialize(initStatus => { });
    
            // Initialize Firebase.
            Firebase.FirebaseApp.CheckAndFixDependenciesAsync().ContinueWith(task => {
                Firebase.DependencyStatus dependencyStatus = task.Result;
                if (dependencyStatus == Firebase.DependencyStatus.Available)
                {
                    // Create and hold a reference to your FirebaseApp,
                    // where app is a Firebase.FirebaseApp property of your
                    // application class.
                    // Crashlytics will use the DefaultInstance, as well;
                    // this ensures that Crashlytics is initialized.
                    Firebase.FirebaseApp app = Firebase.FirebaseApp.DefaultInstance;
                    isCrashlyticsInitialized = true;
                }
                else
                {
                    UnityEngine.Debug.LogError(System.String.Format(
                        "Could not resolve all Firebase dependencies: {0}",dependencyStatus));
                    // Firebase Unity SDK is not safe to use here.
                }
            });
    
            // Request Banner View.
            this.RequestBanner();
            ...
        }
    
        public void RequestBanner()
        {
            #if UNITY_ANDROID
                string adUnitId = "ca-app-pub-3940256099942544/6300978111";
            #elif UNITY_IPHONE
                string adUnitId = "ca-app-pub-1220882738324941/1255739139";
            #else
                string adUnitId = "unexpected_platform";
            #endif
            // Create a 320x50 banner at the top of the screen.
            this.bannerView = new BannerView(adUnitId, AdSize.Banner, AdPosition.Bottom);
            AdRequest request = new AdRequest();
            this.bannerView.LoadAd(request);
            // Called when an ad request has successfully loaded.
            this.bannerView.OnAdLoaded += this.HandleOnAdLoaded;
        }
    }
    
  3. Obtén el objeto ResponseInfo OnAdLoaded y registra el ID de respuesta en Crashlytics.

    public void HandleOnAdLoaded(object sender, EventArgs args)
    {
        ResponseInfo responseInfo = this.bannerView.GetResponseInfo();
        if (responseInfo != null)
        {
            String adResponseId = responseInfo.GetResponseId();
            // Log to Crashlytics.
            if (isCrashlyticsInitialized)
            {
                Crashlytics.SetCustomKey("banner_ad_response_id", adResponseId);
            }
        }
    }
    

Listo. Ahora puedes ver el banner_ad_response_id más reciente en la sección clave de las sesiones de fallas en el panel de Crashlytics. Ten en cuenta que algunas claves pueden tardar hasta cuatro horas en volverse visibles en tu panel.

ID de respuesta