এবার শুরু করা যাক

এই নির্দেশিকাটি প্রকাশকদের জন্য যারা Firebase ব্যবহার না করে AdMob-এর মাধ্যমে একটি C++ অ্যাপ নগদীকরণ করতে চান। আপনি যদি আপনার অ্যাপে Firebase অন্তর্ভুক্ত করার পরিকল্পনা করেন—অথবা আপনি যদি এটি বিবেচনা করছেন—তার পরিবর্তে এই গাইডের Firebase সংস্করণ সহ AdMob দেখুন।

একটি অ্যাপে Google মোবাইল বিজ্ঞাপন C++ SDK সংহত করা হল বিজ্ঞাপন প্রদর্শন এবং উপার্জনের দিকে প্রথম ধাপ। একবার আপনি SDK সংহত করার পরে, আপনি একটি বিজ্ঞাপন ফর্ম্যাট বেছে নিতে পারেন, যেমন ইন্টারস্টিশিয়াল বা পুরস্কৃত, এবং এটি বাস্তবায়নের জন্য পদক্ষেপগুলি অনুসরণ করুন৷

Google মোবাইল বিজ্ঞাপন C++ SDK Google মোবাইল বিজ্ঞাপন iOS এবং Android SDK গুলিকে মোড়ানো, এবং শুধুমাত্র সেই প্ল্যাটফর্মগুলিতে উপলব্ধ। Google মোবাইল বিজ্ঞাপন C++ SDK অ্যাসিঙ্ক্রোনাস ক্রিয়াকলাপগুলিকে সমর্থন করার জন্য Firebase C++ গঠন ব্যবহার করে, তাই এটি firebase::gma নামস্থানে থাকে।

আপনি যদি প্রথমবার এই নির্দেশিকাটি দেখে থাকেন, তাহলে আমরা সুপারিশ করছি যে আপনি Google মোবাইল বিজ্ঞাপন C++ পরীক্ষা অ্যাপ ব্যবহার করে ডাউনলোড করুন এবং অনুসরণ করুন।

পূর্বশর্ত

অ্যান্ড্রয়েড

  • অ্যান্ড্রয়েড স্টুডিও 3.2 বা উচ্চতর ব্যবহার করুন
  • নিশ্চিত করুন যে আপনার অ্যাপের বিল্ড ফাইল নিম্নলিখিত মানগুলি ব্যবহার করে:
    • 16 বা উচ্চতর একটি minSdkVersion
    • 28 বা উচ্চতর একটি compileSdkVersion

iOS

  • Xcode 13 বা উচ্চতর ব্যবহার করুন
  • লক্ষ্য iOS 10.0 বা উচ্চতর

আপনার AdMob অ্যাকাউন্টে আপনার অ্যাপ সেট আপ করুন

নিম্নলিখিত ধাপগুলি সম্পূর্ণ করে আপনার অ্যাপটিকে একটি AdMob অ্যাপ হিসেবে নিবন্ধন করুন:

  1. একটি AdMob অ্যাকাউন্টে সাইন ইন করুন বা সাইন আপ করুন

  2. AdMob-এর সাথে আপনার অ্যাপ নিবন্ধন করুন । এই পদক্ষেপটি একটি অনন্য AdMob অ্যাপ আইডি সহ একটি AdMob অ্যাপ তৈরি করে যা পরবর্তীতে এই নির্দেশিকায় প্রয়োজন।

Google মোবাইল বিজ্ঞাপন C++ SDK ইনস্টল করুন

যেহেতু Google মোবাইল বিজ্ঞাপন C++ SDK firebase::gma নামস্থানে থাকে, তাই Firebase C++ SDK ডাউনলোড করুন এবং তারপর আপনার পছন্দের একটি ডিরেক্টরিতে আনজিপ করুন।

Firebase C++ SDK প্ল্যাটফর্ম-নির্দিষ্ট নয়, তবে এটির জন্য প্ল্যাটফর্ম-নির্দিষ্ট লাইব্রেরি কনফিগারেশন প্রয়োজন।

