Google 致力于为黑人社区推动种族平等。查看具体举措
This page was translated by the Cloud Translation API.
Switch to English

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

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

যদি এই গাইডের মধ্য দিয়ে আপনি যদি প্রথমবারের মতো চলে যান তবে আপনাকে অ্যাডমব টেস্ট অ্যাপ্লিকেশনটি ব্যবহার করে ডাউনলোড এবং অনুসরণ করার পরামর্শ দেওয়া হচ্ছে।

ফায়ারব্যাসের সাথে একীভূত করুন

  1. আপনার সি ++ অ্যাপ্লিকেশনটিতে অ্যাডমবব এবং ফায়ারবেস যুক্ত করতে আইওএসের সেটআপ বা অ্যান্ড্রয়েড বিভাগের জন্য সেটআপের পদক্ষেপগুলি সম্পূর্ণ করুন।

  2. আপনার অ্যাপের সি ++ কোডে নিম্নলিখিত শিরোনামগুলি অন্তর্ভুক্ত করুন:

    #include "firebase/admob.h"
    #include "firebase/admob/types.h"
    #include "firebase/app.h"
    #include "firebase/future.h"
    
  3. আপনার অ্যাডমব অ্যাপ্লিকেশন আইডি দিয়ে অ্যাডমব পাঠাগারটি শুরু করতে আপনার অ্যাপ্লিকেশনটিতে সি ++ কোডে নিম্নলিখিতটি যুক্ত করুন (ব্যানার ভিউ বা আন্তঃদেশীয় বিজ্ঞাপন তৈরি করার আগে এই কোডটি কার্যকর করা উচিত):

    #if defined(__ANDROID__)
    // Create the Firebase app.
    firebase::App* app =
        firebase::App::Create(firebase::AppOptions(),
                              your_jni_env,
                              your_android_activity);
    
    // Your Android AdMob app ID.
    const char* kAdMobAppID = "ca-app-pub-XXXXXXXXXXXXXXXX~NNNNNNNNNN";
    #else
    // Create the Firebase app.
    firebase::App* app =
        firebase::App::Create(firebase::AppOptions());
    
    // Your iOS AdMob app ID.
    const char* kAdMobAppID = "ca-app-pub-XXXXXXXXXXXXXXXX~NNNNNNNNNN";
    #endif  // __ANDROID__
    
    // Initialize the AdMob library with your AdMob app ID.
    firebase::admob::Initialize(*app, kAdMobAppID);
    

গুগল মোবাইল বিজ্ঞাপন এসডিকে সাথে ইন্টারঅ্যাক্ট করুন

বিজ্ঞাপন ইউনিট আইডি সেট আপ করুন

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

#if defined(__ANDROID__)
// Android ad unit IDs
const char* kBannerAdUnit = "ca-app-pub-3940256099942544/6300978111";
const char* kInterstitialAdUnit = "ca-app-pub-3940256099942544/1033173712";
#else
// iOS ad unit IDs
const char* kBannerAdUnit = "ca-app-pub-3940256099942544/2934735716";
const char* kInterstitialAdUnit = "ca-app-pub-3940256099942544/4411468910";
#endif

একটি ব্যানার দৃশ্য সেট আপ করুন

আপনার অ্যাপের সি ++ কোডে নিম্নলিখিত শিরোনামটি যুক্ত করুন:

#include "firebase/admob/banner_view.h"

একটি BannerView অবজেক্টটি ঘোষণা করুন এবং ইনস্ট্যান্ট করুন:

firebase::admob::BannerView* banner_view;
banner_view = new firebase::admob::BannerView();

একটি AdSize তৈরি করুন এবং ব্যানার দৃশ্যটি আরম্ভ করুন:

firebase::admob::AdSize ad_size;
ad_size.ad_size_type = firebase::admob::kAdSizeStandard;
ad_size.width = 320;
ad_size.height = 50;
// my_ad_parent is a reference to an iOS UIView or an Android Activity.
// This is the parent UIView or Activity of the banner view.
banner_view->Initialize(static_cast<firebase::admob::AdParent>(my_ad_parent), kBannerAdUnit, ad_size);

একটি আন্তঃস্থায়ী বিজ্ঞাপন সেট আপ করুন

