DAI এর জন্য IMA SDK সেট আপ করুন, DAI এর জন্য IMA SDK সেট আপ করুন, DAI এর জন্য IMA SDK সেট আপ করুন, DAI এর জন্য IMA SDK সেট আপ করুন

প্ল্যাটফর্ম নির্বাচন করুন: HTML5 Android iOS tvOS Cast Roku

IMA SDK-এর মাধ্যমে আপনার ওয়েবসাইট এবং অ্যাপে মাল্টিমিডিয়া বিজ্ঞাপন যুক্ত করা সহজ। IMA SDK যেকোনো VAST-সম্মত অ্যাড সার্ভার থেকে বিজ্ঞাপনের জন্য অনুরোধ করতে পারে এবং আপনার অ্যাপে বিজ্ঞাপনের প্লেব্যাক পরিচালনা করতে পারে। IMA DAI SDK-এর সাহায্যে, অ্যাপগুলো বিজ্ঞাপন এবং কন্টেন্ট ভিডিও—উভয়ই VOD বা লাইভ কন্টেন্টের জন্য একটি স্ট্রিম অনুরোধ করে। এরপর SDK একটি সম্মিলিত ভিডিও স্ট্রিম ফেরত দেয়, ফলে আপনাকে আপনার অ্যাপের মধ্যে বিজ্ঞাপন এবং কন্টেন্ট ভিডিওর মধ্যে পরিবর্তন পরিচালনা করতে হয় না।

আপনার পছন্দের DAI সমাধানটি নির্বাচন করুন।

পড সার্ভিং ডিএআই

IMA SDK-এর মাধ্যমে আপনার ওয়েবসাইট এবং অ্যাপে মাল্টিমিডিয়া বিজ্ঞাপন যুক্ত করা সহজ। IMA SDK যেকোনো VAST-সম্মত অ্যাড সার্ভার থেকে বিজ্ঞাপনের জন্য অনুরোধ করতে পারে এবং আপনার অ্যাপে বিজ্ঞাপনের প্লেব্যাক পরিচালনা করতে পারে। IMA DAI SDK-এর সাহায্যে, অ্যাপগুলো বিজ্ঞাপন এবং কন্টেন্ট ভিডিও—উভয়ই VOD বা লাইভ কন্টেন্টের জন্য একটি স্ট্রিম অনুরোধ করে। এরপর SDK একটি সম্মিলিত ভিডিও স্ট্রিম ফেরত দেয়, ফলে আপনাকে আপনার অ্যাপের মধ্যে বিজ্ঞাপন এবং কন্টেন্ট ভিডিওর মধ্যে পরিবর্তন পরিচালনা করতে হয় না।

এই নির্দেশিকাটি দেখায় কিভাবে লাইভ এবং VOD স্ট্রিম প্লেব্যাকের জন্য একটি ভিডিও প্লেয়ারের সাথে IMA DAI SDK ব্যবহার করে একটি DAI Pod Serving স্ট্রিম চালানো যায়। একটি সম্পূর্ণ নমুনা ইন্টিগ্রেশন দেখতে বা অনুসরণ করতে, Pod Serving উদাহরণটি ডাউনলোড করুন।

আইএমএ ডিএআই পড পরিবেশনের সংক্ষিপ্ত বিবরণ

  • StreamRequest : একটি অবজেক্ট যা গুগলের বিজ্ঞাপন সার্ভারে একটি স্ট্রিম রিকোয়েস্ট নির্ধারণ করে। পড সার্ভিং সক্ষম করার জন্য এটি অবশ্যই ImaSdkFactory.createPodStreamRequest() অথবা ImaSdkFactory.createPodVodStreamRequest() ব্যবহার করে তৈরি করতে হবে। এই মেথডগুলোর জন্য একটি নেটওয়ার্ক কোড প্রয়োজন, এবং createPodStreamRequest জন্য একটি কাস্টম অ্যাসেট কী ও একটি ঐচ্ছিক এপিআই কী-ও প্রয়োজন। উভয়টিতেই অন্যান্য ঐচ্ছিক প্যারামিটার অন্তর্ভুক্ত থাকে।

  • StreamManager : একটি অবজেক্ট যা ভিডিও স্ট্রিম এবং IMA DAI SDK-এর মধ্যে যোগাযোগ পরিচালনা করে, যেমন ট্র্যাকিং পিং পাঠানো এবং স্ট্রিম ইভেন্টগুলোকে পাবলিশারের কাছে ফরোয়ার্ড করা।