অ্যান্ড্রয়েড

আমরা CMake ব্যবহার করার পরামর্শ দিই, কিন্তু আপনি আপনার অ্যাপে libfirebase_app.a এবং libfirebase_gma.a লিঙ্ক করার জন্য আমাদের সাধারণ Firebase C++ SDK শুরু করুন গাইডে ndk-বিল্ডের নির্দেশাবলী পেতে পারেন।

  1. আপনার প্রকল্পের gradle.properties ফাইলে, আনজিপ করা SDK-এর অবস্থান উল্লেখ করুন:

    systemProp.firebase_cpp_sdk.dir=FULL_PATH_TO_SDK
    
  2. আপনার প্রকল্পের 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"
    
  3. আপনার মডিউলে (অ্যাপ-লেভেল) গ্রেডল ফাইল—সাধারণত 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
    }
    
  4. আপনার প্রকল্পের 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}")
    
  5. সমস্ত নির্ভরতাগুলির প্রয়োজনীয় সংস্করণ রয়েছে তা নিশ্চিত করতে আপনার অ্যাপ সিঙ্ক করুন।

iOS

এই বিভাগের ধাপগুলি আপনার iOS প্রকল্পে Google মোবাইল বিজ্ঞাপন C++ SDK যোগ করার একটি উদাহরণ।

  1. চালানোর মাধ্যমে CocoaPods সংস্করণ 1 বা তার পরে পান:

    sudo gem install cocoapods --pre
    
  2. আনজিপ করা SDK থেকে Google মোবাইল বিজ্ঞাপন পড যোগ করুন।

    1. আপনার যদি ইতিমধ্যে একটি না থাকে তবে একটি পডফাইল তৈরি করুন:

      cd APP_DIRECTORY
      pod init
      
    2. আপনার পডফাইলে, Google মোবাইল বিজ্ঞাপন C++ SDK, Google ব্যবহারকারী মেসেজিং প্ল্যাটফর্ম SDK এবং ন্যূনতম ফায়ারবেস কোর SDK (GMA C++ SDK-এর জন্য প্রয়োজনীয়): এর জন্য পডগুলি যোগ করুন:

      pod 'Firebase/CoreOnly'
      pod 'Google-Mobile-Ads-SDK'
      pod 'GoogleUserMessagingPlatform'
      
    3. পড ইনস্টল করুন, তারপর Xcode-এ .xcworkspace ফাইলটি খুলুন।

      pod install
      open APP.xcworkspace
      
    4. Firebase C++ SDK থেকে প্রজেক্টে নিম্নলিখিত ফ্রেমওয়ার্ক যোগ করুন:

      • xcframeworks/firebase.xcframework
      • xcframeworks/firebase_gma.xcframework

আপনি সব সেট! আপনার C++ অ্যাপটি অন্য কোনো ফায়ারবেস পরিষেবা ছাড়াই Google মোবাইল বিজ্ঞাপন C++ SDK ব্যবহার করার জন্য কনফিগার করা হয়েছে।

আপনার অ্যাপের AdMob অ্যাপ আইডি কনফিগার করুন

অ্যান্ড্রয়েড

মোবাইল বিজ্ঞাপন SDK অ্যান্ড্রয়েড গাইড দ্বারা বর্ণিত আপনার অ্যাপ কনফিগার করার ধাপ 3 অনুসরণ করুন এবং তারপরে এই পৃষ্ঠায় ফিরে আসুন।

iOS

মোবাইল বিজ্ঞাপন SDK iOS গাইড দ্বারা বর্ণিত আপনার Info.plist আপডেট করুন ধাপ অনুসরণ করুন এবং তারপরে এই পৃষ্ঠায় ফিরে আসুন।

Google মোবাইল বিজ্ঞাপন SDK শুরু করুন৷

