ফায়ারবেস ক্র্যাশলিটিক্স একটি হালকা, রিয়েলটাইম ক্র্যাশ রিপোর্টার যা আপনার অ্যাপের স্থিতিশীলতার সমস্যাগুলি পরিচালনা করা সহজ করে তোলে। ক্র্যাশলিটিক্স বুদ্ধিমত্তার সাথে ক্র্যাশগুলিকে গ্রুপ করে এবং এর ফলে সৃষ্ট পরিস্থিতিগুলি হাইলাইট করে আপনার সমস্যা সমাধানের সময় সাশ্রয় করে।
এই নির্দেশিকাটি বর্ণনা করে কিভাবে আপনার অ্যান্ড্রয়েড স্টুডিও প্রকল্পে ক্র্যাশলিটিক্সকে একীভূত করবেন যাতে আপনি বিজ্ঞাপন প্রতিক্রিয়া আইডি লগ করতে পারেন। পরে, যখন আপনি আপনার অ্যাপে ক্র্যাশ সমস্যা সমাধান করবেন, তখন আপনি বিজ্ঞাপন প্রতিক্রিয়া আইডিটি দেখতে পারেন এবং বিজ্ঞাপন ম্যানেজারে বিজ্ঞাপন পর্যালোচনা কেন্দ্র ব্যবহার করে বিজ্ঞাপনগুলি খুঁজে বের করতে এবং ব্লক করতে পারেন।
ধাপ ১: একটি অ্যান্ড্রয়েড অ্যাপ্লিকেশনে Firebase যোগ করুন
যদি আপনি একটি পরিষ্কার অ্যাপ থেকে Firebase দিয়ে লগিং করার চেষ্টা করতে চান, তাহলে আপনি GitHub থেকে Android রিপোজিটরির জন্য Google Mobile Ads SDK উদাহরণ ডাউনলোড বা ক্লোন করতে পারেন। এই নির্দেশিকাটি বিশেষভাবে Banner Example ব্যবহার করে।
যদি আপনার ইতিমধ্যেই একটি অ্যাপ থাকে, তাহলে আপনার অ্যাপের প্যাকেজ নাম দিয়ে অন্যান্য ধাপে এগিয়ে যেতে সক্ষম হওয়া উচিত। একই ধাপগুলি ছোটখাটো অভিযোজন সহ রিপোজিটরির অন্যান্য উদাহরণেও প্রয়োগ করা যেতে পারে।
Firebase Crashlytics ব্যবহার করার জন্য, আপনাকে একটি Firebase প্রকল্প তৈরি করতে হবে এবং এতে আপনার অ্যাপ যুক্ত করতে হবে। যদি আপনি ইতিমধ্যে এটি না করে থাকেন, তাহলে একটি Firebase প্রকল্প তৈরি করুন। আপনার অ্যাপটি অবশ্যই এতে নিবন্ধিত করুন ।
Firebase কনসোলের Crashlytics পৃষ্ঠায়, Crashlytics সেট আপ করুন এ ক্লিক করুন।
প্রদর্শিত স্ক্রিনে, না > একটি নতুন Firebase অ্যাপ সেট আপ করুন এ ক্লিক করুন।

