Ghi nhật ký mã thông tin phản hồi quảng cáo vào Crashlytics

Firebase Crashlytics là trình báo cáo sự cố nhẹ và theo thời gian thực giúp bạn dễ dàng quản lý các vấn đề về độ ổn định trong ứng dụng của mình. Crashlytics giúp bạn tiết kiệm thời gian khắc phục sự cố bằng cách nhóm các sự cố một cách thông minh và làm nổi bật các tình huống dẫn đến các sự cố đó.

Hướng dẫn này mô tả cách tích hợp Crashlytics vào dự án Unity để bạn có thể ghi nhật ký mã phản hồi quảng cáo. Sau này, khi khắc phục sự cố trong ứng dụng, bạn có thể tra cứu mã phản hồi quảng cáo này và sử dụng Trung tâm xem xét quảng cáo trong AdMob để tìm và chặn quảng cáo.

Bước 1: Thêm Firebase vào ứng dụng Unity

Làm theo hướng dẫn tích hợp Firebase Unity để tích hợp Firebase Crashlytics vào Unity.

Bước 2: Ghi nhật ký mã phản hồi quảng cáo

  1. Tạo tập lệnh MonoBehaviour và khởi chạy cả SDK AdMob và SDK Firebase. Hãy sử dụng boolean isCrashlyticsInitialized để giám sát thời điểm Crashlytics khởi chạy.

    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. Yêu cầu quảng cáo biểu ngữ.

    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.Builder().Build();
            this.bannerView.LoadAd(request);
            // Called when an ad request has successfully loaded.
            this.bannerView.OnAdLoaded += this.HandleOnAdLoaded;
        }
    }
    
  3. Tải đối tượng ResponseInfo OnAdLoaded và ghi nhật ký mã phản hồi vào 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);
            }
        }
    }
    

Vậy là xong! Bây giờ, bạn có thể thấy banner_ad_response_id gần đây nhất trong mục khóa của các phiên hoạt động có sự cố trên trang tổng quan Crashlytics. Xin lưu ý rằng có thể mất tới 4 giờ để một số khóa hiển thị trên trang tổng quan của bạn.

mã thông tin phản hồi