অ্যাপ খোলার সঙ্গে সঙ্গে দেখা যায় এমন বিজ্ঞাপন সেট-আপ করা

প্ল্যাটফর্ম বেছে নিন: Android iOS Unity Flutter Android (পুরনো)

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

আরও তথ্যের জন্য, অ্যাপ খোলার সাথে সাথে দেখা যায় এমন বিজ্ঞাপন সংক্রান্ত নির্দেশিকা দেখুন।

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

শুরু করার আগে

চালিয়ে যাওয়ার আগে, নিম্নলিখিত কাজগুলি করুন:

  • GMA Next-Gen SDK সেট-আপ করুন।
  • টেস্ট অ্যাপ খোলার সাথে সাথে দেখা যায় এমন বিজ্ঞাপন ইউনিট আইডি ca-app-pub-3940256099942544/9257395921 ব্যবহার করুন।
    • আপনার অ্যাপ তৈরি ও পরীক্ষা করার সময়, লাইভ, প্রোডাকশন বিজ্ঞাপনের পরিবর্তে পরীক্ষামূলক বিজ্ঞাপন ব্যবহার করছেন কিনা তা নিশ্চিত করুন। আপনি টেস্ট বিজ্ঞাপন ইউনিট আইডি ব্যবহার না করলে, Google আপনার অ্যাকাউন্ট সাসপেন্ড করতে পারে।
    • আপনার অ্যাপ প্রকাশ করার আগে, এই আইডিটি আপনার বিজ্ঞাপন ইউনিট আইডি দিয়ে পরিবর্তন করুন।
    • GMA Next-Gen SDK টেস্ট বিজ্ঞাপন সম্পর্কে আরও জানতে, টেস্ট বিজ্ঞাপন চালু করুন বিকল্প দেখুন।

বিজ্ঞাপন প্রিলোড করা (বিটা) সম্পর্কে বোঝা

GMA Next-Gen SDK-এ বিজ্ঞাপন প্রিলোড করার সুবিধা বিজ্ঞাপন লোড ও ক্যাশ করার প্রসেস অটোমেট করে।

বিজ্ঞাপন প্রিলোড করার সুবিধাগুলি নিচে উল্লেখ করা হল:

  • রেফারেন্স ম্যানেজমেন্ট: বিজ্ঞাপন না দেখানো পর্যন্ত রেফারেন্স বজায় রাখে।
  • অটোমেটিক রিলোড করা: ক্যাশে থেকে কোনও বিজ্ঞাপন ফিরিয়ে আনা হলে নতুন বিজ্ঞাপন লোড করে।
  • ম্যানেজ করা রিট্রাই: কোনও বিজ্ঞাপন লোড না হলে নতুন বিজ্ঞাপন লোড করে।
  • মেয়াদ শেষ হওয়া ম্যানেজ করা: মেয়াদ শেষ হওয়ার আগে বিজ্ঞাপন রিফ্রেশ করে।
  • ক্যাশে অপ্টিমাইজেশন: সবচেয়ে বেশি অগ্রাধিকার পাওয়া বিজ্ঞাপন ডেলিভার করার জন্য ক্যাশে অর্ডার অপ্টিমাইজ করে।

বিজ্ঞাপন প্রিলোড করা শুরু করুন

বিজ্ঞাপন প্রিলোড করা শুরু করতে, GMA Next-Gen SDK শুরু করার সময় একবার start মেথড কল করুন। আপনি start মেথড কল করার পরে, GMA Next-Gen SDK অটোমেটিক বিজ্ঞাপন প্রিলোড করে এবং প্রিলোড করা কনফিগারেশনের জন্য ব্যর্থ অনুরোধ আবার চেষ্টা করে।

বিজ্ঞাপন প্রিলোড করা কীভাবে শুরু করবেন তা নিম্নলিখিত উদাহরণ থেকে দেখুন:

Kotlin

val adRequest = AdRequest.Builder(adUnitId).build()
val preloadConfig = PreloadConfiguration(adRequest)
AppOpenAdPreloader.start(adUnitId, preloadConfig)

Java

AdRequest adRequest = new AdRequest.Builder(adUnitId).build();
PreloadConfiguration preloadConfig = new PreloadConfiguration(adRequest);
AppOpenAdPreloader.start(adUnitId, preloadConfig);

AD_UNIT_ID-এর জায়গায় আপনার বিজ্ঞাপন ইউনিট আইডি লিখুন।

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