পূর্বশর্ত

  • একটি অ্যান্ড্রয়েড অ্যাপ যা IMA DAI SDK দিয়ে আগে থেকেই সেট আপ করা আছে এবং DAI বিজ্ঞাপন সহ ভিডিও স্ট্রিম চালাতে পারে। যদি আপনার কাছে আগে থেকে এমন কোনো অ্যাপ না থাকে, তাহলে আমরা শুরু করার জন্য Android DAI BasicExample ব্যবহার করার পরামর্শ দিই। এই নির্দেশিকায় উল্লেখিত কোডবেসটি BasicExample-এ রয়েছে।

  • IMA DAI সঠিকভাবে কাজ করার জন্য আপনার অ্যাপের VideoStreamPlayerCallback.onUserTextReceived() ব্যবহার করে ID3 ইভেন্ট পাঠানো জরুরি। এই সম্পূর্ণ সার্ভিস DAI কোড স্নিপেট উদাহরণটি দেখুন।

আপনার পড পরিবেশনের ভেরিয়েবলগুলো সেট আপ করুন

পড সার্ভিংয়ের জন্য প্রয়োজনীয় সমস্ত পরিবর্তন SampleAdsWrapper.java- তে করা হয়। প্রথম ধাপ হলো ধ্রুবক ভেরিয়েবলগুলো আপডেট করা।

এখানে অ্যাড পড স্ট্রিম রিকোয়েস্টের জন্য প্রয়োজনীয় কনস্ট্যান্টগুলো দেওয়া হলো:

  • STREAM_URL : শুধুমাত্র লাইভস্ট্রিমের জন্য ব্যবহৃত হয় - এটি হলো আপনার ম্যানিফেস্ট ম্যানিপুলেটর বা পড সার্ভিং ব্যবহারকারী কোনো থার্ড-পার্টি পার্টনার দ্বারা সরবরাহ করা ভিডিও স্ট্রিম ইউআরএল। অনুরোধ করার আগে, আপনাকে IMA DAI SDK দ্বারা প্রদত্ত স্ট্রিম আইডিটি প্রবেশ করাতে হবে। এক্ষেত্রে, স্ট্রিম ইউআরএল-এ একটি প্লেসহোল্ডার, "[[STREAMID]]" অন্তর্ভুক্ত থাকে, যা অনুরোধ করার আগে স্ট্রিম আইডি দ্বারা প্রতিস্থাপিত হয়।

  • NETWORK_CODE : আপনার অ্যাড ম্যানেজার ৩৬০ অ্যাকাউন্টের নেটওয়ার্ক কোড।

  • কাস্টম অ্যাসেট CUSTOM_ASSET_KEY ): শুধুমাত্র লাইভস্ট্রিমের জন্য ব্যবহৃত হয় - এটি হলো কাস্টম অ্যাসেট কী যা অ্যাড ম্যানেজার ৩৬০-এ আপনার পড সার্ভিং ইভেন্টকে শনাক্ত করে। এটি আপনার ম্যানিফেস্ট ম্যানিপুলেটর অথবা কোনো তৃতীয় পক্ষের পড সার্ভিং পার্টনার তৈরি করতে পারেন।

  • API_KEY : শুধুমাত্র লাইভস্ট্রিমের জন্য ব্যবহৃত হয় - এটি একটি ঐচ্ছিক API কী, যা IMA DAI SDK থেকে একটি স্ট্রিম আইডি পুনরুদ্ধার করার জন্য প্রয়োজন হতে পারে।

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

