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
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. } } } }
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; } }
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.