বিজ্ঞাপন প্রিলোড করার সময় টার্গেটিং প্যারামিটার বা বিজ্ঞাপনের অনুরোধ পরিবর্তন করা যায় না। অনুরোধের মধ্যে টার্গেটিং প্যারামিটার পরিবর্তন করতে হলে, সিঙ্গেল লোডিং ব্যবহার করুন।

প্রিলোড করা বিজ্ঞাপন পান ও দেখান

বিজ্ঞাপন দেখানোর আগে, pollAd মেথড কল করুন। প্রিলোড করা বিজ্ঞাপন অবজেক্ট স্টোর করবেন না। আপনি pollAd মেথড কল করলে, GMA Next-Gen SDK উপলভ্য বিজ্ঞাপন ফিরিয়ে আনে এবং ব্যাকগ্রাউন্ডে অটোমেটিক পরবর্তী বিজ্ঞাপন প্রিলোড করে। কোনও বিজ্ঞাপন উপলভ্য না থাকলে, GMA Next-Gen SDK কোনও বিজ্ঞাপন দেখায় না।

আপনার কাছে কোনও উপলভ্য বিজ্ঞাপন অবজেক্ট থাকলে, বিজ্ঞাপনটি দেখানোর জন্য show মেথড কল করুন। প্রিলোড করা বিজ্ঞাপন কীভাবে ফিরিয়ে আনা ও দেখানো যায় তা নিম্নলিখিত উদাহরণ থেকে দেখুন:

Kotlin

private fun pollAndShowAd(activity: Activity, adUnitId: String) {
  // Polling returns the next available ad and loads another ad in the background.
  val ad = AppOpenAdPreloader.pollAd(adUnitId)
  if (ad == null) {
    Log.e(TAG, "App open ad is not available.")
    return
  }

  // Interact with the ad object as needed.
  Log.d(TAG, "App open ad response info: ${ad.getResponseInfo()}")
  ad.adEventCallback =
    object : AppOpenAdEventCallback {
      override fun onAdImpression() {
        Log.d(TAG, "App open ad recorded an impression.")
      }
    }
  ad.show(activity)
}

Java

private void pollAndShowAd(Activity activity, String adUnitId) {
  // Polling returns the next available ad and loads another ad in the background.
  AppOpenAd ad = AppOpenAdPreloader.pollAd(adUnitId);

  // Interact with the ad object as needed.
  if (ad == null) {
    Log.e(TAG, "App open ad is not available.");
    return;
  }

  Log.d(TAG, "App open ad response info: " + ad.getResponseInfo());
  ad.setAdEventCallback(
      new AppOpenAdEventCallback() {
        @Override
        public void onAdImpression() {
          Log.d(TAG, "App open ad recorded an impression.");
        }
      });

  // Show the ad.
  ad.show(activity);
}

আপনার অ্যাপ কোনও বিজ্ঞাপনের প্লেসমেন্টে পৌঁছালে এবং show মেথড কল করতে পারলে, pollAd মেথড কল করুন। প্রিলোড কলব্যাকে বা কোনও বিজ্ঞাপন হোল্ড করার জন্য isAdAvailable পদ্ধতি চেক করার পরে pollAd পদ্ধতি কল করবেন না। বিজ্ঞাপন দেখানোর আগে আপনাকে যদি বিজ্ঞাপনের মেটাডেটা পরীক্ষা করতে হয়, তাহলে ক্যাশে থেকে বিজ্ঞাপন না সরিয়ে উত্তরের তথ্য পড়ুন।

বিজ্ঞাপন ইভেন্ট শুনুন

বিজ্ঞাপন দেখানোর আগে, বিজ্ঞাপন ইভেন্ট শুনুন। নিম্নলিখিত উদাহরণটি বিজ্ঞাপন ইভেন্টের জন্য কলব্যাক রেজিস্টার করে:

Kotlin

private fun listenToAdEvents() {
  // Listen for ad events.
  val ad = appOpenAd
  if (ad == null) {
    Log.e(TAG, "App open ad is not ready yet.")
    return
  }

  ad.adEventCallback =
    object : AppOpenAdEventCallback {
      override fun onAdShowedFullScreenContent() {
        // App open ad did show.
      }

      override fun onAdDismissedFullScreenContent() {
        // App open ad did dismiss.
        appOpenAd = null
      }

      override fun onAdFailedToShowFullScreenContent(
        fullScreenContentError: FullScreenContentError
      ) {
        // App open ad failed to show.
        Log.e(TAG, "App open ad failed to show: ${fullScreenContentError.message}")
      }

      override fun onAdImpression() {
        // App open ad did record an impression.
      }

      override fun onAdClicked() {
        // App open ad did record a click.
      }
    }
}

