শুরু করুন


এই নির্দেশিকাটি সেইসব প্রকাশকদের জন্য যারা 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 অ্যাপ হিসেবে আপনার অ্যাপ রেজিস্টার করুন:

  1. AdMob অ্যাকাউন্টে সাইন-ইন করুন অথবা সাইন-আপ করুন।

  2. 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 লিঙ্ক করা যায়।

  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. আপনার মডিউল (অ্যাপ-লেভেল) 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
    }
    
  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 Mobile Ads C++ SDK কীভাবে যোগ করবেন তার উদাহরণ।

  1. এটি রান করে CocoaPods ভার্সন ১ বা তার পরের ভার্সন পান:

    sudo gem install cocoapods --pre
  2. আনজিপ করা SDK থেকে Google Mobile Ads পড যোগ করুন।

    1. আপনার কাছে আগে থেকে Podfile না থাকলে, একটি তৈরি করুন:

      cd APP_DIRECTORY
      pod init
    2. আপনার 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'
      
    3. পড ইনস্টল করুন, তারপর Xcode-এ .xcworkspace ফাইল খুলুন।

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

      • xcframeworks/firebase.xcframework
      • xcframeworks/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 শুরু করা

বিজ্ঞাপন লোড করার আগে, আপনার অ্যাপকে 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 বিভিন্ন ধরনের বিজ্ঞাপনের ফর্ম্যাট অফার করে, যাতে আপনি এমন একটি বেছে নিতে পারেন যা আপনার অ্যাপের ব্যবহারকারীর অভিজ্ঞতার সাথে সবচেয়ে ভালোভাবে মানানসই।

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

ব্যানার বিজ্ঞাপন প্রয়োগ করা

স্থান

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

পৃষ্ঠা মধ্যকালিন বিজ্ঞাপন প্রয়োগ করা

পুরস্কার জিতেছেন

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

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