O Firebase Crashlytics é uma ferramenta de relatório de falhas leve e em tempo real que facilita o gerenciamento de problemas de estabilidade no seu app. Ele economiza tempo na solução de problemas com o agrupamento inteligente das falhas e a exibição das circunstâncias que levam a elas.
Este guia descreve como integrar o Crashlytics ao seu projeto do Unity para registrar IDs de resposta de anúncio. Depois, ao resolver problemas de falhas no seu app, você pode pesquisar os IDs de resposta do anúncio e usar a Central de revisão de anúncios na AdMob para encontrar e bloquear os anúncios.
Etapa 1: adicionar o Firebase ao seu app do Unity
Siga o guia de integração do Firebase Unity para integrar o Firebase Crashlytics ao Unity.
Etapa 2: registrar o ID de resposta do anúncio
Crie um script MonoBehaviour e inicialize os SDKs da AdMob e do Firebase. Use o booleano
isCrashlyticsInitialized
para monitorar quando o Crashlytics é inicializado.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. } }); } }
Solicite um anúncio 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); } }
Acesse o objeto
ResponseInfo
OnAdLoaded
e registre o ID da resposta no 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);
}
}
}
Pronto! Agora você pode ver o banner_ad_response_id
mais recente na seção principal das sessões de falha no painel do Crashlytics. Algumas chaves podem levar até quatro horas para aparecer no painel.