Java

private void listenToAdEvents() {
  // Listen for ad events.
  if (appOpenAd == null) {
    Log.e(TAG, "App open ad is not ready yet.");
    return;
  }

  appOpenAd.setAdEventCallback(
      new AppOpenAdEventCallback() {
        @Override
        public void onAdShowedFullScreenContent() {
          // App open ad did show.
        }

        @Override
        public void onAdDismissedFullScreenContent() {
          // App open ad did dismiss.
          appOpenAd = null;
        }

        @Override
        public void onAdFailedToShowFullScreenContent(
            @NonNull FullScreenContentError fullScreenContentError) {
          // App open ad failed to show.
          Log.e(TAG, "App open ad failed to show: " + fullScreenContentError.getMessage());
        }

        @Override
        public void onAdImpression() {
          // App open ad did record an impression.
        }

        @Override
        public void onAdClicked() {
          // App open ad did record a click.
        }
      });
}

ঐচ্ছিক: প্রিলোডিং ইভেন্ট শুনুন

বিজ্ঞাপন প্রিলোড করা শুরু করলে, প্রিলোড ইভেন্টের জন্য রেজিস্টার করুন যাতে বিজ্ঞাপন প্রিলোড করা সম্পূর্ণ হলে, প্রিলোড করা না গেলে অথবা বিজ্ঞাপনের ক্যাশে শেষ হয়ে গেলে আপনি বিজ্ঞপ্তি পান।

বিজ্ঞাপন ইভেন্ট প্রিলোড করার জন্য কীভাবে রেজিস্টার করতে হয় তা নিম্নলিখিত উদাহরণ থেকে দেখুন:

Kotlin

val preloadCallback =
  object : PreloadCallback {
    override fun onAdFailedToPreload(preloadId: String, adError: LoadAdError) {
      Log.d(TAG, "App open preload ad $preloadId failed to load with error: ${adError.message}")
    }

    override fun onAdsExhausted(preloadId: String) {
      Log.i(TAG, "App open preload ad $preloadId is not available")
    }

    override fun onAdPreloaded(preloadId: String, responseInfo: ResponseInfo) {
      Log.i(TAG, "App open preload ad $preloadId is available")
    }
  }
val adRequest = AdRequest.Builder(adUnitId).build()
val preloadConfig = PreloadConfiguration(adRequest)
AppOpenAdPreloader.start(adUnitId, preloadConfig, preloadCallback)

Java

PreloadCallback preloadCallback =
    new PreloadCallback() {
      @Override
      public void onAdFailedToPreload(@NonNull String preloadId, @NonNull LoadAdError adError) {
        Log.d(
            TAG,
            String.format(
                "App open preload ad %s failed to load with error: %s",
                preloadId, adError.getMessage()));
      }

      @Override
      public void onAdsExhausted(@NonNull String preloadId) {
        Log.i(TAG, String.format("App open preload ad %s is not available", preloadId));
      }

      @Override
      public void onAdPreloaded(@NonNull String preloadId, @NonNull ResponseInfo responseInfo) {
        Log.i(TAG, String.format("App open preload ad %s is available", preloadId));
      }
    };
AdRequest adRequest = new AdRequest.Builder(adUnitId).build();
PreloadConfiguration preloadConfig = new PreloadConfiguration(adRequest);
AppOpenAdPreloader.start(adUnitId, preloadConfig, preloadCallback);

কোনও বিজ্ঞাপন লোড না হলে, GMA Next-Gen SDK অটোমেটিক বিজ্ঞাপন প্রিলোড করে এবং প্রিলোড করা কনফিগারেশনের জন্য ব্যর্থ অনুরোধ আবার চেষ্টা করে। ব্যর্থ কলব্যাকে ম্যানুয়াল লোড অনুরোধ করবেন না। প্রিলোড ইভেন্ট কলব্যাক পদ্ধতিতে, pollAd, destroy বা start পদ্ধতি কল করবেন না। কলব্যাকে এইসব পদ্ধতি কল করলে রিকার্সিভ লোড লুপ ইনভোক হতে পারে।

ঐচ্ছিক: বিজ্ঞাপন উপলভ্য কিনা তা চেক করা

কোনও বিজ্ঞাপন উপলভ্য আছে কিনা তা জানতে হলে, বিজ্ঞাপনের উপলভ্যতা চেক করুন। নিম্নলিখিত উদাহরণটি প্রিলোড করা বিজ্ঞাপন উপলভ্য কিনা তা চেক করে:

Kotlin