বিজ্ঞাপন লোড করার আগে, আপনার অ্যাপটিকে firebase::gma::Initialize() কল করে Google Mobile Ads C++ SDK চালু করতে বলুন যা SDK-কে আরম্ভ করে এবং একটি firebase::Future সম্পন্ন হলে (বা 30-সেকেন্ডের টাইমআউটের পরে)। এটি শুধুমাত্র একবার করা দরকার, আদর্শভাবে অ্যাপ লঞ্চের সময়।

Initialize() এ কল করার পরে Google মোবাইল বিজ্ঞাপন C++ SDK বা মধ্যস্থতা অংশীদার SDK দ্বারা বিজ্ঞাপনগুলি প্রিলোড করা হতে পারে। আপনি যদি ইউরোপীয় অর্থনৈতিক এলাকার (EEA) ব্যবহারকারীদের কাছ থেকে সম্মতি পেতে চান, তাহলে যেকোনও অনুরোধ-নির্দিষ্ট ফ্ল্যাগ সেট করুন (যেমন tag_for_child_directed_treatment বা tag_for_under_age_of_consent ), অথবা অন্যথায় বিজ্ঞাপন লোড করার আগে পদক্ষেপ নিন, firebase::gma::SetRequestConfiguration() মাধ্যমে আপনি তা করছেন তা নিশ্চিত করুন। firebase::gma::SetRequestConfiguration() Google Mobile Ads C++ SDK শুরু করার আগে। আরও তথ্যের জন্য আমাদের লক্ষ্য নির্দেশিকা দেখুন।

কিভাবে 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.
}

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() এ শেষ কলের স্থিতি পরীক্ষা করতে ব্যবহার করতে পারে: 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 মোবাইল বিজ্ঞাপন C++ SDK এখন আমদানি করা হয়েছে এবং আপনি একটি বিজ্ঞাপন বাস্তবায়নের জন্য প্রস্তুত। AdMob বিভিন্ন বিজ্ঞাপন ফর্ম্যাট অফার করে, তাই আপনি আপনার অ্যাপের ব্যবহারকারীর অভিজ্ঞতার সাথে সবচেয়ে উপযুক্ত একটি বেছে নিতে পারেন।

আয়তক্ষেত্রাকার বিজ্ঞাপন যা ডিভাইস স্ক্রিনের উপরে বা নীচে প্রদর্শিত হয়। ব্যবহারকারীরা অ্যাপের সাথে ইন্টারঅ্যাক্ট করার সময় ব্যানার বিজ্ঞাপনগুলি স্ক্রিনে থাকে এবং নির্দিষ্ট সময়ের পরে স্বয়ংক্রিয়ভাবে রিফ্রেশ করতে পারে। আপনি যদি মোবাইল বিজ্ঞাপনে নতুন হন, তাহলে শুরু করার জন্য এগুলি একটি দুর্দান্ত জায়গা৷

ব্যানার বিজ্ঞাপন বাস্তবায়ন

কৌশলে

পূর্ণ-স্ক্রীন বিজ্ঞাপন যা ব্যবহারকারী দ্বারা বন্ধ না হওয়া পর্যন্ত একটি অ্যাপের ইন্টারফেস কভার করে। এগুলি একটি অ্যাপের কার্য সম্পাদনের প্রবাহে প্রাকৃতিক বিরতিতে সর্বোত্তমভাবে ব্যবহার করা হয়, যেমন একটি গেমের স্তরের মধ্যে বা একটি টাস্ক সম্পূর্ণ হওয়ার পরে।

ইন্টারস্টিশিয়াল বিজ্ঞাপন প্রয়োগ করুন

পুরস্কৃত

বিজ্ঞাপন যা ব্যবহারকারীদের ছোট ভিডিও দেখার জন্য এবং প্লেযোগ্য বিজ্ঞাপন এবং সমীক্ষার সাথে ইন্টারঅ্যাক্ট করার জন্য পুরস্কৃত করে। ফ্রি-টু-প্লে অ্যাপগুলি নগদীকরণের জন্য ব্যবহৃত হয়।

পুরস্কৃত বিজ্ঞাপন প্রয়োগ করুন