এই নির্দেশিকাটি সেইসব প্রকাশকদের জন্য যারা 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 ব্যবহার করার সাজেশন দিই, তবে আপনি আমাদের
সাধারণ Firebase C++ SDK শুরু করার
নির্দেশিকা-তে ndk-build-এর জন্য নির্দেশাবলী খুঁজে পেতে পারেন
আপনার অ্যাপে libfirebase_app.a এবং libfirebase_gma.a লিঙ্ক করতে।
আপনার প্রোজেক্টের
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 পড যোগ করুন।
আপনার কাছে আগে থেকে না থাকলে, একটি Podfile তৈরি করুন:
cd APP_DIRECTORYpod initআপনার Podfile-এ, Google Mobile Ads C++ SDK, Google User Messaging Platform SDK এবং ন্যূনতম Firebase কোর SDK-এর (GMA C++ SDK-এর জন্য প্রয়োজনীয়) জন্য পড যোগ করুন:
pod 'Firebase/CoreOnly' pod 'Google-Mobile-Ads-SDK' pod 'GoogleUserMessagingPlatform'পড ইনস্টল করুন, তারপর Xcode-এ
.xcworkspaceফাইল খুলুন।pod installopen APP.xcworkspaceFirebase C++ SDK থেকে প্রোজেক্টে নিম্নলিখিত ফ্রেমওয়ার্ক যোগ করুন:
xcframeworks/firebase.xcframeworkxcframeworks/firebase_gma.xcframework
আপনি একদম রেডি! আপনার C++ অ্যাপটি অন্য কোনও Firebase পরিষেবা ছাড়াই Google Mobile Ads C++ SDK ব্যবহার করার জন্য কনফিগার করা হয়েছে।
আপনার অ্যাপের AdMob অ্যাপ আইডি কনফিগার করা
Android
মোবাইল বিজ্ঞাপন SDK Android গাইড-এ বর্ণনা করা আপনার অ্যাপ কনফিগার করুন-এর ৩ নম্বর ধাপ অনুসরণ করুন এবং তারপর এই পৃষ্ঠায় ফিরে আসুন।
iOS
মোবাইল বিজ্ঞাপন SDK iOS গাইড-এ যেভাবে বর্ণনা করা হয়েছে সেই অনুযায়ী আপনার Info.plist আপডেট করুন ধাপ অনুসরণ করুন এবং তারপরে এই পৃষ্ঠায় ফিরে আসুন।
Google Mobile Ads SDK শুরু করা
বিজ্ঞাপন লোড করার আগে, আপনার অ্যাপকে firebase::gma::Initialize() কল করে Google Mobile Ads C++ SDK ইনিশিয়ালাইজ করতে হবে যা 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 তৈরি হয় এবং ফেরত আসে। ইনিশিয়ালাইজেশন কখন সম্পূর্ণ হয়েছে তা নির্ধারণ করতে, আপনার অ্যাপ তখন Future-এর
status() পোল করতে পারবে।
সম্পূর্ণ হয়ে গেলে, আপনার অ্যাপ 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 বিভিন্ন ধরনের বিজ্ঞাপনের ফর্ম্যাট অফার করে, যাতে আপনি এমন একটি বেছে নিতে পারেন যা আপনার অ্যাপের ব্যবহারকারীর অভিজ্ঞতার সাথে সবচেয়ে ভালোভাবে মানানসই।
ব্যানার
ডিভাইসের স্ক্রিনের উপরে বা নিচে আয়তাকার বিজ্ঞাপন দেখানো হয়। ব্যবহারকারী অ্যাপের সাথে ইন্টার্যাক্ট করার সময় ব্যানার বিজ্ঞাপন স্ক্রিনে থেকে যায় এবং নির্দিষ্ট সময় অন্তর অটোমেটিক রিফ্রেশ হতে পারে। আপনি মোবাইল বিজ্ঞাপনের ক্ষেত্রে নতুন হলে, এগুলি শুরু করার জন্য একটি দুর্দান্ত জায়গা।
স্থান
ফুল-স্ক্রিন বিজ্ঞাপন যা ব্যবহারকারী বন্ধ না করা পর্যন্ত অ্যাপের ইন্টারফেসকে ঢেকে রাখে। অ্যাপের স্বাভাবিক বিরতিতে এগুলি ব্যবহার করা সবচেয়ে ভালো, যেমন গেমের লেভেল পরিবর্তন হওয়ার সময় বা কোনও টাস্ক সম্পূর্ণ হওয়ার ঠিক পরে।
ইন্টারস্টিশিয়াল বিজ্ঞাপন প্রয়োগ করা
পুরস্কার জিতেছেন
ছোট ভিডিও দেখা এবং খেলা যায় এমন বিজ্ঞাপন ও সমীক্ষার সাথে ইন্টার্যাক্ট করার জন্য ব্যবহারকারীদের পুরস্কার দেয় এমন বিজ্ঞাপন। ফ্রি-টু-প্লে অ্যাপ মনিটাইজ করার জন্য ব্যবহার করা হয়।