আপনার অ্যাপের সি ++ কোডে নিম্নলিখিত শিরোনামটি যুক্ত করুন:

#include "firebase/admob/interstitial_ad.h"

একটি InterstitialAd অবজেক্টটি ঘোষণা এবং ইনস্ট্যান্ট করুন:

firebase::admob::InterstitialAd* interstitial_ad;
interstitial_ad = new firebase::admob::InterstitialAd();

আন্তঃস্থায়ী বিজ্ঞাপন শুরু করুন:

// my_ad_parent is a reference to an iOS UIView or an Android Activity.
// This is the parent UIView or Activity of the interstitial ad.
interstitial_ad->Initialize(static_cast<firebase::admob::AdParent>(my_ad_parent), kInterstitialAdUnit);

একটি অ্যাডমব বিজ্ঞাপন অনুরোধ তৈরি করুন

অ্যাডমব লাইব্রেরি আপনাকে একটি বিজ্ঞাপনের অনুরোধে কাস্টম টার্গেটিংয়ের তথ্য সরবরাহ করতে দেয়। এটি একটি AdRequest সদস্যদের সেট করে করা হয় setting স্ট্রাক্টটি তখন BannerView::LoadAd() বা InterstitialAd::LoadAd() পদ্ধতিতে পাস করা হয়।

বিজ্ঞাপনের অনুরোধগুলি লক্ষ্য এবং কাস্টমাইজ করার বিষয়ে সাধারণ তথ্যের জন্য, আমাদের আইওএস এবং অ্যান্ড্রয়েড টার্গেটিং গাইডগুলি পরীক্ষা করে দেখুন।

বিজ্ঞাপনের অনুরোধটি করতে এখানে BannerView এবং InterstitialAd BannerView দ্বারা ব্যবহৃত AdRequest স্ট্রাক্টটি রয়েছে:

struct AdRequest {
  const char **test_device_ids;
  unsigned int test_device_id_count;
  const char **keywords;
  unsigned int keyword_count;
  const KeyValuePair *extras;
  unsigned int extras_count;
  int birthday_day;
  int birthday_month;
  int birthday_year;
  Gender gender;
  ChildDirectedTreatmentState tagged_for_child_directed_treatment;
};

AdRequest ঘোষণা এবং সূচনা করুন:

// Initialize all the AdRequest struct member values to zero.
firebase::admob::AdRequest my_ad_request = {};

নিম্নলিখিত অনুরোধটি বিজ্ঞাপনের অনুরোধে টার্গেটিং তথ্য যুক্ত করতে AdRequest সদস্য মানগুলি সেট করে:

// If the app is aware of the user's gender, it can be added to the
// targeting information. Otherwise, "unknown" should be used.
my_ad_request.gender = firebase::admob::kGenderUnknown;

// The user's birthday, if known. Note that months are indexed from one.
my_ad_request.birthday_day = 10;
my_ad_request.birthday_month = 11;
my_ad_request.birthday_year = 1976;

// Additional keywords to be used in targeting.
static const char* kKeywords[] = {"AdMob", "C++", "Fun"};
my_ad_request.keyword_count = sizeof(kKeywords) / sizeof(kKeywords[0]);
my_ad_request.keywords = kKeywords;

// "Extra" key value pairs can be added to the request as well.
static const firebase::admob::KeyValuePair kRequestExtras[] = {
    {"the_name_of_an_extra", "the_value_for_that_extra"}};
my_ad_request.extras_count = sizeof(kRequestExtras) / sizeof(kRequestExtras[0]);
my_ad_request.extras = kRequestExtras;

// Register the device IDs associated with any devices that will be used to
// test your app. Below are sample test device IDs used for making the ad request.
static const char* kTestDeviceIDs[] =
    {"2077ef9a63d2b398840261c8221a0c9b",
     "098fe087d987c9a878965454a65654d7"};
my_ad_request.test_device_id_count =
    sizeof(kTestDeviceIDs) / sizeof(kTestDeviceIDs[0]);
my_ad_request.test_device_ids = kTestDeviceIDs;

BannerView::LoadAd() এবং Interstitial::LoadAd() পদ্ধতিগুলিতে AdRequest স্ট্রাক্টটি পাস করুন:

banner_view->LoadAd(my_ad_request);
interstitial_ad->LoadAd(my_ad_request);

