এই গাইড সেইসব প্রকাশকদের জন্য যারা Firebase ব্যবহার না করেই AdMob-এর মাধ্যমে C++ অ্যাপ মনিটাইজ করতে চান। আপনার অ্যাপে Firebase যোগ করার পরিকল্পনা থাকলে—অথবা আপনি যদি এটি বিবেচনা করে থাকেন—তাহলে এই নির্দেশিকার Firebase-এর সাথে AdMob ভার্সন দেখুন।
কোনও অ্যাপে Google Mobile Ads C++ SDK ইন্টিগ্রেট করা হল বিজ্ঞাপন দেখানো এবং উপার্জন করার প্রথম ধাপ। SDK ইন্টিগ্রেট করা হয়ে গেলে, আপনি ইন্টারস্টিশিয়াল বা পুরস্কার প্রদানকারী বিজ্ঞাপনের মতো বিজ্ঞাপনের ফর্ম্যাট বেছে নিতে এবং সেটি প্রয়োগ করার জন্য ধাপগুলি অনুসরণ করতে পারবেন।
Google Mobile Ads C++ SDK, Google Mobile Ads iOS এবং Android SDK-কে র্যাপ করে
এবং শুধুমাত্র সেইসব প্ল্যাটফর্মে উপলভ্য। অ্যাসিঙ্ক্রোনাস অপারেশন কাজ করানোর জন্য Google Mobile Ads C++ SDK
Firebase C++ কনস্ট্রাক্ট ব্যবহার করে, তাই এটি firebase::gma নেমস্পেসে
থাকে।
আপনি যদি এই প্রথমবার এই নির্দেশিকা অনুসরণ করেন, তাহলে আমরা সাজেস্ট করি যে আপনি Google Mobile Ads C++ টেস্ট অ্যাপ ডাউনলোড করে সেটি অনুসরণ করুন।
পূর্বশর্ত
Android
- Android Studio 3.2 বা তার পরবর্তী যেকোনও ভার্সন ব্যবহার করুন
- আপনার অ্যাপের বিল্ড ফাইলে নিম্নলিখিত ভ্যালু ব্যবহার করা হয়েছে কিনা দেখুন:
minSdkVersion-এর মান ১৬ বা তার বেশি হতে হবেcompileSdkVersion-এর মান ২৮ বা তার বেশি হতে হবে
iOS
- Xcode 13 বা তার পরের যেকোনও ভার্সন ব্যবহার করুন
- iOS 10.0 বা তার পরবর্তী যেকোনও ভার্সন
আপনার AdMob অ্যাকাউন্টে অ্যাপ সেট-আপ করা
নিচের ধাপগুলি সম্পূর্ণ করে আপনার অ্যাপকে AdMob অ্যাপ হিসেবে রেজিস্টার করুন:
AdMob অ্যাকাউন্টে সাইন-ইন করুন অথবা সাইন-আপ করুন ।
AdMob-এর সাথে আপনার অ্যাপ রেজিস্টার করুন। এই ধাপে একটি অনন্য AdMob অ্যাপ আইডি সহ একটি AdMob অ্যাপ তৈরি করা হয় যা এই নির্দেশিকায় পরে প্রয়োজন হবে।
Google Mobile Ads C++ SDK ইনস্টল করুন
Google Mobile Ads C++ SDK যেহেতু firebase::gma নেমস্পেসে থাকে,
তাই Firebase C++ SDK ডাউনলোড করুন,
এবং তারপর আপনার পছন্দমতো ডিরেক্টরিতে এটি আনজিপ করুন।
Firebase C++ SDK কোনও প্ল্যাটফর্ম-নির্দিষ্ট নয়, তবে এর জন্য প্ল্যাটফর্ম-নির্দিষ্ট লাইব্রেরি কনফিগারেশন প্রয়োজন।
Android
আমরা CMake ব্যবহার করার সাজেশন দিই, তবে আপনার অ্যাপে
libfirebase_app.a এবং libfirebase_gma.a লিঙ্ক করার জন্য আমাদের
সাধারণ Firebase C++ SDK শুরু করা
নির্দেশিকা থেকে ndk-build সংক্রান্ত নির্দেশাবলী পেতে পারেন।
আপনার প্রোজেক্টের
gradle.propertiesফাইলে, আনজিপ করা SDK-এর লোকেশন নির্দিষ্ট করুন:systemProp.firebase_cpp_sdk.dir=FULL_PATH_TO_SDKআপনার প্রোজেক্টের
settings.gradleফাইলে, নিম্নলিখিত কন্টেন্ট যোগ করুন:def firebase_cpp_sdk_dir = System.getProperty('firebase_cpp_sdk.dir') gradle.ext.firebase_cpp_sdk_dir = "$firebase_cpp_sdk_dir" includeBuild "$firebase_cpp_sdk_dir"আপনার মডিউল (অ্যাপ-লেভেল) Gradle ফাইলে—সাধারণত
app/build.gradle— নিম্নলিখিত কন্টেন্ট যোগ করুন, যার মধ্যে Google Mobile Ads C++ SDK-এর লাইব্রেরি নির্ভরতা অন্তর্ভুক্ত।android.defaultConfig.externalNativeBuild.cmake { arguments "-DFIREBASE_CPP_SDK_DIR=$gradle.firebase_cpp_sdk_dir" } # Add the dependency for the Google Mobile Ads C++ SDK apply from: "$gradle.firebase_cpp_sdk_dir/Android/firebase_dependencies.gradle" firebaseCpp.dependencies { gma }আপনার প্রোজেক্টের
CMakeLists.txtফাইলে, নিম্নলিখিত কন্টেন্ট যোগ করুন।# Add Firebase libraries to the target using the function from the SDK. add_subdirectory(${FIREBASE_CPP_SDK_DIR} bin/ EXCLUDE_FROM_ALL) # Add the Google Mobile Ads C++ SDK. # The Firebase C++ library `firebase_app` is required, # and it must always be listed last. set(firebase_libs firebase_gma firebase_app ) target_link_libraries(${target_name} "${firebase_libs}")সব ডিপেন্ডেন্সির প্রয়োজনীয় ভার্সন আছে কিনা তা নিশ্চিত করতে আপনার অ্যাপ সিঙ্ক করুন।
iOS
এই বিভাগে উল্লেখ করা ধাপগুলি হল কীভাবে আপনার iOS প্রোজেক্টে Google Mobile Ads C++ SDK যোগ করতে হয় তার একটি উদাহরণ।
এগুলি রান করিয়ে CocoaPods ভার্সন ১ বা তার পরবর্তী যেকোনও ভার্সন পান:
sudo gem install cocoapods --preআনজিপ করা SDK থেকে Google Mobile Ads pod যোগ করুন।
আপনার আগে থেকে কোনও Podfile না থাকলে, একটি তৈরি করুন:
cd APP_DIRECTORYpod initআপনার Podfile-এ, Google Mobile Ads C++ SDK, Google User Messaging Platform SDK এবং ন্যূনতম Firebase core SDK-এর জন্য পড যোগ করুন (GMA C++ SDK-এর জন্য প্রয়োজন):
pod 'Firebase/CoreOnly' pod 'Google-Mobile-Ads-SDK' pod 'GoogleUserMessagingPlatform'পড ইনস্টল করুন, তারপর Xcode-এ
.xcworkspaceফাইল খুলুন।pod installopen APP.xcworkspaceপ্রোজেক্টে Firebase C++ SDK থেকে নিম্নলিখিত ফ্রেমওয়ার্ক যোগ করুন:
xcframeworks/firebase.xcframeworkxcframeworks/firebase_gma.xcframework
আপনি একদম রেডি! আপনার C++ অ্যাপ, অন্য কোনও Firebase পরিষেবা ছাড়াই Google Mobile Ads C++ SDK ব্যবহার করার জন্য কনফিগার করা আছে।
আপনার অ্যাপের AdMob অ্যাপ আইডি কনফিগার করা
Android
মোবাইল বিজ্ঞাপন SDK Android গাইড অনুযায়ী আপনার অ্যাপ কনফিগার করুন বিকল্পের ৩ নম্বর ধাপ অনুসরণ করুন এবং তারপরে এই পৃষ্ঠায় ফিরে আসুন।
iOS
Mobile Ads SDK iOS গাইড-এ বর্ণিত আপনার Info.plist আপডেট করুন ধাপ অনুসরণ করুন এবং তারপরে এই পৃষ্ঠায় ফিরে আসুন।
Google Mobile Ads SDK চালু করা
বিজ্ঞাপন লোড করার আগে, আপনার অ্যাপকে Google Mobile Ads C++ SDK-কে
firebase::gma::Initialize() কল করে ইনিশিয়ালাইজ করতে হবে, যা SDK-কে ইনিশিয়ালাইজ করে এবং ইনিশিয়ালাইজেশন সম্পূর্ণ হলে (অথবা ৩০ সেকেন্ডের
টাইমআউট পরে) firebase::Future সম্পূর্ণ করে। এটি শুধুমাত্র একবারই করতে হবে, আদর্শভাবে অ্যাপ লঞ্চ করার সময়।
Initialize() কল করার পরে Google Mobile Ads C++ SDK বা মধ্যস্থতাকারী পার্টনার SDK-এর মাধ্যমে বিজ্ঞাপন প্রিলোড করা হতে পারে
। আপনাকে যদি
ইউরোপীয় অর্থনৈতিক অঞ্চলের (EEA) ব্যবহারকারীদের থেকে সম্মতি নিতে হয়, তাহলে কোনও অনুরোধ-নির্দিষ্ট ফ্ল্যাগ সেট করুন (যেমন,
tag_for_child_directed_treatment বা tag_for_under_age_of_consent) অথবা
বিজ্ঞাপন লোড করার আগে অন্য কোনও অ্যাকশন নিন। Google Mobile
Ads C++ SDK চালু করার আগে firebase::gma::SetRequestConfiguration() ইনভোক করে এটি নিশ্চিত করুন। আরও তথ্যের জন্য আমাদের
টার্গেটিং নির্দেশিকা দেখুন।
Initialize()-কে কীভাবে কল করতে হয় তার একটি উদাহরণ এখানে দেওয়া হল:
Android
// Initialize the Google Mobile Ads library
firebase::InitResult result;
Future<AdapterInitializationStatus> future =
firebase::gma::Initialize(jni_env, j_activity, &result);
if (result != kInitResultSuccess) {
// Initialization immediately failed, most likely due to a missing
// dependency. Check the device logs for more information.
return;
}
// Monitor the status of the future.
// See "Use a Future to monitor the completion status of a method call" below.
if (future.status() == firebase::kFutureStatusComplete &&
future.error() == firebase::gma::kAdErrorCodeNone) {
// Initialization completed.
} else {
// Initialization on-going, or an error has occurred.
}
iOS
// Initialize the Google Mobile Ads library.
firebase::InitResult result;
Future<AdapterInitializationStatus> future =
firebase::gma::Initialize(&result);
if (result != kInitResultSuccess) {
// Initialization immediately failed, most likely due to a missing
// dependency. Check the device logs for more information.
return;
}
// Monitor the status of the future.
// See "Use a Future to monitor the completion status of a method call" below.
if (future.status() == firebase::kFutureStatusComplete &&
future.error() == firebase::gma::kAdErrorCodeNone) {
// Initialization completed.
} else {
// Initialization on-going, or an error has occurred.
}
মেথড কলের সম্পূর্ণ হওয়ার স্ট্যাটাস মনিটর করতে Future ব্যবহার করুন
Future আপনাকে অ্যাসিঙ্ক্রোনাস মেথড কলের
সম্পূর্ণ হওয়ার স্ট্যাটাস নির্ধারণ করার একটি উপায় প্রদান করে।
যেমন, আপনার অ্যাপ firebase::gma::Initialize() কল করলে, একটি নতুন
firebase::Future তৈরি করে ফেরত দেওয়া হয়। তারপরে, আপনার অ্যাপ
status()-এর Future পোল করতে পারে যাতে ইনিশিয়ালাইজেশন কখন সম্পূর্ণ হয়েছে তা নির্ধারণ করা যায়।
সম্পূর্ণ হয়ে গেলে, আপনার অ্যাপ result()-কে কল করে ফলাফল
AdapterInitializationStatus পেতে পারে।
যেসব পদ্ধতি Future রিটার্ন করে, সেগুলির সাথে সংশ্লিষ্ট "শেষ ফলাফল" পদ্ধতি থাকে যা
অ্যাপ কোনও নির্দিষ্ট অ্যাকশনের জন্য সবচেয়ে সাম্প্রতিক Future পেতে ব্যবহার করতে পারে। যেমন, firebase::gma::Initialize()-এর
একটি সংশ্লিষ্ট পদ্ধতি আছে, যাকে
firebase::gma::InitializeLastResult() বলা হয়। এটি একটি Future রিটার্ন করে যা আপনার অ্যাপ
firebase::gma::Initialize()-এ করা শেষ কলের স্ট্যাটাস চেক করতে ব্যবহার করতে পারে।
Future-এর স্ট্যাটাস সম্পূর্ণ হলে এবং এর সমস্যার কোড
firebase::gma::kAdErrorCodeNone হলে, অপারেশনটি
সফলভাবে সম্পূর্ণ হয়েছে।
এছাড়াও, Future সম্পূর্ণ হলে কলব্যাক ইনভোক করার জন্য আপনি রেজিস্টার করতে পারেন। কিছু
ক্ষেত্রে, কলব্যাক অন্য থ্রেডে রান করবে, তাই আপনার কোড থ্রেড-সেফ
কিনা তা নিশ্চিত করুন। এই কোড স্নিপেটটি কলব্যাকের জন্য একটি ফাংশন পয়েন্টার ব্যবহার করে:
// Registers the OnCompletion callback. user_data is a pointer that is passed verbatim
// to the callback as a void*. This allows you to pass any custom data to the callback
// handler. In this case, the app has no data, so you must pass nullptr.
firebase::gma::InitializeLastResult().OnCompletion(OnCompletionCallback,
/*user_data=*/nullptr);
// The OnCompletion callback function.
static void OnCompletionCallback(
const firebase::Future<AdapterInitializationStatus>& future, void* user_data) {
// Called when the Future is completed for the last call to firebase::gma::Initialize().
// If the error code is firebase::gma::kAdErrorCodeNone,
// then the SDK has been successfully initialized.
if (future.error() == firebase::gma::kAdErrorCodeNone) {
// success!
} else {
// failure.
}
}
বিজ্ঞাপনের ফর্ম্যাট বেছে নিন
Google Mobile Ads C++ SDK এখন ইমপোর্ট করা হয়েছে এবং আপনি বিজ্ঞাপন প্রয়োগ করার জন্য প্রস্তুত। AdMob বিভিন্ন ধরনের বিজ্ঞাপনের ফর্ম্যাট অফার করে, তাই আপনি এমন একটি বেছে নিতে পারেন যা আপনার অ্যাপের ব্যবহারকারীর অভিজ্ঞতার সাথে সবচেয়ে ভালোভাবে মানানসই।
ব্যানার
ডিভাইস স্ক্রিনের উপরে বা নিচে দেখানো আয়তাকার বিজ্ঞাপন। ব্যবহারকারী অ্যাপের সাথে ইন্টার্যাক্ট করার সময় ব্যানার বিজ্ঞাপন স্ক্রিনে থাকে এবং একটি নির্দিষ্ট সময় পরে অটোমেটিক রিফ্রেশ হতে পারে। আপনি মোবাইল বিজ্ঞাপন সম্পর্কে নতুন হলে, এগুলি থেকে শুরু করা যেতে পারে।
স্থান
ব্যবহারকারী বন্ধ না করা পর্যন্ত অ্যাপের ইন্টারফেস ঢেকে রাখা ফুল-স্ক্রিন বিজ্ঞাপন। এগুলি কোনও অ্যাপের এক্সিকিউশনের স্বাভাবিক বিরতিতে সবচেয়ে ভালভাবে ব্যবহার করা যায়, যেমন কোনও গেমের লেভেল পরিবর্তন হওয়ার সময় বা কোনও টাস্ক সম্পূর্ণ হওয়ার ঠিক পরে।
ইন্টারস্টিশিয়াল বিজ্ঞাপন প্রয়োগ করা
পুরস্কার জিতেছেন
ব্যবহারকারীদের ছোট ভিডিও দেখার জন্য এবং খেলার উপযুক্ত বিজ্ঞাপন ও সমীক্ষার সাথে ইন্টার্যাক্ট করার জন্য পুরস্কার দেয় এমন বিজ্ঞাপন। ফ্রি-টু-প্লে অ্যাপ মনিটাইজ করার জন্য ব্যবহার করা হয়।