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

Selecciona la plataforma: Android iOS Unity

Firebase Crashlytics es una herramienta liviana para informar fallas en tiempo real que te permite administrar fácilmente los problemas de estabilidad en tu app. Crashlytics agrupa las fallas de forma inteligente y destaca las circunstancias en las que se produjeron, lo que te permite ahorrar tiempo en la solución de problemas.

En esta guía, se describe cómo integrar Crashlytics en tu proyecto de Unity para que puedas registrar los IDs de respuesta de los anuncios. Más adelante, cuando soluciones problemas relacionados con fallas en tu app, podrás 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 en Unity para integrar Firebase Crashlytics en Unity.

Paso 2: Registra el ID de respuesta del anuncio

  1. Crea un script de MonoBehaviour y, luego, inicializa los SDKs de AdMob y Firebase. Usa el valor booleano isCrashlyticsInitialized para supervisar cuándo se inicializa Crashlytics.

    using GoogleMobileAds.Api;
    using Fabric.Crashlytics;
    ...
    public class GameObjectScript : MonoBehaviour
    {
        bool isCrashlyticsInitialized = false;
        public void Start()
        {
            ....
            // Initialize Google Mobile Ads SDK.
            MobileAds.Initialize((InitializationStatus 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 Google Mobile Ads SDK.
            MobileAds.Initialize((InitializationStatus 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);
    
            // Called when an ad request has successfully loaded.
            this.bannerView.OnAdLoaded += this.HandleOnAdLoaded;
    
            AdRequest request = new AdRequest();
            this.bannerView.LoadAd(request);
        }
    }
    
  3. Obtén el objeto ResponseInfo OnAdLoaded y registra el ID de respuesta en Crashlytics.

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

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

ID de respuesta