Note: A single `AdRequest` struct can be reused for multiple calls.

পদ্ধতি কলগুলির সমাপ্তির স্থিতি পর্যবেক্ষণ করতে ফিউচারগুলি ব্যবহার করুন

BannerView আপনার পূর্ববর্তী BannerView বা InterstitialAd পদ্ধতি কলগুলির সমাপ্তির স্থিতি নির্ধারণ করার একটি উপায় সরবরাহ করে। InterstitialAd::LoadAd() পদ্ধতিতে যখন কোনও কল করা হয়, উদাহরণস্বরূপ, একটি নতুন ফিউচার তৈরি করা হয় এবং ফিরে আসে। অ্যাপ্লিকেশনগুলি কখন বিজ্ঞাপনটি লোড হয়ে গেছে তা নির্ধারণ করতে ভবিষ্যতের স্থিতিটি পোল করতে পারে। ফিউচারটি সম্পূর্ণ হয়ে গেলে, আন্তঃদেশীয় বিজ্ঞাপনটি আপনার অ্যাপ্লিকেশনটির পরবর্তী প্রাকৃতিক স্টপিং পয়েন্টে প্রদর্শিত হতে প্রস্তুত।

BannerView এবং InterstitialAd ক্লাসের বেশিরভাগ পদ্ধতির একটি অনুরূপ "শেষ ফলাফল" পদ্ধতি রয়েছে যা অ্যাপ্লিকেশনগুলি প্রদত্ত ক্রিয়াটির জন্য সাম্প্রতিকতম ফিউচারটি পুনরুদ্ধার করতে ব্যবহার করতে পারে। InterstitialAd::LoadAd() পদ্ধতিটির উদাহরণস্বরূপ, InterstitialAd::LoadAdLastResult() নামে একটি সম্পর্কিত পদ্ধতি রয়েছে। এটি এমন ভবিষ্যত ফেরত দেয় যা InterstitialAd::LoadAd() পদ্ধতিতে শেষ কলের স্থিতি পরীক্ষা করতে ব্যবহার করা যেতে পারে।

একইভাবে, অ্যাপ্লিকেশনগুলি BannerView::InitializeLastResult() পদ্ধতিতে সর্বশেষ কলটির স্থিতি (এবং ত্রুটি কোড, যদি থাকে) উপস্থাপন করে কোনও ফিউচার পাওয়ার জন্য BannerView::Initialize() পদ্ধতিটি ব্যবহার করতে পারে। যদি এর স্থিতি সম্পূর্ণ হয় এবং এর ত্রুটি কোডটি firebase::admob::kAdMobErrorNone , তবে আপনি BannerView::Show() পদ্ধতিতে কল করে ব্যানার দৃশ্যটি দৃশ্যমান করতে প্রস্তুত:

if (banner_view->InitializeLastResult().status() ==
    firebase::kFutureStatusComplete &&
    banner_view->InitializeLastResult().error() ==
    firebase::admob::kAdMobErrorNone) {
  banner_view->Show();
}

একবার BannerView::Show() পদ্ধতিতে শেষ কলের জন্য ফিউচারের স্থিতি সম্পূর্ণ হয়ে গেলে আপনি ব্যানার দৃশ্যে কোনও বিজ্ঞাপন লোড করতে প্রস্তুত:

if (banner_view->ShowLastResult().status() ==
    firebase::kFutureStatusComplete &&
    banner_view->ShowLastResult().error() ==
    firebase::admob::kAdMobErrorNone) {
  banner_view->LoadAd(my_ad_request);
}

ইন্টারস্টিটিয়াল বিজ্ঞাপনগুলির জন্য, InterstitialAd::InitializeLastResult() পদ্ধতিতে শেষ কলটির স্থিতি (এবং ত্রুটি কোড, যদি কোনও হয়) উপস্থাপন করে এমন কোনও ফিউচার উপস্থাপনের জন্য InterstitialAd::Initialize() পদ্ধতিটি ব্যবহার করুন। যদি এর স্থিতি সম্পূর্ণ হয় এবং এর ত্রুটি কোডটি firebase::admob::kAdMobErrorNone , তবে আপনি আন্তঃস্থায়ী বিজ্ঞাপনটি লোড করতে প্রস্তুত:

if (interstitial_ad->InitializeLastResult().status() ==
    firebase::kFutureStatusComplete &&
    interstitial_ad->InitializeLastResult().error() ==
    firebase::admob::kAdMobErrorNone) {
  interstitial_ad->LoadAd(my_ad_request);
}

একবার InterstitialAd::LoadAd() পদ্ধতিতে শেষ কলের জন্য ফিউচারের স্থিতিটি সম্পূর্ণ হয়ে গেলে আপনি নিজের অ্যাপে পরবর্তী প্রাকৃতিক স্টপিং পয়েন্টে আন্তঃস্থায়ী বিজ্ঞাপনটি প্রদর্শন করতে প্রস্তুত:

if (interstitial_ad->LoadAdLastResult().status() ==
    firebase::kFutureStatusComplete &&
    interstitial_ad->LoadAdLastResult().error() ==
    firebase::admob::kAdMobErrorNone) {
  interstitial_ad->Show();
}

কোনও ফিউচার সম্পন্ন হওয়ার পরে আপনি কলব্যাকগুলিও নিবন্ধভুক্ত করতে পারেন। এই কোড স্নিপেট কলব্যাকের জন্য একটি ফাংশন পয়েন্টার ব্যবহার করে:

// Initialize the interstitial ad.
interstitial_ad->Initialize(static_cast<firebase::admob::AdParent>(my_ad_parent), kInterstitialAdUnit);

// Registers the OnCompletion callback. user_data is a pointer that is passed verbatim
// to the callback as a void*. In this example, we pass the interstitial ad object to be
// used in the OnCompletionCallback function.
interstitial_ad->InitializeLastResult().OnCompletion(OnCompletionCallback, interstitial_ad /*user_data*/);

// The OnCompletion callback function.
static void OnCompletionCallback(const firebase::Future<void>& future, void* user_data) {
  // Called when the Future is completed for the last call to the InterstitialAd::Initialize()
  // method. If the error code is firebase::admob::kAdMobErrorNone, then you're ready to
  // load the interstitial ad.
  firebase::admob::InterstitialAd *interstitial_ad = static_cast<firebase::admob::InterstitialAd*>(user_data);
  if (future.error() == firebase::admob::kAdMobErrorNone) {
    interstitial_ad->LoadAd(my_ad_request);
  }
}

বিজ্ঞাপনের জীবনচক্র সংক্রান্ত ইভেন্টগুলি সম্পর্কে অবহিত হতে শ্রোতার ব্যবহার করুন

BannerView::Listener একটি বিমূর্ত BannerView::Listener ক্লাস সরবরাহ করে যা আপনি ব্যানার ভিউ BannerView::SetListener() পদ্ধতিতে প্রসারিত করতে এবং পাস করতে পারেন যাতে ব্যানার ভিউয়ের উপস্থাপনার BannerView::SetListener() এবং BannerView::SetListener() পরিবর্তন সম্পর্কে অবহিত করা যায়। অনুরূপ বিমূর্ত InterstitialAd::Listener শ্রেণিটি আন্তঃস্থির বিজ্ঞাপনগুলির জন্যও সরবরাহ করা হয় যা আন্তঃস্থায়ী বিজ্ঞাপনের উপস্থাপনের স্থিতিতে পরিবর্তনের বিষয়ে অবহিত করার জন্য বাড়ানো যেতে পারে।

নীচে BannerView::Listener শ্রেণি প্রসারিত এমন শ্রেণীর উদাহরণ প্রয়োগ রয়েছে: (অনুরূপ প্রয়োগটি আন্তঃস্থায়ী বিজ্ঞাপনের জন্য ব্যবহার করা যেতে পারে):

class ExampleBannerViewListener
    : public firebase::admob::BannerView::Listener {
public:
  ExampleBannerViewListener() {}

  void OnPresentationStateChanged(
      firebase::admob::BannerView* banner_view,
      firebase::admob::BannerView::PresentationState state) override {
    // This method gets called when the banner view's presentation
    // state changes.
  }

  void OnBoundingBoxChanged(
      firebase::admob::BannerView* banner_view,
      firebase::admob::BoundingBox box) override {
    // This method gets called when the banner view's bounding box
    // changes.
  }
};

এরপর কি

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