private fun isAdAvailable(adUnitId: String): Boolean {
  return AppOpenAdPreloader.isAdAvailable(adUnitId)
}

Java

private boolean isAdAvailable(String adUnitId) {
  return AppOpenAdPreloader.isAdAvailable(adUnitId);
}

ঐচ্ছিক: বাফার সাইজ সেট করুন

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

বাফার সাইজ কীভাবে সেট করতে হয় তা নিম্নলিখিত উদাহরণ থেকে দেখুন:

Kotlin

val adRequest = AdRequest.Builder(adUnitId).build()
// Define a PreloadConfiguration and set the buffer size to 2 preloaded ads.
val preloadConfig = PreloadConfiguration(adRequest, bufferSize = 2)
AppOpenAdPreloader.start(adUnitId, preloadConfig)

Java

AdRequest adRequest = new AdRequest.Builder(adUnitId).build();
// Define a PreloadConfiguration and set the buffer size to 2 preloaded ads.
PreloadConfiguration preloadConfig = new PreloadConfiguration(adRequest, 2);
AppOpenAdPreloader.start(adUnitId, preloadConfig);

প্রিলোড ক্যাশে সীমা

GMA Next-Gen SDK সমস্ত বিজ্ঞাপন ইউনিট এবং প্রিলোড আইডি জুড়ে প্রিলোড করা বিজ্ঞাপনের মোট সংখ্যার উপর অ্যাপ-ব্যাপী সীমা প্রয়োগ করে:

  • ডিফল্ট সীমা: Google মেমরিতে সর্বাধিক ছয়টি প্রিলোড করা বিজ্ঞাপন রাখে। এই সীমা সব ফর্ম্যাট ও প্রিলোড আইডি জুড়ে শেয়ার করা হয়।
  • প্রতিটি প্রিলোড আইডির জন্য আমরা বাফার সাইজ দুই রাখার সাজেশন দিই।

ঐচ্ছিক: বিজ্ঞাপন প্রি-লোড করা বন্ধ করুন

আপনার অ্যাপ বিজ্ঞাপন দেখানোর সময় প্রিলোড করার সুবিধা চালু রাখুন। এই সময়ের মধ্যে, destroy পদ্ধতি ব্যবহার করবেন না। সেশনে নির্দিষ্ট প্রিলোড আইডির জন্য আবার বিজ্ঞাপন দেখানোর প্রয়োজন না হলে, আপনি বিজ্ঞাপন প্রিলোড করা বন্ধ করতে পারেন। নির্দিষ্ট প্রিলোড আইডির জন্য বিজ্ঞাপন লোড করা বন্ধ করতে, প্রিলোড আইডির সাথে destroy মেথড কল করুন। destroy পদ্ধতি কল করলে ক্যাশে থেকে প্রিলোড আইডির সাথে যুক্ত সব প্রিলোড করা বিজ্ঞাপন সরিয়ে দেয়।

নিম্নলিখিত উদাহরণ থেকে বিজ্ঞাপন প্রি-লোড করা কীভাবে বন্ধ করতে হয় তা জানতে পারবেন:

Kotlin

private fun stopPreloading(adUnitId: String) {
  // Stops the preloading and destroy preloaded ads.
  AppOpenAdPreloader.destroy(adUnitId)
}

Java

private void stopPreloading(String adUnitId) {
  // Stops the preloading and destroy preloaded ads.
  AppOpenAdPreloader.destroy(adUnitId);
}

ঐচ্ছিক: উত্তরের তথ্য পড়ুন

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

পরবর্তী প্রিলোড করা বিজ্ঞাপন সংক্রান্ত উত্তর কীভাবে পড়তে হয় তা নিম্নলিখিত উদাহরণ থেকে দেখুন:

Kotlin

val responseInfo = AppOpenAdPreloader.peekAdResponseInfo(preloadId)
if (responseInfo == null) {
  Log.e(TAG, "Failed to peek ad response info.")
  return
}

Log.d(TAG, "Peeked ad response ID: ${responseInfo.responseId}")

Java

ResponseInfo responseInfo = AppOpenAdPreloader.peekAdResponseInfo(preloadId);
if (responseInfo == null) {
  Log.e(TAG, "Failed to peek ad response info.");
  return;
}

Log.d(TAG, "Peeked ad response ID: " + responseInfo.getResponseId());

কোল্ড স্টার্ট ও লোডিং স্ক্রিন ম্যানেজ করা

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

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

সাজেশন

অ্যাপ খোলার সাথে সাথে দেখা যায় এমন বিজ্ঞাপনের জন্য এইসব সাজেশন অনুসরণ করুন:

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