এই নির্দেশিকাটি সেইসব প্রকাশকদের জন্য যারা Firebase ব্যবহার না করেই AdMob দিয়ে C++ অ্যাপ থেকে অর্থ উপার্জন করতে চান। যদি আপনি আপনার অ্যাপে Firebase অন্তর্ভুক্ত করার পরিকল্পনা করেন—অথবা যদি আপনি এটি বিবেচনা করেন—তাহলে এই নির্দেশিকার পরিবর্তে AdMob with Firebase সংস্করণটি দেখুন।
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++ পরীক্ষা অ্যাপটি ডাউনলোড করে অনুসরণ করার পরামর্শ দিচ্ছি।
পূর্বশর্ত
অ্যান্ড্রয়েড
- অ্যান্ড্রয়েড স্টুডিও ৩.২ বা তার উচ্চতর সংস্করণ ব্যবহার করুন
- আপনার অ্যাপের বিল্ড ফাইলে নিম্নলিখিত মানগুলি ব্যবহার করা হয়েছে কিনা তা নিশ্চিত করুন:
- ১৬ বা তার বেশি ভার্সনের একটি
minSdkVersion - ২৮ বা তার বেশি ভার্সনের একটি
compileSdkVersion
- ১৬ বা তার বেশি ভার্সনের একটি
আইওএস
- Xcode 13 বা তার উচ্চতর ব্যবহার করুন
- iOS 10.0 বা তার উচ্চতর ভার্সন লক্ষ্য করুন
আপনার AdMob অ্যাকাউন্টে অ্যাপ সেট আপ করুন
নিম্নলিখিত ধাপগুলি পূরণ করে আপনার অ্যাপটিকে AdMob অ্যাপ হিসেবে নিবন্ধন করুন:
একটি AdMob অ্যাকাউন্টে সাইন ইন করুন অথবা সাইন আপ করুন ।
AdMob-এ আপনার অ্যাপটি নিবন্ধন করুন । এই ধাপটি একটি অনন্য AdMob অ্যাপ আইডি সহ একটি AdMob অ্যাপ তৈরি করে যা এই নির্দেশিকায় পরে প্রয়োজন।
গুগল মোবাইল বিজ্ঞাপন সি++ এসডিকে ইনস্টল করুন
যেহেতু Google Mobile Ads C++ SDK firebase::gma নেমস্পেসে থাকে, তাই Firebase C++ SDK ডাউনলোড করুন এবং তারপর এটি আপনার পছন্দের ডিরেক্টরিতে আনজিপ করুন।
Firebase C++ SDK প্ল্যাটফর্ম-নির্দিষ্ট নয়, তবে এর জন্য প্ল্যাটফর্ম-নির্দিষ্ট লাইব্রেরি কনফিগারেশন প্রয়োজন।
অ্যান্ড্রয়েড
আমরা CMake ব্যবহার করার পরামর্শ দিচ্ছি, তবে আপনি libfirebase_app.a এবং libfirebase_gma.a কে আপনার অ্যাপের সাথে লিঙ্ক করার জন্য আমাদের সাধারণ Firebase C++ SDK Get Started Guide- এ 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 মোবাইল বিজ্ঞাপন 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 প্রোজেক্টে Google মোবাইল বিজ্ঞাপন C++ SDK কীভাবে যোগ করবেন তার একটি উদাহরণ।
CocoaPods ভার্সন ১ বা তার পরবর্তী ভার্সনটি পেতে নিম্নলিখিতটি ব্যবহার করুন:
sudo gem install cocoapods --preআনজিপ করা SDK থেকে Google মোবাইল বিজ্ঞাপন পড যোগ করুন।
যদি আপনার কাছে ইতিমধ্যেই একটি পডফাইল না থাকে তবে একটি তৈরি করুন:
cd APP_DIRECTORYpod initআপনার পডফাইলে, Google মোবাইল বিজ্ঞাপন C++ SDK, Google ব্যবহারকারী বার্তা প্ল্যাটফর্ম 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.xcframework -
xcframeworks/firebase_gma.xcframework
-
তুমি সম্পূর্ণ প্রস্তুত! তোমার C++ অ্যাপটি অন্য কোনও Firebase পরিষেবা ছাড়াই Google Mobile Ads C++ SDK ব্যবহার করার জন্য কনফিগার করা হয়েছে।
আপনার অ্যাপের AdMob অ্যাপ আইডি কনফিগার করুন
অ্যান্ড্রয়েড
মোবাইল বিজ্ঞাপন SDK অ্যান্ড্রয়েড নির্দেশিকা অনুসারে আপনার অ্যাপ কনফিগার করুন এর ধাপ 3 অনুসরণ করুন এবং তারপরে এই পৃষ্ঠায় ফিরে আসুন।
আইওএস
মোবাইল বিজ্ঞাপন SDK iOS নির্দেশিকা অনুসারে আপনার Info.plist আপডেট করুন ধাপটি অনুসরণ করুন এবং তারপরে এই পৃষ্ঠায় ফিরে আসুন।
Google মোবাইল বিজ্ঞাপন SDK আরম্ভ করুন
বিজ্ঞাপন লোড করার আগে, আপনার অ্যাপটিকে firebase::gma::Initialize() কল করে Google Mobile Ads C++ SDK আরম্ভ করতে বলুন যা SDK আরম্ভ করে এবং আরম্ভ সম্পূর্ণ হওয়ার পরে (অথবা 30-সেকেন্ডের টাইমআউটের পরে) একটি 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() কীভাবে কল করবেন তার একটি উদাহরণ এখানে দেওয়া হল:
অ্যান্ড্রয়েড
// 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.
}
আইওএস
// 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() পোল করে নির্ধারণ করতে পারে যে কখন initialization সম্পন্ন হয়েছে। একবার সম্পূর্ণ হয়ে গেলে, আপনার অ্যাপ ফলাফল AdapterInitializationStatus পেতে result() ইনভ্যাক করতে পারে।
যে পদ্ধতিগুলি একটি Future রিটার্ন করে, তার একটি অনুরূপ "last result" পদ্ধতি থাকে যা অ্যাপগুলি একটি নির্দিষ্ট অ্যাকশনের জন্য সাম্প্রতিকতম 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 বিভিন্ন ধরণের বিজ্ঞাপন ফর্ম্যাট অফার করে, তাই আপনি আপনার অ্যাপের ব্যবহারকারীর অভিজ্ঞতার সাথে সবচেয়ে উপযুক্ত একটি বেছে নিতে পারেন।
ব্যানার
ডিভাইসের স্ক্রিনের উপরে বা নীচে প্রদর্শিত আয়তক্ষেত্রাকার বিজ্ঞাপন। ব্যবহারকারীরা অ্যাপের সাথে ইন্টারঅ্যাক্ট করার সময় ব্যানার বিজ্ঞাপনগুলি স্ক্রিনে থাকে এবং একটি নির্দিষ্ট সময় পরে স্বয়ংক্রিয়ভাবে রিফ্রেশ হতে পারে। আপনি যদি মোবাইল বিজ্ঞাপনে নতুন হন, তাহলে শুরু করার জন্য এগুলি একটি দুর্দান্ত জায়গা।
ব্যানার বিজ্ঞাপন বাস্তবায়ন করুন
ইন্টারস্টিশিয়াল
পূর্ণ-স্ক্রিন বিজ্ঞাপন যা ব্যবহারকারী দ্বারা বন্ধ না করা পর্যন্ত একটি অ্যাপের ইন্টারফেসকে ঢেকে রাখে। অ্যাপের এক্সিকিউশনের সময় স্বাভাবিক বিরতিতে, যেমন গেমের স্তরের মধ্যে বা কোনও কাজ শেষ হওয়ার ঠিক পরে, এগুলি সবচেয়ে ভালোভাবে ব্যবহার করা হয়।
ইন্টারস্টিশিয়াল বিজ্ঞাপন প্রয়োগ করুন
পুরস্কৃত
ছোট ভিডিও দেখার এবং প্লেযোগ্য বিজ্ঞাপন এবং জরিপের সাথে ইন্টারঅ্যাক্ট করার জন্য ব্যবহারকারীদের পুরস্কৃত করে এমন বিজ্ঞাপন। ফ্রি-টু-প্লে অ্যাপগুলি নগদীকরণের জন্য ব্যবহৃত হয়।