আপনার build.gradle-এ, Google Analytics, Fabric, এবং Crashlytics-এর জন্য নির্ভরতা যোগ করুন।
অ্যাপ/বিল্ড.গ্রেডল
apply plugin: 'com.android.application' apply plugin: 'com.google.gms.google-services' // Add the Fabric plugin apply plugin: 'io.fabric' dependencies { // ... // Add Google Mobile Ads SDK implementation 'com.google.android.gms:play-services-ads:24.8.0' // Add the Firebase Crashlytics dependency. implementation 'com.google.firebase:firebase-crashlytics:20.0.3' }
প্রকল্প/বিল্ড.গ্রেডল
buildscript { repositories { // ... // Add Google's Maven repository. google() } dependencies { // ... classpath 'com.google.gms:google-services:4.4.4' // Add the Fabric Crashlytics plugin. classpath 'com.google.firebase:firebase-crashlytics-gradle:3.0.6' } } allprojects { // ... repositories { // Check that Google's Maven repository is included (if not, add it). google() // ... } }Crashlytics সঠিকভাবে কনফিগার করা আছে কিনা তা নিশ্চিত করতে আপনার অ্যাপটি তৈরি করুন এবং চালান। সফল হয়ে গেলে, আপনি Crashlytics ড্যাশবোর্ড অ্যাক্সেস করতে পারবেন।

(ঐচ্ছিক): আপনার সেটআপ পরীক্ষা করুন
একটি ক্র্যাশ বোতাম যোগ করে আপনি প্রতিটি বোতাম টিপে একটি অ্যাপ ক্র্যাশ করার জন্য জোর করে ক্র্যাশ করতে পারেন।
এখানে একটি উদাহরণ দেওয়া হল যা দেখায় কিভাবে একটি Activity এর onCreate() পদ্ধতিতে একটি ক্র্যাশ বোতাম যোগ করতে হয়:
প্রধান কার্যকলাপ (উদ্ধৃতাংশ)
জাভা
protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_my); // Gets the ad view defined in layout/ad_fragment.xml with ad unit ID set in // values/strings.xml. adView = findViewById(R.id.ad_view); // Start loading the ad in the background. adView.loadAd(new AdManagerAdRequest.Builder().build()); // Add a crash button. Button crashButton = new Button(this); crashButton.setText("Crash!"); crashButton.setOnClickListener(new View.OnClickListener() { public void onClick(View view) { throw new RuntimeException("Test Crash"); // Force a crash } }); addContentView(crashButton, new ViewGroup.LayoutParams( ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.WRAP_CONTENT)); }
কোটলিন
override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.activity_my) // Gets the ad view defined in layout/ad_fragment.xml with ad unit ID set in // values/strings.xml. adView = findViewById(R.id.ad_view) // Start loading the ad in the background. adView.loadAd(AdManagerAdRequest.Builder().build()) // Add a crash button. val crashButton = Button(this) crashButton.text = "Crash!" crashButton.setOnClickListener { throw RuntimeException("Test Crash") // Force a crash } addContentView(crashButton, ViewGroup.LayoutParams( ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.WRAP_CONTENT)) }
অ্যান্ড্রয়েড স্টুডিওতে, আপনার অ্যাপটি একটি এমুলেটর বা সংযুক্ত ডিভাইসে তৈরি করুন এবং চালান। অ্যাপটি লোড হওয়ার পরে, আপনি ক্র্যাশ বোতামে ক্লিক করতে পারেন। ক্র্যাশ লগটি ক্র্যাশলিক্সে আপলোড করার জন্য ডিভাইস বা অ্যান্ড্রয়েড স্টুডিও থেকে অ্যাপটি পুনরায় চালু করুন।
ধাপ ২: বিজ্ঞাপনের প্রতিক্রিয়া আইডি লগ করুন
যদি আপনি একাধিক বিজ্ঞাপন লোড করেন এবং বিভিন্ন সময়ে সেগুলি দেখান, তাহলে প্রতিটি বিজ্ঞাপন প্রতিক্রিয়া আইডিকে একটি পৃথক কী দিয়ে লগ করা একটি ভাল ধারণা। উদাহরণস্বরূপ, এই নির্দেশিকাটি এমন একটি উদাহরণ ব্যবহার করে যেখানে কেবল একটি ব্যানার বিজ্ঞাপন রয়েছে। অতএব, আমরা নিম্নলিখিত স্নিপেটে বিজ্ঞাপন প্রতিক্রিয়া আইডিটিকে banner_ad_response_id কী হিসাবে লগ করি। প্রকৃতপক্ষে আপনি বিভিন্ন বিজ্ঞাপনের ধরণ এবং বিজ্ঞাপন ইভেন্টের জন্য Firebase Crashlytics-এ একাধিক কাস্টম কী / মান জোড়া তৈরি করতে পারেন (বিজ্ঞাপনের জীবনচক্রের জন্য AdListener দেখুন)। কাস্টম লগিং সম্পর্কে আরও তথ্যের জন্য আপনার Firebase Crashlytics ক্র্যাশ রিপোর্টগুলি কাস্টমাইজ করুন দেখুন।
আপনার MyActivity.java তে নিম্নলিখিত কোডটি যোগ করুন। মূলত, এটি getResponseInfo() কল করার চেষ্টা করার আগে বিজ্ঞাপনটি লোড হয়েছে কিনা তা নিশ্চিত করার জন্য onAdLoaded() কলব্যাক ফাংশনে FirebaseCrashlytics.setCustomKey() ফাংশন ব্যবহার করে।
জাভা
protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_my); // Gets the ad view defined in layout/ad_fragment.xml with ad unit ID set in // values/strings.xml. adView = findViewById(R.id.ad_view); adView.setAdListener(new AdListener() { @Override public void onAdLoaded() { String adResponseId = adView.getResponseInfo().getResponseId(); FirebaseCrashlytics.getInstance().setCustomKey( "banner_ad_response_id", adResponseId); } }); // Start loading the ad in the background. adView.loadAd(new AdManagerAdRequest.Builder().build()); // Add a crash button. Button crashButton = new Button(this); crashButton.setText("Crash!"); crashButton.setOnClickListener(new View.OnClickListener() { public void onClick(View view) { throw new RuntimeException("Test Crash"); // Force a crash } }); addContentView(crashButton, new ViewGroup.LayoutParams( ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.WRAP_CONTENT)); }
কোটলিন
override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.activity_my) // Gets the ad view defined in layout/ad_fragment.xml with ad unit ID set in // values/strings.xml. adView = findViewById(R.id.ad_view) adView.adListener = object : AdListener() { override fun onAdLoaded() { mAdView.responseInfo?.responseId?.let { adResponseId -> FirebaseCrashlytics.getInstance().setCustomKey( "banner_ad_response_id", adResponseId) } } } // Start loading the ad in the background. adView.loadAd(AdManagerAdRequest.Builder().build()) // Add a crash button. val crashButton = Button(this) crashButton.text = "Crash!" crashButton.setOnClickListener { throw RuntimeException("Test Crash") // Force a crash } addContentView(crashButton, ViewGroup.LayoutParams( ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.WRAP_CONTENT)) }
অভিনন্দন! আপনি এখন আপনার Crashlytics ড্যাশবোর্ডের ক্র্যাশ সেশনের কী বিভাগে সাম্প্রতিকতম banner_ad_response_id দেখতে পাবেন। মনে রাখবেন যে কিছু কী আপনার ড্যাশবোর্ডে দৃশ্যমান হতে এক ঘন্টা পর্যন্ত সময় লাগতে পারে।