/** This class implements IMA to add pod ad-serving support to SampleVideoPlayer */
@SuppressLint("UnsafeOptInUsageError")
/* @SuppressLint is needed for new media3 APIs. */
public class SampleAdsWrapper
    implements AdEvent.AdEventListener, AdErrorEvent.AdErrorListener, AdsLoader.AdsLoadedListener {

  // Set up the pod serving variables.
  private static final String NETWORK_CODE = "";
  private static final String CUSTOM_ASSET_KEY = "";
  private static final String API_KEY = "";
  private static final String STREAM_URL = "";
  private static final StreamFormat STREAM_FORMAT = StreamFormat.HLS;

পড সার্ভিং চালু করতে একটি লাইভ বা ভিওডি পড স্ট্রিম অনুরোধ তৈরি করুন।

লাইভ স্ট্রিম পড পরিবেশন

বিভিন্ন ধরনের স্ট্রিম তৈরি করার জন্য ব্যবহৃত buildStreamRequest() মেথডটি সরিয়ে ফেলুন। এরপর, একটি লাইভ পড সার্ভিং বিজ্ঞাপনের অনুরোধ তৈরি করতে requestAndPlayAds() ফাংশনটিকে ImaSdkFactory.createPodStreamRequest() কল করার জন্য পরিবর্তন করুন।

// Live pod stream request.
request = sdkFactory.createPodStreamRequest(NETWORK_CODE, CUSTOM_ASSET_KEY, API_KEY);

ভিওডি স্ট্রিম পড পরিবেশন

বিভিন্ন ধরনের স্ট্রিম তৈরি করার জন্য ব্যবহৃত buildStreamRequest() মেথডটি সরিয়ে ফেলুন। এরপর, একটি VOD Pod Serving বিজ্ঞাপনের অনুরোধ তৈরি করার জন্য requestAndPlayAds() ফাংশনটিকে ImaSdkFactory.createPodVodStreamRequest() কল করার জন্য পরিবর্তন করুন।

// VOD pod stream request.
request = sdkFactory.createPodVodStreamRequest(NETWORK_CODE);

স্ট্রিম রিকোয়েস্ট ইনস্ট্যান্স তৈরি করার পরে, AdsLoader.requestStream() ব্যবহার করে স্ট্রিমটির জন্য অনুরোধ করুন:

request.setFormat(STREAM_FORMAT);
adsLoader.requestStream(request);

স্ট্রিম URL সম্পাদনা করুন এবং সেট করুন

লাইভ স্ট্রিম পড পরিবেশন

স্ট্রিম আইডি পেতে StreamManager.getStreamId() মেথডটি কল করুন। এই আইডিটি STEAM_URL"[[STREAMID]]" এর জায়গায় বসাতে হবে। এই পরিবর্তনটি করার পর, videoPlayer.setStreamUrl() মেথড ব্যবহার করে নতুন স্ট্রিম URL সেট করুন এবং স্ট্রিম প্লেব্যাক শুরু করতে videoPlayer.play() মেথডটি কল করুন।

// Play the live pod stream.
streamID = streamManager.getStreamId();
String liveStreamUrl = STREAM_URL.replace("[[STREAMID]]", streamID);
// Call videoPlayer.play() here, because IMA doesn't call the VideoStreamPlayer.loadUrl()
// function for livestreams.
videoPlayer.setStreamUrl(liveStreamUrl);
videoPlayer.play();

ভিওডি স্ট্রিম পড পরিবেশন

  1. স্ট্রিম আইডি পেতে StreamManager.getStreamId() মেথডটি কল করুন।
  2. আপনার ভিডিও প্রযুক্তি অংশীদারের (VTP) কাছ থেকে একটি স্ট্রিম ইউআরএল (URL) অনুরোধ করুন।
  3. আপনার VTP থেকে URL পাওয়ার পর, স্ট্রিমটি লোড করার জন্য StreamManager.loadThirdPartyStream() মেথডটি কল করুন এবং এর সাথে আপনার VTP থেকে প্রাপ্ত যেকোনো সাবটাইটেলও যুক্ত করুন।
// Play the VOD pod stream.
streamID = streamManager.getStreamId();
String vodStreamUrl = "";
// Refer to your Video Tech Partner (VTP) or video stitching guide to fetch the stream URL
// and the subtitles for a the ad stitched VOD stream.

// In the following commented out code, 'vtpInterface' is a place holder
// for your own video technology partner (VTP) API calls.
// vodStreamUrl = vtpInterface.requestStreamURL(streamID);
List<Map<String, String>> subtitles = new ArrayList<>();
streamManager.loadThirdPartyStream(vodStreamUrl, subtitles);

VOD পড সার্ভিং অনুরোধের ক্ষেত্রে, স্ট্রিম লোড হয়ে গেলে IMA, VideoStreamPlayer.loadUrl() কলব্যাকটি কল করে। স্ট্রিম প্লেব্যাক শুরু করতে, videoPlayer.setStreamUrl() এবং videoPlayer.play() VideoStreamPlayer.loadUrl() যোগ করুন:

private VideoStreamPlayer createVideoStreamPlayer() {
  return new VideoStreamPlayer() {
    @Override
    public void loadUrl(String url, List<HashMap<String, String>> subtitles) {
      // IMA doesn't make calls to VideoStreamPlayer.loadUrl() for pod serving live streams.
      // The following code is for VOD streams.
      videoPlayer.setStreamUrl(url);
      videoPlayer.play();
    }

IMA DAI সম্পদ পরিষ্কার করুন

IMA DAI SDK ব্যবহার করে একটি পড সার্ভিং স্ট্রিমে বিজ্ঞাপন অনুরোধ করা এবং প্রদর্শন করা সফলভাবে শেষ করার পর, আমরা পরামর্শ দিই যে পড সার্ভিং সেশনটি সম্পূর্ণ হলে আপনি সমস্ত রিসোর্স পরিষ্কার করে ফেলুন। স্ট্রিম প্লেব্যাক বন্ধ করতে, সমস্ত বিজ্ঞাপন ট্র্যাকিং বন্ধ করতে এবং লোড হওয়া সমস্ত স্ট্রিম অ্যাসেট মুক্ত করতে StreamManager.destroy() কল করুন।

অ্যান্ড্রয়েড এসডিকে ব্যবহারের অন্যান্য উদাহরণ দেখতে, গিটহাবে থাকা নমুনাগুলো দেখুন।