ثبت شناسه اطلاعات پاسخ آگهی در Crashlytics

پلتفرم مورد نظر: اندروید، iOS و یونیتی

Firebase Crashlytics یک گزارشگر کرش سبک و بلادرنگ است که مدیریت مشکلات پایداری در برنامه شما را آسان می‌کند. Crashlytics با گروه‌بندی هوشمندانه کرش‌ها و برجسته کردن شرایطی که منجر به آنها می‌شود، در زمان عیب‌یابی شما صرفه‌جویی می‌کند.

این راهنما نحوه ادغام Crashlytics در پروژه Unity شما را شرح می‌دهد تا بتوانید شناسه‌های پاسخ به تبلیغات را ثبت کنید. بعداً، وقتی در برنامه خود خرابی‌ها را عیب‌یابی می‌کنید، می‌توانید شناسه‌های پاسخ به تبلیغات را جستجو کرده و از مرکز بررسی تبلیغات در AdMob برای یافتن و مسدود کردن تبلیغات استفاده کنید.

مرحله ۱: اضافه کردن Firebase به برنامه Unity

برای ادغام Firebase Crashlytics در Unity، راهنمای ادغام Firebase Unity را دنبال کنید.

مرحله ۲: شناسه پاسخ تبلیغ را ثبت کنید

  1. یک اسکریپت MonoBehaviour ایجاد کنید و SDK های AdMob و Firebase را مقداردهی اولیه کنید. از مقدار بولی isCrashlyticsInitialized برای نظارت بر زمان مقداردهی اولیه Crashlytics استفاده کنید.

    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. درخواست بنر تبلیغاتی.

    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. شیء ResponseInfo OnAdLoaded را دریافت کنید و شناسه پاسخ را در 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);
            }
        }
    }
    

همین! اکنون می‌توانید جدیدترین banner_ad_response_id در بخش کلید جلسات خرابی در داشبورد Crashlytics خود مشاهده کنید. توجه داشته باشید که ممکن است مشاهده برخی از کلیدها تا چهار ساعت طول بکشد.

شناسه پاسخ