টিভি ইন্টিগ্রেশন গাইডের জন্য SDK যুক্ত করুন৷

Continue Watching অসমাপ্ত ভিডিওগুলি দেখানোর জন্য কন্টিনিউয়েশন ক্লাস্টার এবং পরবর্তী পর্বগুলিকে একই টিভি সিজন থেকে, একটি UI গ্রুপিং-এর একাধিক অ্যাপ থেকে দেখা যাবে। আপনি এই ধারাবাহিকতা ক্লাস্টারে তাদের সত্তাগুলিকে বৈশিষ্ট্যযুক্ত করতে পারেন৷ Engage SDK ব্যবহার করে Continue Watching অভিজ্ঞতার মাধ্যমে কীভাবে ব্যবহারকারীর ব্যস্ততা বাড়ানো যায় তা শিখতে এই নির্দেশিকা অনুসরণ করুন।

প্রাক কাজ

আপনি শুরু করার আগে, নিম্নলিখিত পদক্ষেপগুলি সম্পূর্ণ করুন:

  1. টার্গেট API 19 বা উচ্চতর আপডেট করুন

  2. আপনার অ্যাপে com.google.android.engage লাইব্রেরি যোগ করুন:

    ইন্টিগ্রেশনে ব্যবহার করার জন্য আলাদা SDK আছে: একটি মোবাইল অ্যাপের জন্য এবং একটি টিভি অ্যাপের জন্য।

    মোবাইল

    
      dependencies {
        implementation 'com.google.android.engage:engage-core:1.5.5
      }
    

    টিভি

    
      dependencies {
        implementation 'com.google.android.engage:engage-tv:1.0.2
      }
    
  3. AndroidManifest.xml ফাইলে প্রডাকশনে এনগেজ পরিষেবা পরিবেশ সেট করুন।

    মোবাইল

    
    <meta-data
        android:name="com.google.android.engage.service.ENV"
        android:value="PRODUCTION" />
    

    টিভি

    
    <meta-data
        android:name="com.google.android.engage.service.ENV"
        android:value="PRODUCTION" />
    
  4. টিভি apk-এর জন্য WRITE_EPG_DATA এর অনুমতি যোগ করুন

    <uses-permission android:name="com.android.providers.tv.permission.WRITE_EPG_DATA" />
    
  5. সময় নির্ধারণের জন্য androidx.work এর মতো ব্যাকগ্রাউন্ড পরিষেবা ব্যবহার করে নির্ভরযোগ্য বিষয়বস্তু প্রকাশনা যাচাই করুন।

  6. একটি নির্বিঘ্ন দেখার অভিজ্ঞতা প্রদান করতে, এই ঘটনাগুলি ঘটলে ডেটা দেখা চালিয়ে যান:

    1. প্রথম লগইন: যখন একজন ব্যবহারকারী প্রথমবার লগ ইন করেন, তখন তাদের দেখার ইতিহাস অবিলম্বে উপলব্ধ হয় তা নিশ্চিত করতে ডেটা প্রকাশ করে।
    2. প্রোফাইল তৈরি বা স্যুইচিং (মাল্টি-প্রোফাইল অ্যাপস): যদি আপনার অ্যাপ একাধিক প্রোফাইল সমর্থন করে, একজন ব্যবহারকারী প্রোফাইল তৈরি বা স্যুইচ করার সময় ডেটা প্রকাশ করুন।
    3. ভিডিও প্লেব্যাক ব্যাঘাত: ব্যবহারকারীরা যেখানে রেখেছিলেন তা শুরু করতে সাহায্য করার জন্য, যখন তারা একটি ভিডিও পজ বা বন্ধ করে, বা প্লেব্যাকের সময় অ্যাপটি বন্ধ হয়ে যায় তখন ডেটা প্রকাশ করে৷
    4. ট্রে আপডেটগুলি দেখা চালিয়ে যান (যদি সমর্থিত হয়): যখন কোনও ব্যবহারকারী তাদের কন্টিনিউ ওয়াচিং ট্রে থেকে একটি আইটেম সরিয়ে দেন, আপডেট করা ডেটা প্রকাশ করে সেই পরিবর্তনটি প্রতিফলিত করুন।
    5. ভিডিও সমাপ্তি:
      1. মুভির জন্য, কন্টিনিউ ওয়াচিং ট্রে থেকে সম্পূর্ণ মুভিটি সরিয়ে ফেলুন। যদি মুভিটি একটি সিরিজের অংশ হয়, ব্যবহারকারীকে নিযুক্ত রাখতে পরবর্তী মুভি যোগ করুন৷
      2. পর্বের জন্য, সমাপ্ত পর্বটি সরান এবং ধারাবাহিকভাবে দেখার উত্সাহিত করার জন্য, যদি উপলব্ধ থাকে তবে সিরিজের পরবর্তী পর্বটি যোগ করুন।

নমুনা কোড

এই নমুনা অ্যাপটি দেখায় কিভাবে ডেভেলপাররা Google-এ ব্যক্তিগতকৃত ব্যবহারকারীর ডেটা পাঠাতে ভিডিও আবিষ্কার API-এর সাথে একীভূত হতে পারে। নমুনা অ্যাপটি আরও দেখায় যে কীভাবে একটি সাধারণ মডিউল তৈরি করা যায় যা মোবাইল এবং টিভি অ্যাপ উভয় ক্ষেত্রেই আমদানি করা যায়, কখন প্রকাশ এবং মুছে ফেলা API গুলি শুরু করতে হবে এবং কীভাবে এপিআইগুলি প্রকাশ এবং মুছতে কর্মীদের ব্যবহার করতে হবে৷

ইন্টিগ্রেশন

অ্যাকাউন্ট প্রোফাইল

Google TV-তে ব্যক্তিগতকৃত "দেখা চালিয়ে যান" অভিজ্ঞতার অনুমতি দিতে, অ্যাকাউন্ট এবং প্রোফাইল তথ্য প্রদান করুন। প্রদান করতে অ্যাকাউন্ট প্রোফাইল ব্যবহার করুন:

  1. অ্যাকাউন্ট আইডি: একটি অনন্য শনাক্তকারী যা আপনার অ্যাপ্লিকেশনের মধ্যে ব্যবহারকারীর অ্যাকাউন্টের প্রতিনিধিত্ব করে। এটি প্রকৃত অ্যাকাউন্ট আইডি বা উপযুক্তভাবে অস্পষ্ট সংস্করণ হতে পারে।

  2. প্রোফাইল আইডি (ঐচ্ছিক): যদি আপনার অ্যাপ্লিকেশনটি একক অ্যাকাউন্টের মধ্যে একাধিক প্রোফাইল সমর্থন করে, তবে নির্দিষ্ট ব্যবহারকারী প্রোফাইলের জন্য একটি অনন্য শনাক্তকারী প্রদান করুন (আবার, বাস্তব বা অস্পষ্ট)।

// If your app only supports account
val accountProfile = AccountProfile.Builder()
    .setAccountId("your_users_account_id")
    .build()

// If your app supports both account and profile
val accountProfile = AccountProfile.Builder()
    .setAccountId("your_users_account_id")
    .setProfileId("your_users_profile_id")
    .build()

সত্তা তৈরি করুন

প্রতিটি আইটেমের প্রকারের প্রতিনিধিত্ব করার জন্য SDK বিভিন্ন সত্তাকে সংজ্ঞায়িত করেছে। ধারাবাহিকতা ক্লাস্টার নিম্নলিখিত সত্তা সমর্থন করে:

  1. MovieEntity
  2. TvEpisodeEntity
  3. LiveStreamingVideoEntity
  4. VideoClipEntity

এই সত্তাগুলির জন্য প্ল্যাটফর্ম-নির্দিষ্ট URI এবং পোস্টার ছবিগুলি নির্দিষ্ট করুন৷

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

// Required. Set this when you want continue watching entities to show up on
// Google TV
val playbackUriTv = PlatformSpecificUri.Builder()
    .setPlatformType(PlatformType.TYPE_ANDROID_TV)
    .setActionUri(Uri.parse("https://www.example.com/entity_uri_for_tv"))
    .build()

// Required. Set this when you want continue watching entities to show up on
// Google TV Android app, Entertainment Space, Playstore Widget
val playbackUriAndroid = PlatformSpecificUri.Builder()
    .setPlatformType(PlatformType.TYPE_ANDROID_MOBILE)
    .setActionUri(Uri.parse("https://www.example.com/entity_uri_for_android"))
    .build()

// Optional. Set this when you want continue watching entities to show up on
// Google TV iOS app
val playbackUriIos = PlatformSpecificUri.Builder()
    .setPlatformType(PlatformType.TYPE_IOS)
    .setActionUri(Uri.parse("https://www.example.com/entity_uri_for_ios"))
    .build()

val platformSpecificPlaybackUris =
    Arrays.asList(playbackUriTv, playbackUriAndroid, playbackUriIos)

পোস্টার ইমেজ একটি URI এবং পিক্সেল মাত্রা প্রয়োজন (উচ্চতা এবং প্রস্থ)। একাধিক পোস্টার ইমেজ প্রদান করে বিভিন্ন ফর্ম ফ্যাক্টরকে লক্ষ্য করুন, কিন্তু যাচাই করুন যে সমস্ত ছবি একটি 16:9 অনুপাত এবং 200 পিক্সেলের ন্যূনতম উচ্চতা বজায় রাখে যাতে "কন্টিনিউ ওয়াচিং" সত্তার সঠিক প্রদর্শনের জন্য, বিশেষ করে Google-এর বিনোদন স্পেসের মধ্যে। 200 পিক্সেলের কম উচ্চতার ছবি দেখানো নাও হতে পারে।

val images = Arrays.asList(
    Image.Builder()
        .setImageUri(Uri.parse("http://www.example.com/entity_image1.png"))
        .setImageHeightInPixel(300)
        .setImageWidthInPixel(169)
        .build(),
    Image.Builder()
        .setImageUri(Uri.parse("http://www.example.com/entity_image2.png"))
        .setImageHeightInPixel(640)
        .setImageWidthInPixel(360)
        .build()
    // Consider adding other images for different form factors
)
মুভি এন্টিটি

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

val movieEntity = MovieEntity.Builder()
   .setWatchNextType(WatchNextType.TYPE_CONTINUE)
   .setName("Movie name")
   .addPlatformSpecificPlaybackUri(platformSpecificPlaybackUris)
   .addPosterImages(images)
   // Timestamp in millis for sample last engagement time 12/1/2023 00:00:00
   .setLastEngagementTimeMillis(1701388800000)
   // Suppose the duration is 2 hours, it is 72000000 in milliseconds
   .setDurationMills(72000000)
   // Suppose last playback offset is 1 hour, 36000000 in milliseconds
   .setLastPlayBackPositionTimeMillis(36000000)
   .build()

জেনার এবং বিষয়বস্তু রেটিং এর মত বিশদ প্রদান করা Google TV কে আপনার সামগ্রীকে আরও গতিশীল উপায়ে প্রদর্শন করার এবং সঠিক দর্শকদের সাথে সংযোগ করার ক্ষমতা দেয়৷

val genres = Arrays.asList("Action", "Science fiction")
val rating1 = RatingSystem.Builder().setAgencyName("MPAA").setRating("PG-13").build()
val contentRatings = Arrays.asList(rating1)
val movieEntity = MovieEntity.Builder()
    ...
    .addGenres(genres)
    .addContentRatings(contentRatings)
    .build()

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

// Set the expiration time to be now plus 30 days in milliseconds
val expirationTime = DisplayTimeWindow.Builder()
    .setEndTimestampMillis(now().toMillis()+2592000000).build()
val movieEntity = MovieEntity.Builder()
    ...
    .addAvailabilityTimeWindow(expirationTime)
    .build()
TvEpisodeEntity

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

val tvEpisodeEntity = TvEpisodeEntity.Builder()
    .setWatchNextType(WatchNextType.TYPE_CONTINUE)
    .setName("Episode name")
    .addPlatformSpecificPlaybackUri(platformSpecificPlaybackUris)
    .addPosterImages(images)
    // Timestamp in millis for sample last engagement time 12/1/2023 00:00:00
    .setLastEngagementTimeMillis(1701388800000)
    .setDurationMills(72000000) // 2 hours in milliseconds
    // 45 minutes and 15 seconds in milliseconds is 2715000
    .setLastPlayBackPositionTimeMillis(2715000)
    .setEpisodeNumber("2")
    .setSeasonNumber("1")
    .setShowTitle("Title of the show")
    .build()

এপিসোড নম্বর স্ট্রিং (যেমন "2" ), এবং সিজন নম্বর স্ট্রিং (যেমন "1" ) অবিরত দেখার কার্ডে প্রদর্শিত হওয়ার আগে সঠিক ফর্মে প্রসারিত হবে। মনে রাখবেন যে সেগুলি একটি সংখ্যাসূচক স্ট্রিং হওয়া উচিত, "e2", বা "পর্ব 2", বা "s1" বা "সিজন 1" রাখবেন না।

যদি একটি নির্দিষ্ট টিভি শোতে একটি সিজন থাকে, তাহলে সিজন নম্বর 1 হিসাবে সেট করুন।

Google TV-তে দর্শকরা আপনার সামগ্রী খুঁজে পাওয়ার সম্ভাবনাকে সর্বাধিক করতে, অতিরিক্ত ডেটা যেমন জেনার, সামগ্রীর রেটিং এবং উপলব্ধতার সময় উইন্ডো দেওয়ার কথা বিবেচনা করুন, কারণ এই বিবরণগুলি প্রদর্শন এবং ফিল্টারিং বিকল্পগুলিকে উন্নত করতে পারে৷

val genres = Arrays.asList("Action", "Science fiction")
val rating1 = RatingSystem.Builder().setAgencyName("MPAA").setRating("PG-13").build()
val contentRatings = Arrays.asList(rating1)
val tvEpisodeEntity = TvEpisodeEntity.Builder()
    ...
    .addGenres(genres)
    .addContentRatings(contentRatings)
    .setSeasonTitle("Season Title")
    .setShowTitle("Show Title")
    .build()
VideoClipEntity

এখানে সমস্ত প্রয়োজনীয় ক্ষেত্রগুলির সাথে একটি VideoClipEntity তৈরি করার একটি উদাহরণ রয়েছে৷

VideoClipEntity একটি ইউটিউব ভিডিওর মতো একটি ব্যবহারকারীর তৈরি ক্লিপ উপস্থাপন করে।

val videoClipEntity = VideoClipEntity.Builder()
    .setPlaybackUri(Uri.parse("https://www.example.com/uri_for_current_platform")
    .setWatchNextType(WatchNextType.TYPE_CONTINUE)
    .setName("Video clip name")
    .addPlatformSpecificPlaybackUri(platformSpecificPlaybackUris)
    .addPosterImages(images)
    // Timestamp in millis for sample last engagement time 12/1/2023 00:00:00
    .setLastEngagementTimeMillis(1701388800000)
    .setDurationMills(600000) //10 minutes in milliseconds
    .setLastPlayBackPositionTimeMillis(300000) //5 minutes in milliseconds
    .addContentRating(contentRating)
    .build()

আপনি ঐচ্ছিকভাবে স্রষ্টা, স্রষ্টার চিত্র, মিলিসেকেন্ডে তৈরি সময় বা উপলব্ধতার সময় উইন্ডো সেট করতে পারেন।

লাইভস্ট্রিমিংভিডিওএন্টিটি

এখানে সমস্ত প্রয়োজনীয় ক্ষেত্রগুলির সাথে একটি LiveStreamingVideoEntity তৈরি করার একটি উদাহরণ রয়েছে৷

val liveStreamingVideoEntity = LiveStreamingVideoEntity.Builder()
    .setPlaybackUri(Uri.parse("https://www.example.com/uri_for_current_platform")
    .setWatchNextType(WatchNextType.TYPE_CONTINUE)
    .setName("Live streaming name")
    .addPlatformSpecificPlaybackUri(platformSpecificPlaybackUris)
    .addPosterImages(images)
    // Timestamp in millis for sample last engagement time 12/1/2023 00:00:00
    .setLastEngagementTimeMillis(1701388800000)
    .setDurationMills(72000000) //2 hours in milliseconds
    .setLastPlayBackPositionTimeMillis(36000000) //1 hour in milliseconds
    .addContentRating(contentRating)
    .build()

ঐচ্ছিকভাবে, আপনি লাইভ স্ট্রিমিং সত্তার জন্য শুরুর সময়, সম্প্রচারকারী, সম্প্রচারকারী আইকন বা উপলব্ধতার সময় উইন্ডো সেট করতে পারেন।

বৈশিষ্ট্য এবং প্রয়োজনীয়তা সম্পর্কে বিস্তারিত তথ্যের জন্য, API রেফারেন্স দেখুন।

কন্টিনিউয়েশন ক্লাস্টার ডেটা প্রদান করুন

AppEngagePublishClient কন্টিনিউয়েশন ক্লাস্টার প্রকাশের জন্য দায়ী। আপনি একটি ContinuationCluster অবজেক্ট প্রকাশ করতে publishContinuationCluster() পদ্ধতি ব্যবহার করেন।

প্রথমে, পরিষেবাটি ইন্টিগ্রেশনের জন্য উপলব্ধ কিনা তা পরীক্ষা করতে আপনার isServiceAvailable() ব্যবহার করা উচিত।

client.publishContinuationCluster(
    PublishContinuationClusterRequest
        .Builder()
        .setContinuationCluster(
            ContinuationCluster.Builder()
                .setAccountProfile(accountProfile)
                .addEntity(movieEntity1)
                .addEntity(movieEntity2)
                .addEntity(tvEpisodeEntity1)
                .addEntity(tvEpisodeEntity2)
                .setSyncAcrossDevices(true)
                .build()
        )
        .build()
)

যখন পরিষেবাটি অনুরোধটি গ্রহণ করে, নিম্নলিখিত ক্রিয়াগুলি একটি লেনদেনের মধ্যে সঞ্চালিত হয়:

  • বিকাশকারী অংশীদার থেকে বিদ্যমান ContinuationCluster ডেটা সরানো হয়েছে।
  • অনুরোধের ডেটা পার্স করা হয়েছে এবং আপডেট করা ContinuationCluster এ সংরক্ষণ করা হয়েছে।

একটি ত্রুটির ক্ষেত্রে, সম্পূর্ণ অনুরোধ প্রত্যাখ্যান করা হয় এবং বিদ্যমান অবস্থা বজায় রাখা হয়।

পাবলিশ এপিআই হল আপসার্ট এপিআই; এটি বিদ্যমান সামগ্রী প্রতিস্থাপন করে। আপনি যদি ContinuationCluster-এ একটি নির্দিষ্ট সত্তা আপডেট করতে চান, তাহলে আপনাকে আবার সমস্ত সত্তা প্রকাশ করতে হবে।

ContinuationCluster ডেটা শুধুমাত্র প্রাপ্তবয়স্কদের অ্যাকাউন্টের জন্য প্রদান করা উচিত। শুধুমাত্র তখনই প্রকাশ করুন যখন অ্যাকাউন্ট প্রোফাইলটি একজন প্রাপ্তবয়স্কের।

ক্রস-ডিভাইস সিঙ্কিং

SyncAcrossDevices পতাকা নিয়ন্ত্রণ করে যে ব্যবহারকারীর ContinuationCluster ডেটা টিভি, ফোন, ট্যাবলেট ইত্যাদির মতো ডিভাইস জুড়ে সিঙ্ক্রোনাইজ করা হয়েছে কিনা। ক্রস-ডিভাইস সিঙ্কিং ডিফল্টরূপে অক্ষম থাকে।

মান:

  • সত্য: অবিরাম দেখার অভিজ্ঞতার জন্য ContinuationCluster ডেটা সমস্ত ব্যবহারকারীর ডিভাইস জুড়ে ভাগ করা হয়৷ সেরা ক্রস-ডিভাইস অভিজ্ঞতার জন্য আমরা দৃঢ়ভাবে এই বিকল্পটি সুপারিশ করি।
  • false: ContinuationCluster ডেটা বর্তমান ডিভাইসে সীমাবদ্ধ।

মিডিয়া অ্যাপ্লিকেশনকে ক্রস-ডিভাইস সিঙ্কিং সক্ষম/অক্ষম করার জন্য একটি স্পষ্ট সেটিং প্রদান করতে হবে। ব্যবহারকারীর সুবিধাগুলি ব্যাখ্যা করুন এবং ব্যবহারকারীর পছন্দ একবার সংরক্ষণ করুন এবং সেই অনুযায়ী publishContinuationCluster এ প্রয়োগ করুন।

// Example to allow cross device syncing.
client.publishContinuationCluster(
    PublishContinuationClusterRequest
        .Builder()
        .setContinuationCluster(
            ContinuationCluster.Builder()
                .setAccountProfile(accountProfile)
                .setSyncAcrossDevices(true)
                .build()
        )
        .build()
)

আমাদের ক্রস-ডিভাইস বৈশিষ্ট্য থেকে সবচেয়ে বেশি সুবিধা পেতে, অ্যাপটি ব্যবহারকারীর সম্মতি পেয়েছে কিনা তা যাচাই করুন এবং SyncAcrossDevices true সক্ষম করুন। এটি সামগ্রীগুলিকে সমস্ত ডিভাইস জুড়ে নির্বিঘ্নে সিঙ্ক করার অনুমতি দেয়, যার ফলে ব্যবহারকারীর অভিজ্ঞতা আরও ভাল হয় এবং ব্যস্ততা বৃদ্ধি পায়। উদাহরণ স্বরূপ, একজন অংশীদার যিনি এটি বাস্তবায়ন করেছেন তিনি "দেখা চালিয়ে যান" ক্লিকে 40% বৃদ্ধি দেখেছেন কারণ তাদের সামগ্রী একাধিক ডিভাইসে প্রদর্শিত হয়েছে৷

ভিডিও আবিষ্কার ডেটা মুছুন

স্ট্যান্ডার্ড 60-দিন ধরে রাখার সময়ের আগে Google TV সার্ভার থেকে ব্যবহারকারীর ডেটা ম্যানুয়ালি মুছতে, client.deleteClusters() পদ্ধতি ব্যবহার করুন। অনুরোধ পাওয়ার পরে, পরিষেবাটি অ্যাকাউন্ট প্রোফাইলের জন্য বা পুরো অ্যাকাউন্টের জন্য বিদ্যমান ভিডিও আবিষ্কারের সমস্ত ডেটা মুছে ফেলবে৷

DeleteReason enum ডেটা মুছে ফেলার কারণ নির্ধারণ করে। নিম্নলিখিত কোডটি লগআউটে ডেটা দেখা চালিয়ে যাওয়া সরিয়ে দেয়।


// If the user logs out from your media app, you must make the following call
// to remove continue watching data from the current google TV device,
// otherwise, the continue watching data will persist on the current
// google TV device until 60 days later.
client.deleteClusters(
    DeleteClustersRequest.Builder()
        .setAccountProfile(AccountProfile())
        .setReason(DeleteReason.DELETE_REASON_USER_LOG_OUT)
        .setSyncAcrossDevices(true)
        .build()
)

টেস্টিং

Engage SDK ইন্টিগ্রেশন সঠিকভাবে কাজ করছে কিনা তা যাচাই করতে যাচাইকরণ অ্যাপটি ব্যবহার করুন। যাচাইকরণ অ্যাপ্লিকেশন আপনাকে আপনার ডেটা যাচাই করতে এবং সম্প্রচারের উদ্দেশ্যগুলি সঠিকভাবে পরিচালনা করা হচ্ছে তা নিশ্চিত করতে সহায়তা করার জন্য সরঞ্জাম সরবরাহ করে।

আপনি প্রকাশ API চালু করার পরে, যাচাইকরণ অ্যাপটি পরীক্ষা করে নিশ্চিত করুন যে আপনার ডেটা সঠিকভাবে প্রকাশিত হচ্ছে। আপনার ধারাবাহিকতা ক্লাস্টারটি অ্যাপের ইন্টারফেসের মধ্যে একটি স্বতন্ত্র সারি হিসাবে প্রদর্শিত হওয়া উচিত।

  • আপনার অ্যাপ্লিকেশানের Android ম্যানিফেস্ট ফাইলে শুধুমাত্র নন-প্রোডাকশন বিল্ডগুলির জন্য এনগেজ সার্ভিস ফ্ল্যাগ সেট করুন৷
  • Engage Verify অ্যাপটি ইনস্টল করুন এবং খুলুন
  • যদি isServiceAvailable false হয়, সক্রিয় করতে "টগল" বোতামে ক্লিক করুন।
  • আপনি প্রকাশ করা শুরু করলে স্বয়ংক্রিয়ভাবে প্রকাশিত ডেটা দেখতে আপনার অ্যাপের প্যাকেজের নাম লিখুন।
  • আপনার অ্যাপে এই ক্রিয়াগুলি পরীক্ষা করুন:
    • সাইন ইন করুন
    • প্রোফাইলের মধ্যে স্যুইচ করুন (যদি প্রযোজ্য হয়)।
    • শুরু করুন, তারপর একটি ভিডিও পজ করুন বা হোম পেজে ফিরে যান।
    • ভিডিও প্লেব্যাকের সময় অ্যাপটি বন্ধ করুন।
    • "দেখা চালিয়ে যান" সারি থেকে একটি আইটেম সরান (যদি সমর্থিত হয়)।
  • প্রতিটি অ্যাকশনের পরে, নিশ্চিত করুন যে আপনার অ্যাপ publishContinuationClusters API ব্যবহার করেছে এবং ডেটা যাচাইকরণ অ্যাপে সঠিকভাবে প্রদর্শিত হয়েছে।
  • যাচাইকরণ অ্যাপটি সঠিকভাবে বাস্তবায়িত সত্তার জন্য একটি সবুজ "অল গুড" চেক দেখাবে।

    যাচাইকরণ অ্যাপের সাফল্যের স্ক্রিনশট
    চিত্র 1. যাচাইকরণ অ্যাপের সাফল্য
  • যাচাইকরণ অ্যাপটি কোনো সমস্যাযুক্ত সত্তাকে ফ্ল্যাগ করবে।

    যাচাইকরণ অ্যাপ ত্রুটির স্ক্রিনশট
    চিত্র 2. যাচাইকরণ অ্যাপ ত্রুটি
  • ত্রুটিযুক্ত সত্তাগুলির সমস্যা সমাধানের জন্য, যাচাইকরণ অ্যাপে সত্তা নির্বাচন এবং ক্লিক করতে আপনার টিভি রিমোট ব্যবহার করুন৷ নির্দিষ্ট সমস্যাগুলি আপনার পর্যালোচনার জন্য লাল রঙে প্রদর্শিত এবং হাইলাইট করা হবে (নীচের উদাহরণ দেখুন)।

    যাচাইকরণ অ্যাপ ত্রুটির বিবরণ
    চিত্র 3. যাচাইকরণ অ্যাপ ত্রুটির বিবরণ

REST API

Engage SDK একটি REST API অফার করে যাতে iOS, Roku TV-এর মতো নন-Android প্ল্যাটফর্ম জুড়ে ধারাবাহিকভাবে দেখার অভিজ্ঞতা প্রদান করে। এপিআই ডেভেলপারদের নন-অ্যান্ড্রয়েড প্ল্যাটফর্ম থেকে অপ্ট-ইন করা ব্যবহারকারীদের জন্য "চালিয়ে রাখুন" স্থিতি আপডেট করার অনুমতি দেয়।

পূর্বশর্ত

  • আপনাকে প্রথমে অন-ডিভাইস Engage SDK-ভিত্তিক ইন্টিগ্রেশন শেষ করতে হবে। এই গুরুত্বপূর্ণ পদক্ষেপটি Google এর ব্যবহারকারী আইডি এবং আপনার অ্যাপের AccountProfile মধ্যে প্রয়োজনীয় সংযোগ স্থাপন করে।
  • API অ্যাক্সেস এবং প্রমাণীকরণ: আপনার Google ক্লাউড প্রজেক্টে API দেখতে এবং সক্ষম করতে, আপনাকে একটি অনুমোদিত তালিকা প্রক্রিয়ার মধ্য দিয়ে যেতে হবে। সমস্ত API অনুরোধের প্রমাণীকরণ প্রয়োজন।

অ্যাক্সেস লাভ

আপনার Google ক্লাউড কনসোলে API দেখতে এবং সক্ষম করার অ্যাক্সেস পেতে, আপনার অ্যাকাউন্ট নথিভুক্ত করা প্রয়োজন৷

  1. Google Workspace গ্রাহক আইডি পাওয়া উচিত। যদি উপলভ্য না হয় তাহলে আপনাকে একটি Google Workspace সেট-আপ করতে হবে এবং সেইসাথে আপনি API কল করার জন্য যেকোনও Google অ্যাকাউন্ট ব্যবহার করতে চান।
  2. Google Workspace-এর সাথে যুক্ত একটি ইমেল ব্যবহার করে Google Cloud Console-এর সাথে একটি অ্যাকাউন্ট সেট-আপ করুন।
  3. একটি নতুন প্রকল্প তৈরি করুন
  4. API প্রমাণীকরণের জন্য একটি পরিষেবা অ্যাকাউন্ট তৈরি করুন। একবার আপনি পরিষেবা অ্যাকাউন্ট তৈরি করলে, আপনার দুটি আইটেম থাকবে:
    • একটি পরিষেবা অ্যাকাউন্ট আইডি।
    • আপনার পরিষেবা অ্যাকাউন্ট কী সহ একটি JSON ফাইল। এই ফাইলটি সুরক্ষিত রাখুন, আপনার ক্লায়েন্টকে পরবর্তীতে API-তে প্রমাণীকরণ করতে আপনার এটির প্রয়োজন হবে।
  5. ওয়ার্কস্পেস এবং সংশ্লিষ্ট Google অ্যাকাউন্টগুলি এখন REST API ব্যবহার করতে পারবে। একবার পরিবর্তনটি প্রচার হয়ে গেলে আপনাকে জানানো হবে যে API আপনার পরিষেবা অ্যাকাউন্টগুলির দ্বারা কল করার জন্য প্রস্তুত কিনা।
  6. একটি অর্পিত API কল করার প্রস্তুতির জন্য এই পদক্ষেপগুলি অনুসরণ করুন৷

ধারাবাহিকতা ক্লাস্টার প্রকাশ করুন

ভিডিও আবিষ্কারের ডেটা প্রকাশ করতে, নিম্নলিখিত সিনট্যাক্স ব্যবহার করে publishContinuationCluster API-এ একটি POST অনুরোধ করুন।

https://tvvideodiscovery.googleapis.com/v1/packages/{package_name}/accounts/{account_id}/profiles/{profile_id}/publishContinuationCluster

কোথায়:

  • package_name : মিডিয়া প্রদানকারীর প্যাকেজের নাম
  • accountId : আপনার সিস্টেমে ব্যবহারকারীর অ্যাকাউন্টের জন্য অনন্য আইডি। এটি অবশ্যই অন-ডিভাইস পাথে ব্যবহৃত accountId সাথে মেলে।
  • profileId : আপনার সিস্টেমে অ্যাকাউন্টের মধ্যে ব্যবহারকারীর প্রোফাইলের জন্য অনন্য আইডি। এটি অবশ্যই অন-ডিভাইস পাথে ব্যবহৃত প্রোফাইল আইডির সাথে মেলে।

প্রোফাইল ছাড়া অ্যাকাউন্টের URL হল:

https://tvvideodiscovery.googleapis.com/v1/packages/{package_name}/accounts/{account_id}/publishContinuationCluster

অনুরোধের পেলোড entities ক্ষেত্রে প্রতিনিধিত্ব করা হয়। entities বিষয়বস্তু সত্তাগুলির একটি তালিকা উপস্থাপন করে যা MovieEntity বা TVEpisodeEntity হতে পারে৷ এটি একটি প্রয়োজনীয় ক্ষেত্র।

রিকোয়েস্ট বডি

মাঠ

টাইপ

প্রয়োজন

বর্ণনা

সত্তা

MediaEntity অবজেক্টের তালিকা

হ্যাঁ

বিষয়বস্তু সত্তার তালিকা (সর্বোচ্চ 5), শুধুমাত্র শীর্ষ পাঁচটি রাখা হবে এবং বাকিগুলি বাদ দেওয়া হবে৷ ব্যবহারকারী সমস্ত সত্তা দেখা শেষ করেছেন তা বোঝাতে খালি তালিকা অনুমোদিত৷

ক্ষেত্র entities পৃথক movieEntity এবং tvEpisodeEntity ধারণ করে।

মাঠ

টাইপ

প্রয়োজন

বর্ণনা

মুভি সত্তা

মুভি এন্টিটি

হ্যাঁ

ContinuationCluster-এর মধ্যে একটি চলচ্চিত্র প্রতিনিধিত্বকারী একটি বস্তু।

tvEpisodeEntity

TvEpisodeEntity

হ্যাঁ

ContinuationCluster-এর মধ্যে একটি টিভি পর্বের প্রতিনিধিত্বকারী একটি বস্তু।

এন্টিটি অ্যারের প্রতিটি অবজেক্ট অবশ্যই সাধারণ এবং টাইপ-নির্দিষ্ট ক্ষেত্রগুলির সাথে MovieEntity এবং TvEpisodeEntity নামে উপলব্ধ MediaEntity প্রকারগুলির একটি হতে হবে৷

নিম্নলিখিত কোড স্নিপেট publishContinuationCluster API-এর জন্য অনুরোধের বডি পেলোড প্রদর্শন করে।

{
  "entities": [
    {
      "movieEntity": {
        "watch_next_type": "WATCH_NEXT_TYPE_CONTINUE",
        "name": "Movie1",
        "platform_specific_playback_uris": [
          "https://www.example.com/entity_uri_for_android",
          "https://www.example.com/entity_uri_for_iOS"
        ],
        "poster_images": [
          "http://www.example.com/movie1_img1.png",
          "http://www.example.com/movie1_imag2.png"
        ],
        "last_engagement_time_millis": 864600000,
        "duration_millis": 5400000,
        "last_play_back_position_time_millis": 3241111
      }
    },
    {
      "tvEpisodeEntity": {
        "watch_next_type": "WATCH_NEXT_TYPE_CONTINUE",
        "name": "TV SERIES EPISODE 1",
        "platform_specific_playback_uris": [
          "https://www.example.com/entity_uri_for_android",
          "https://www.example.com/entity_uri_for_iOS"
        ],
        "poster_images": [
          "http://www.example.com/episode1_img1.png",
          "http://www.example.com/episode1_imag2.png"
        ],
        "last_engagement_time_millis": 864600000,
        "duration_millis": 1800000,
        "last_play_back_position_time_millis": 2141231,
        "episode_display_number": "1",
        "season_number": "1",
        "show_title": "title"
      }
    }
  ]
}

ভিডিও আবিষ্কারের ডেটা মুছুন

ভিডিও আবিষ্কার ডেটা সরাতে clearClusters API ব্যবহার করুন।

ভিডিও আবিষ্কার ডেটা থেকে সত্তাগুলি সরাতে POST URL ব্যবহার করুন৷ ধারাবাহিকতা ক্লাস্টার ডেটা মুছে ফেলতে, নিম্নলিখিত সিনট্যাক্স ব্যবহার করে clearClusters API-এ একটি POST অনুরোধ করুন।

https://tvvideodiscovery.googleapis.com/v1/packages/{package_name}/accounts/{account_id}/profiles/{profile_id}/clearClusters

কোথায়:

  • package_name : মিডিয়া প্রদানকারীর প্যাকেজের নাম।
  • accountId : আপনার সিস্টেমে ব্যবহারকারীর অ্যাকাউন্টের জন্য অনন্য আইডি। এটি অবশ্যই অন-ডিভাইস পাথে ব্যবহৃত accountId সাথে মেলে।
  • profileId : আপনার সিস্টেমে অ্যাকাউন্টের মধ্যে ব্যবহারকারীর প্রোফাইলের জন্য অনন্য আইডি। এটি অবশ্যই অন-ডিভাইস পাথে ব্যবহৃত প্রোফাইল আইডির সাথে মেলে।

clearClusters API-এর পেলোডে শুধুমাত্র একটি ক্ষেত্র রয়েছে, reason , যেটিতে একটি DeleteReason রয়েছে যা ডেটা অপসারণের কারণ উল্লেখ করে।

{
  "reason": "DELETE_REASON_LOSS_OF_CONSENT"
}

টেস্টিং

সফলভাবে ডেটা পোস্ট করার পরে, প্রত্যাশিত বিষয়বস্তু Google TV এবং Android এবং iOS Google TV মোবাইল অ্যাপের মতো টার্গেট Google সারফেসগুলিতে "কন্টিনিউ ওয়াচিং" সারিতে উপস্থিত হয়েছে কিনা তা যাচাই করতে একটি ব্যবহারকারী পরীক্ষার অ্যাকাউন্ট ব্যবহার করুন৷

পরীক্ষায়, কয়েক মিনিটের একটি যুক্তিসঙ্গত প্রচার বিলম্বের অনুমতি দিন এবং দেখার প্রয়োজনীয়তাগুলি মেনে চলুন, যেমন একটি সিনেমার অংশ দেখা বা একটি পর্ব শেষ করা। বিস্তারিত জানার জন্য অ্যাপ ডেভেলপারদের জন্য পরবর্তী দেখুন নির্দেশিকা দেখুন।

{% যদি dynamic_data.request.is_prod %} {% setvar lorry_URL_root %}https://dl.google.com{% endsetvar %} {% অন্য %} {% setvar lorry_URL_root %}https://lorry-staging-payloadserver.corp.google.com{% endsetvar %} {% যদি শেষ %}

ডাউনলোড করুন

ডাউনলোড করার আগে, আপনাকে অবশ্যই নিম্নলিখিত শর্তাবলীতে সম্মত হতে হবে।

শর্তাবলী

এটি অ্যান্ড্রয়েড সফটওয়্যার ডেভেলপমেন্ট কিট লাইসেন্স চুক্তি

1। পরিচিতি

1.1 অ্যান্ড্রয়েড সফ্টওয়্যার ডেভেলপমেন্ট কিট (লাইসেন্স চুক্তিতে "SDK" হিসাবে উল্লেখ করা হয়েছে এবং বিশেষত Android সিস্টেম ফাইল, প্যাকেজড API এবং Google API অ্যাড-অনগুলি সহ) লাইসেন্স চুক্তির শর্তাবলী সাপেক্ষে আপনার কাছে লাইসেন্সপ্রাপ্ত৷ লাইসেন্স চুক্তি আপনার SDK ব্যবহারের ক্ষেত্রে আপনার এবং Google এর মধ্যে একটি আইনগতভাবে বাধ্যতামূলক চুক্তি গঠন করে। 1.2 "Android" মানে ডিভাইসগুলির জন্য Android সফ্টওয়্যার স্ট্যাক, যেমনটি Android ওপেন সোর্স প্রকল্পের অধীনে উপলব্ধ করা হয়েছে, যা নিম্নলিখিত URL-এ অবস্থিত: https://source.android.com/, সময়ে সময়ে আপডেট করা হয়৷ 1.3 একটি "সামঞ্জস্যপূর্ণ বাস্তবায়ন" মানে যে কোনো অ্যান্ড্রয়েড ডিভাইস যা (i) অ্যান্ড্রয়েড সামঞ্জস্যপূর্ণ সংজ্ঞা নথির সাথে সম্মতি দেয়, যা অ্যান্ড্রয়েড সামঞ্জস্যের ওয়েবসাইটে (https://source.android.com/compatibility) পাওয়া যেতে পারে এবং যা থেকে আপডেট করা যেতে পারে সময় সময়; এবং (ii) সফলভাবে অ্যান্ড্রয়েড কম্প্যাটিবিলিটি টেস্ট স্যুট (CTS) পাস করেছে। 1.4 "Google" মানে Google LLC, মার্কিন যুক্তরাষ্ট্রের ডেলাওয়্যার রাজ্যের আইনের অধীনে সংগঠিত এবং USA-এর আইনের অধীনে 1600 Amphitheatre Parkway, Mountain View, CA 94043, USA-এ ব্যবসার প্রধান স্থানের অধীনে কাজ করে৷

2. এই লাইসেন্স চুক্তি গ্রহণ

2.1 SDK ব্যবহার করার জন্য, আপনাকে প্রথমে লাইসেন্স চুক্তিতে সম্মত হতে হবে। আপনি লাইসেন্স চুক্তি স্বীকার না করলে আপনি SDK ব্যবহার করতে পারবেন না। 2.2 এই SDK গ্রহণ এবং/অথবা ব্যবহার করার জন্য ক্লিক করে, আপনি এতদ্বারা লাইসেন্স চুক্তির শর্তাবলীতে সম্মত হন৷ 2.3 আপনি SDK ব্যবহার নাও করতে পারেন এবং লাইসেন্স চুক্তি গ্রহণ নাও করতে পারেন যদি আপনি মার্কিন যুক্তরাষ্ট্র বা অন্যান্য দেশের আইনের অধীনে SDK প্রাপ্তিতে বাধাপ্রাপ্ত ব্যক্তি হন, আপনি যে দেশে বসবাস করেন বা যে দেশ থেকে আপনি SDK ব্যবহার করেন . 2.4 আপনি যদি আপনার নিয়োগকর্তা বা অন্য সত্তার পক্ষে লাইসেন্স চুক্তির দ্বারা আবদ্ধ হতে সম্মত হন, তাহলে আপনি প্রতিনিধিত্ব করেন এবং ওয়ারেন্টি দেন যে আপনার নিয়োগকর্তা বা এই ধরনের সত্তাকে লাইসেন্স চুক্তিতে আবদ্ধ করার জন্য আপনার কাছে সম্পূর্ণ আইনি কর্তৃত্ব রয়েছে। আপনার কাছে প্রয়োজনীয় কর্তৃপক্ষ না থাকলে, আপনি লাইসেন্স চুক্তিটি গ্রহণ করতে পারবেন না বা আপনার নিয়োগকর্তা বা অন্য সত্তার পক্ষে SDK ব্যবহার করতে পারবেন না।

3. Google থেকে SDK লাইসেন্স

3.1 লাইসেন্স চুক্তির শর্তাবলী সাপেক্ষে, Google আপনাকে সীমিত, বিশ্বব্যাপী, রয়্যালটি-মুক্ত, অ-অর্পণযোগ্য, নন-এক্সক্লুসিভ এবং নন-সাবলাইসেন্সযোগ্য লাইসেন্স দেয় শুধুমাত্র Android এর সামঞ্জস্যপূর্ণ বাস্তবায়নের জন্য অ্যাপ্লিকেশন বিকাশের জন্য SDK ব্যবহার করার জন্য। 3.2 আপনি অন্য প্ল্যাটফর্মের জন্য অ্যাপ্লিকেশন বিকাশ করতে (Android-এর অ-সঙ্গত বাস্তবায়ন সহ) বা অন্য SDK বিকাশ করতে এই SDK ব্যবহার করতে পারবেন না৷ আপনি অবশ্যই Android এর অ-সঙ্গত বাস্তবায়ন সহ অন্যান্য প্ল্যাটফর্মের জন্য অ্যাপ্লিকেশন বিকাশের জন্য বিনামূল্যে, তবে শর্ত থাকে যে এই SDK সেই উদ্দেশ্যে ব্যবহার না করা হয়৷ 3.3 আপনি সম্মত হন যে Google বা তৃতীয় পক্ষের সমস্ত আইনি অধিকার, শিরোনাম এবং SDK-এ এবং SDK-এ থাকা যেকোন বুদ্ধিবৃত্তিক সম্পত্তি অধিকার সহ স্বার্থের মালিক৷ "বুদ্ধিবৃত্তিক সম্পত্তির অধিকার" মানে পেটেন্ট আইন, কপিরাইট আইন, ট্রেড সিক্রেট আইন, ট্রেডমার্ক আইন, এবং যেকোনো এবং অন্যান্য সমস্ত মালিকানার অধিকারের অধীনে যে কোনো এবং সমস্ত অধিকার। Google আপনাকে স্পষ্টভাবে দেওয়া হয়নি এমন সমস্ত অধিকার সংরক্ষণ করে৷ 3.4 লাইসেন্স চুক্তি দ্বারা স্পষ্টভাবে অনুমোদিত নয় এমন কোনো উদ্দেশ্যে আপনি SDK ব্যবহার করতে পারবেন না। প্রযোজ্য তৃতীয় পক্ষের লাইসেন্সের জন্য প্রয়োজনীয় পরিমাণ ব্যতীত, আপনি SDK বা SDK-এর যে কোনও অংশের অনুলিপি (ব্যাকআপ উদ্দেশ্যে ব্যতীত), সংশোধন, অভিযোজন, পুনরায় বিতরণ, ডিকম্পাইল, রিভার্স ইঞ্জিনিয়ার, ডিসসেম্বল বা ডেরিভেটিভ কাজ তৈরি করতে পারবেন না। 3.5 একটি ওপেন সোর্স সফ্টওয়্যার লাইসেন্সের অধীনে লাইসেন্সকৃত SDK-এর উপাদানগুলির ব্যবহার, পুনরুত্পাদন এবং বিতরণ শুধুমাত্র সেই ওপেন সোর্স সফ্টওয়্যার লাইসেন্সের শর্তাবলী দ্বারা পরিচালিত হয় এবং লাইসেন্স চুক্তি নয়৷ 3.6 আপনি সম্মত হন যে Google যে SDK প্রদান করে তার ফর্ম এবং প্রকৃতি আপনাকে পূর্ব ঘোষণা ছাড়াই পরিবর্তিত হতে পারে এবং SDK এর ভবিষ্যত সংস্করণগুলি SDK-এর পূর্ববর্তী সংস্করণগুলিতে তৈরি করা অ্যাপ্লিকেশনগুলির সাথে বেমানান হতে পারে৷ আপনি সম্মত হন যে Google আপনাকে পূর্ব বিজ্ঞপ্তি ছাড়াই, সাধারণত Google-এর নিজস্ব বিবেচনার ভিত্তিতে আপনাকে বা ব্যবহারকারীদের SDK (বা SDK-এর মধ্যে যে কোনও বৈশিষ্ট্য) প্রদান করা (স্থায়ীভাবে বা অস্থায়ীভাবে) বন্ধ করতে পারে। 3.7 লাইসেন্স চুক্তির কিছুই আপনাকে Google-এর ট্রেড নাম, ট্রেডমার্ক, পরিষেবা চিহ্ন, লোগো, ডোমেন নাম বা অন্যান্য স্বতন্ত্র ব্র্যান্ড বৈশিষ্ট্যগুলি ব্যবহার করার অধিকার দেয় না৷ 3.8 আপনি সম্মত হন যে আপনি কোনো মালিকানা অধিকার বিজ্ঞপ্তি (কপিরাইট এবং ট্রেডমার্ক নোটিশ সহ) অপসারণ করবেন না, অস্পষ্ট করবেন না বা পরিবর্তন করবেন না যা SDK-এর সাথে সংযুক্ত বা অন্তর্ভুক্ত হতে পারে।

4. আপনার দ্বারা SDK ব্যবহার

4.1 Google সম্মত হয় যে এটি লাইসেন্স চুক্তির অধীনে আপনার (বা আপনার লাইসেন্সদাতাদের) কাছ থেকে বা SDK ব্যবহার করে বিকাশ করা যেকোন সফ্টওয়্যার অ্যাপ্লিকেশনগুলির জন্য কোনও অধিকার, শিরোনাম বা আগ্রহ পায় না, যার মধ্যে সেই অ্যাপ্লিকেশনগুলিতে বিদ্যমান যে কোনও মেধা সম্পত্তি অধিকার রয়েছে৷ 4.2 আপনি SDK ব্যবহার করতে এবং শুধুমাত্র (a) লাইসেন্স চুক্তি এবং (b) প্রাসঙ্গিক এখতিয়ারে (এর রপ্তানি সংক্রান্ত যে কোনও আইন সহ) যে কোনও প্রযোজ্য আইন, প্রবিধান বা সাধারণত গৃহীত অনুশীলন বা নির্দেশিকা দ্বারা অনুমোদিত উদ্দেশ্যে আবেদনগুলি লিখতে সম্মত হন মার্কিন যুক্তরাষ্ট্র বা অন্যান্য প্রাসঙ্গিক দেশে এবং থেকে ডেটা বা সফ্টওয়্যার)। 4.3 আপনি সম্মত হন যে আপনি যদি সাধারণ জনসাধারণের ব্যবহারকারীদের জন্য অ্যাপ্লিকেশন বিকাশ করতে SDK ব্যবহার করেন তবে আপনি সেই ব্যবহারকারীদের গোপনীয়তা এবং আইনি অধিকার রক্ষা করবেন৷ যদি ব্যবহারকারীরা আপনাকে ব্যবহারকারীর নাম, পাসওয়ার্ড, বা অন্যান্য লগইন তথ্য বা ব্যক্তিগত তথ্য প্রদান করে, তাহলে আপনাকে অবশ্যই ব্যবহারকারীদের সচেতন করতে হবে যে তথ্যগুলি আপনার অ্যাপ্লিকেশনে উপলব্ধ হবে এবং আপনাকে অবশ্যই সেই ব্যবহারকারীদের জন্য আইনগতভাবে পর্যাপ্ত গোপনীয়তা বিজ্ঞপ্তি এবং সুরক্ষা প্রদান করতে হবে৷ যদি আপনার অ্যাপ্লিকেশন ব্যবহারকারীদের দ্বারা প্রদত্ত ব্যক্তিগত বা সংবেদনশীল তথ্য সঞ্চয় করে, তাহলে এটি অবশ্যই নিরাপদে করবে। যদি ব্যবহারকারী আপনার অ্যাপ্লিকেশনকে Google অ্যাকাউন্টের তথ্য প্রদান করে, আপনার অ্যাপ্লিকেশনটি শুধুমাত্র সেই তথ্য ব্যবহার করতে পারে ব্যবহারকারীর Google অ্যাকাউন্ট অ্যাক্সেস করার জন্য যখন, এবং সীমিত উদ্দেশ্যে, ব্যবহারকারী আপনাকে এটি করার অনুমতি দিয়েছে। 4.4 আপনি সম্মত হন যে আপনি SDK-এর সাথে কোনো অ্যাক্টিভিটিতে জড়িত হবেন না, যার মধ্যে কোনো অ্যাপ্লিকেশনের ডেভেলপমেন্ট বা ডিস্ট্রিবিউশন রয়েছে, যা সার্ভার, নেটওয়ার্ক বা অন্য কোনো বৈশিষ্ট্য বা পরিষেবার অননুমোদিত উপায়ে হস্তক্ষেপ করে, ব্যাহত করে, ক্ষতি করে বা অ্যাক্সেস করে। Google বা যেকোনো মোবাইল যোগাযোগ বাহক সহ তৃতীয় পক্ষ, কিন্তু সীমাবদ্ধ নয়। 4.5 আপনি সম্মত হন যে আপনি Android এবং/অথবা Android এর জন্য অ্যাপ্লিকেশনের মাধ্যমে তৈরি, প্রেরণ বা প্রদর্শন করেন এমন যেকোন ডেটা, বিষয়বস্তু বা সংস্থানগুলির জন্য আপনি সম্পূর্ণরূপে দায়ী (এবং যে Google এর জন্য আপনার বা কোনো তৃতীয় পক্ষের কোনো দায়বদ্ধতা নেই) আপনার ক্রিয়াকলাপের পরিণতি (যেকোনো ক্ষতি বা ক্ষতি সহ যা Google ভুগতে পারে)। 4.6 আপনি সম্মত হন যে লাইসেন্স চুক্তির অধীনে আপনার বাধ্যবাধকতা লঙ্ঘনের জন্য আপনি সম্পূর্ণরূপে দায়ী (এবং আপনার বা কোনো তৃতীয় পক্ষের কাছে Google-এর কোনো দায় নেই) প্রবিধান, এবং এই ধরনের কোনো লঙ্ঘনের পরিণতির জন্য (যে কোনো ক্ষতি বা ক্ষতি যা Google বা কোনো তৃতীয় পক্ষ ভোগ করতে পারে)।

5. আপনার বিকাশকারী শংসাপত্র

5.1 আপনি সম্মত হন যে আপনি যেকোন ডেভেলপার শংসাপত্রের গোপনীয়তা বজায় রাখার জন্য দায়ী যা আপনাকে Google দ্বারা ইস্যু করা হতে পারে বা যেগুলি আপনি নিজেই বেছে নিতে পারেন এবং আপনার বিকাশকারী শংসাপত্রের অধীনে তৈরি করা সমস্ত অ্যাপ্লিকেশনগুলির জন্য আপনি সম্পূর্ণরূপে দায়ী থাকবেন৷

6. গোপনীয়তা এবং তথ্য

6.1 SDK ক্রমাগত উদ্ভাবন এবং উন্নত করার জন্য, Google সফ্টওয়্যার থেকে নির্দিষ্ট ব্যবহারের পরিসংখ্যান সংগ্রহ করতে পারে যার মধ্যে একটি অনন্য শনাক্তকারী, সংশ্লিষ্ট আইপি ঠিকানা, সফ্টওয়্যারটির সংস্করণ নম্বর এবং কোন সরঞ্জাম এবং/অথবা পরিষেবাগুলি SDK ব্যবহার করা হচ্ছে এবং কিভাবে ব্যবহার করা হচ্ছে। এই তথ্যগুলির যেকোনো একটি সংগ্রহ করার আগে, SDK আপনাকে অবহিত করবে এবং আপনার সম্মতি চাইবে। আপনি যদি সম্মতি আটকে রাখেন তবে তথ্য সংগ্রহ করা হবে না। 6.2 সংগৃহীত ডেটা SDK-এর উন্নতির জন্য সমষ্টিগতভাবে পরীক্ষা করা হয় এবং Google-এর গোপনীয়তা নীতি অনুসারে রক্ষণাবেক্ষণ করা হয়, যা নিম্নলিখিত URL-এ অবস্থিত: https://policies.google.com/privacy 6.3 বেনামী এবং ডেটার একত্রিত সেট SDK উন্নত করতে Google অংশীদারদের সাথে শেয়ার করা হতে পারে৷

7. তৃতীয় পক্ষের অ্যাপ্লিকেশন

7.1 যদি আপনি SDK ব্যবহার করে কোনো তৃতীয় পক্ষের দ্বারা তৈরি করা অ্যাপ্লিকেশানগুলি চালাতে বা তৃতীয় পক্ষের দ্বারা প্রদত্ত ডেটা, সামগ্রী বা সংস্থানগুলি অ্যাক্সেস করতে ব্যবহার করেন, আপনি সম্মত হন যে Google সেই অ্যাপ্লিকেশন, ডেটা, সামগ্রী বা সংস্থানগুলির জন্য দায়ী নয়৷ আপনি বুঝতে পারেন যে সমস্ত ডেটা, বিষয়বস্তু বা সংস্থান যা আপনি এই জাতীয় তৃতীয় পক্ষের অ্যাপ্লিকেশনগুলির মাধ্যমে অ্যাক্সেস করতে পারেন তার একমাত্র দায়বদ্ধতা সেই ব্যক্তির যার থেকে তারা উদ্ভূত হয়েছে এবং ব্যবহারের ফলে আপনি যে কোনও ক্ষতি বা ক্ষতির সম্মুখীন হতে পারেন তার জন্য Google দায়ী নয়৷ বা ঐ তৃতীয় পক্ষের অ্যাপ্লিকেশন, ডেটা, বিষয়বস্তু, বা সংস্থানগুলির যেকোনো একটির অ্যাক্সেস। 7.2 আপনার সচেতন হওয়া উচিত যে এই ধরনের তৃতীয় পক্ষের অ্যাপ্লিকেশনের মাধ্যমে আপনার কাছে উপস্থাপিত ডেটা, বিষয়বস্তু এবং সংস্থানগুলি মেধা সম্পত্তি অধিকার দ্বারা সুরক্ষিত হতে পারে যা প্রদানকারীদের (বা তাদের পক্ষে অন্যান্য ব্যক্তি বা কোম্পানির) মালিকানাধীন। আপনি এই তথ্য, বিষয়বস্তু, বা সংস্থানগুলির উপর ভিত্তি করে (সম্পূর্ণ বা আংশিকভাবে) উপর ভিত্তি করে সংশোধিত, ভাড়া, ইজারা, ঋণ, বিক্রি, বিতরণ বা ডেরিভেটিভ কাজ তৈরি করতে পারবেন না যদি না আপনাকে সংশ্লিষ্ট মালিকদের দ্বারা এটি করার জন্য বিশেষভাবে অনুমতি দেওয়া হয়। 7.3 আপনি স্বীকার করেন যে এই ধরনের তৃতীয় পক্ষের অ্যাপ্লিকেশন, ডেটা, বিষয়বস্তু বা সংস্থানগুলির আপনার ব্যবহার আপনার এবং প্রাসঙ্গিক তৃতীয় পক্ষের মধ্যে পৃথক শর্তাবলীর অধীন হতে পারে। সেই ক্ষেত্রে, লাইসেন্স চুক্তি এই তৃতীয় পক্ষের সাথে আপনার আইনি সম্পর্ককে প্রভাবিত করে না।

8. অ্যান্ড্রয়েড এপিআই ব্যবহার করা

8.1 Google Data APIs 8.1.1 যদি আপনি Google থেকে ডেটা পুনরুদ্ধার করার জন্য কোনো API ব্যবহার করেন, তাহলে আপনি স্বীকার করেন যে ডেটাটি মেধা সম্পত্তির অধিকার দ্বারা সুরক্ষিত হতে পারে যা Google বা সেই দলগুলির মালিকানাধীন যেগুলি ডেটা প্রদান করে (বা অন্যান্য ব্যক্তি বা সংস্থাগুলি দ্বারা তাদের পক্ষে)। আপনার এই ধরনের কোনো API ব্যবহার অতিরিক্ত পরিষেবার শর্তাবলী সাপেক্ষে হতে পারে। প্রাসঙ্গিক পরিষেবার শর্তাবলী দ্বারা অনুমোদিত না হওয়া পর্যন্ত আপনি এই ডেটার উপর ভিত্তি করে (সম্পূর্ণ বা আংশিকভাবে) ডেরিভেটিভ কাজগুলি সংশোধন, ভাড়া, ইজারা, ঋণ, বিক্রয়, বিতরণ বা তৈরি করতে পারবেন না। 8.1.2 আপনি যদি Google থেকে ব্যবহারকারীর ডেটা পুনরুদ্ধার করার জন্য কোনো API ব্যবহার করেন, আপনি স্বীকার করেন এবং সম্মত হন যে আপনি শুধুমাত্র ব্যবহারকারীর সুস্পষ্ট সম্মতিতে ডেটা পুনরুদ্ধার করবেন এবং শুধুমাত্র যখন, এবং সীমিত উদ্দেশ্যে, ব্যবহারকারী আপনাকে অনুমতি দিয়েছে তাই করো। আপনি যদি Android Recognition Service API ব্যবহার করেন, নিম্নলিখিত URL-এ নথিভুক্ত: https://developer.android.com/reference/android/speech/RecognitionService , যেমন সময়ে সময়ে আপডেট হয়, আপনি স্বীকার করেন যে API-এর ব্যবহার বিষয় পণ্যগুলির জন্য ডেটা প্রসেসিং সংযোজন যেখানে Google একটি ডেটা প্রসেসর, যা নিম্নলিখিত URL-এ অবস্থিত: https://privacy.google.com/businesses/gdprprocessorterms/ , সময়ে সময়ে আপডেট করা হয়৷ স্বীকার করতে ক্লিক করার মাধ্যমে, আপনি এইভাবে পণ্যগুলির জন্য ডেটা প্রসেসিং সংযোজন শর্তাবলীতে সম্মত হচ্ছেন যেখানে Google একটি ডেটা প্রসেসর৷

9. এই লাইসেন্স চুক্তির সমাপ্তি

9.1 লাইসেন্স চুক্তিটি আপনার বা Google দ্বারা শেষ না হওয়া পর্যন্ত প্রযোজ্য হবে, যেমনটি নীচে দেওয়া হয়েছে৷ 9.2 আপনি যদি লাইসেন্স চুক্তিটি বাতিল করতে চান, তাহলে আপনি আপনার SDK এবং যেকোনো প্রাসঙ্গিক বিকাশকারী শংসাপত্রের ব্যবহার বন্ধ করে তা করতে পারেন৷ 9.3 Google যেকোনো সময়, আপনার সাথে লাইসেন্স চুক্তিটি বাতিল করতে পারে যদি: (A) আপনি লাইসেন্স চুক্তির কোনো বিধান লঙ্ঘন করেন; বা (খ) Google এর আইন দ্বারা তা করা প্রয়োজন; অথবা (C) যে অংশীদারের সাথে Google আপনাকে SDK-এর কিছু অংশ (যেমন API) অফার করেছে সে Google-এর সাথে তার সম্পর্ক শেষ করেছে বা আপনাকে SDK-এর কিছু অংশ অফার করা বন্ধ করেছে; অথবা (D) আপনি যে দেশের বাসিন্দা বা যেখান থেকে আপনি পরিষেবা ব্যবহার করেন সেই দেশের ব্যবহারকারীদের SDK বা SDK-এর নির্দিষ্ট কিছু অংশ, বা Google দ্বারা আপনাকে SDK বা নির্দিষ্ট SDK পরিষেবার বিধান Google আর প্রদান করবে না। Google এর নিজস্ব বিবেচনার ভিত্তিতে, এটি আর বাণিজ্যিকভাবে কার্যকর নয়৷ 9.4 যখন লাইসেন্স চুক্তির সমাপ্তি ঘটে, তখন সমস্ত আইনি অধিকার, বাধ্যবাধকতা এবং দায়বদ্ধতা যা থেকে আপনি এবং Google উপকৃত হয়েছেন, এর অধীন (বা লাইসেন্স চুক্তি কার্যকর থাকাকালীন সময়ের সাথে জমা হয়েছে) বা যা প্রকাশ করা হয়েছে অনির্দিষ্টকালের জন্য চালিয়ে যাওয়ার জন্য, এই অবসান দ্বারা প্রভাবিত হবে না, এবং অনুচ্ছেদ 14.7-এর বিধানগুলি এই ধরনের অধিকার, বাধ্যবাধকতা এবং দায়গুলি অনির্দিষ্টকালের জন্য প্রযোজ্য হবে৷

10. ওয়্যারেন্টি অস্বীকৃতি

10.1 আপনি স্পষ্টভাবে বোঝেন এবং সম্মত হন যে আপনার SDK ব্যবহার করা আপনার সম্পূর্ণ ঝুঁকিতে এবং SDK "যেমন আছে" এবং "যেমন উপলব্ধ" তা Google-এর কাছে যে কোনো ওয়্যারেন্টি ছাড়াই প্রদান করা হয়েছে৷ 10.2 আপনার SDK-এর ব্যবহার এবং SDK-এর ব্যবহারের মাধ্যমে ডাউনলোড করা বা অন্যথায় প্রাপ্ত হওয়া আপনার নিজস্ব বিবেচনা এবং ঝুঁকির উপর এবং আপনি সম্পূর্ণরূপে অন্যদের জন্য দায়ী৷ বা ডেটার ক্ষতি যা এই ধরনের ব্যবহারের ফলে হয় . 10.3 GOOGLE আরও স্পষ্টভাবে সমস্ত ওয়্যারেন্টি এবং শর্তাবলী অস্বীকার করে, তা প্রকাশ করা হোক বা উহ্য করা হোক না কেন, তবে উহ্য ওয়্যারেন্টি এবং শর্তাবলী, শর্তাবলীর মধ্যে সীমাবদ্ধ নয় এবং অ লঙ্ঘন.

11. দায়বদ্ধতার সীমাবদ্ধতা

11.1 আপনি স্পষ্টভাবে বোঝেন এবং সম্মত হন যে GOOGLE, এর সহযোগী সংস্থাগুলি এবং এর লাইসেন্সদাতারা আপনার কাছে দায়বদ্ধ থাকবে না যেকোনও প্রত্যক্ষ, অনিয়ন্ত্রিত, দৃষ্টান্তমূলক ক্ষতি যা আপনার দ্বারা সৃষ্ট হতে পারে, সহ ডেটার যেকোনও ক্ষতি, GOOGLE বা এর প্রতিনিধিদের পরামর্শ দেওয়া হয়েছে বা না হোক এই ধরনের যেকোনও ক্ষতি হওয়ার সম্ভাবনা সম্পর্কে সচেতন হওয়া উচিত।

12. ক্ষতিপূরণ

12.1 আইন দ্বারা অনুমোদিত সর্বাধিক পরিমাণে, আপনি যেকোনও এবং সমস্ত দাবি, অ্যাকশন, মামলা বা কার্যধারার বিরুদ্ধে এবং এর বিরুদ্ধে ক্ষতিকারক Google, এর সহযোগী এবং তাদের সংশ্লিষ্ট পরিচালক, কর্মকর্তা, কর্মচারী এবং এজেন্টদের রক্ষা করতে, ক্ষতিপূরণ দিতে এবং ধরে রাখতে সম্মত হন। এবং সমস্ত ক্ষতি, দায়, ক্ষতি, খরচ এবং খরচ (যৌক্তিক অ্যাটর্নি ফি সহ) (ক) আপনার SDK ব্যবহার, (খ) আপনার SDK-তে বিকাশ করা যে কোনও অ্যাপ্লিকেশন যা কোনও কপিরাইট, ট্রেডমার্ক, ট্রেড লঙ্ঘন করে গোপন, ট্রেড ড্রেস, পেটেন্ট বা অন্য কোনো ব্যক্তির বুদ্ধিবৃত্তিক সম্পত্তির অধিকার বা কোনো ব্যক্তির মানহানি বা তাদের প্রচার বা গোপনীয়তার অধিকার লঙ্ঘন করে এবং (গ) লাইসেন্স চুক্তির সাথে আপনার দ্বারা কোনো অ-সম্মতি।

13. লাইসেন্স চুক্তিতে পরিবর্তন

13.1 Google লাইসেন্স চুক্তিতে পরিবর্তন করতে পারে কারণ এটি SDK-এর নতুন সংস্করণগুলি বিতরণ করে৷ যখন এই পরিবর্তনগুলি করা হবে, Google সেই ওয়েবসাইটে লাইসেন্স চুক্তির একটি নতুন সংস্করণ উপলব্ধ করবে যেখানে SDK উপলব্ধ করা হয়েছে৷ 14.1 লাইসেন্স চুক্তিটি আপনার এবং Google-এর মধ্যে সম্পূর্ণ আইনি চুক্তি গঠন করে এবং আপনার SDK ব্যবহার নিয়ন্ত্রণ করে (যেকোনও পরিষেবা যা Google আপনাকে একটি পৃথক লিখিত চুক্তির অধীনে প্রদান করতে পারে) এবং সম্পূর্ণরূপে আপনার এবং Google-এর মধ্যে পূর্ববর্তী চুক্তিগুলিকে প্রতিস্থাপন করে SDK 14.2 আপনি সম্মত হন যে যদি Google লাইসেন্স চুক্তিতে অন্তর্ভুক্ত কোনো আইনি অধিকার বা প্রতিকার প্রয়োগ বা প্রয়োগ না করে (অথবা যেটি Google কোনো প্রযোজ্য আইনের অধীনে সুবিধা পায়), তাহলে এটি Google-এর অধিকারের একটি আনুষ্ঠানিক মওকুফ হিসাবে নেওয়া হবে না এবং সেই অধিকার বা প্রতিকারগুলি এখনও Google-এর কাছে উপলব্ধ থাকবে৷ 14.3 যদি আইনের কোনো আদালত, এই বিষয়ে সিদ্ধান্ত নেওয়ার এখতিয়ার থাকে, তাহলে লাইসেন্স চুক্তির কোনো বিধান অবৈধ, তাহলে লাইসেন্স চুক্তির বাকি অংশকে প্রভাবিত না করে সেই বিধানটি লাইসেন্স চুক্তি থেকে সরানো হবে। লাইসেন্স চুক্তির অবশিষ্ট বিধানগুলি বৈধ এবং প্রয়োগযোগ্য হতে থাকবে৷ 14.4 আপনি স্বীকার করেন এবং সম্মত হন যে Google যে সকল কোম্পানির অভিভাবক সেই গোষ্ঠীর প্রতিটি সদস্য লাইসেন্স চুক্তির তৃতীয় পক্ষের সুবিধাভোগী হবে এবং এই ধরনের অন্যান্য কোম্পানিগুলি লাইসেন্স চুক্তির যেকোনো বিধান সরাসরি প্রয়োগ করার এবং তার উপর নির্ভর করার অধিকারী হবে যা তাদের উপর একটি সুবিধা প্রদান করে (বা অধিকারের পক্ষে)। এটি ছাড়া, অন্য কোনো ব্যক্তি বা কোম্পানি লাইসেন্স চুক্তির তৃতীয় পক্ষের সুবিধাভোগী হতে পারবে না। 14.5 রপ্তানি সীমাবদ্ধতা। SDK মার্কিন যুক্তরাষ্ট্রের রপ্তানি আইন ও প্রবিধানের অধীন। আপনাকে অবশ্যই SDK-তে প্রযোজ্য সমস্ত দেশীয় এবং আন্তর্জাতিক রপ্তানি আইন এবং প্রবিধান মেনে চলতে হবে। এই আইনগুলির মধ্যে গন্তব্য, শেষ ব্যবহারকারী এবং শেষ ব্যবহারে সীমাবদ্ধতা অন্তর্ভুক্ত রয়েছে। 14.6 লাইসেন্স চুক্তিতে প্রদত্ত অধিকারগুলি অন্য পক্ষের পূর্ব লিখিত অনুমোদন ব্যতীত আপনি বা Google দ্বারা বরাদ্দ বা স্থানান্তর করা যাবে না। লাইসেন্স চুক্তির অধীনে অন্য পক্ষের পূর্ব লিখিত অনুমোদন ছাড়াই আপনি বা Google কে তাদের দায়িত্ব বা বাধ্যবাধকতা অর্পণ করার অনুমতি দেওয়া হবে না। 14.7 লাইসেন্স চুক্তি, এবং লাইসেন্স চুক্তির অধীনে Google-এর সাথে আপনার সম্পর্ক, আইনের বিধানগুলির সংঘাতকে বিবেচনা না করেই ক্যালিফোর্নিয়া রাজ্যের আইন দ্বারা পরিচালিত হবে৷ আপনি এবং Google লাইসেন্স চুক্তি থেকে উদ্ভূত যেকোনো আইনি সমস্যা সমাধানের জন্য ক্যালিফোর্নিয়ার সান্তা ক্লারা কাউন্টির মধ্যে অবস্থিত আদালতের একচেটিয়া এখতিয়ারে জমা দিতে সম্মত। তা সত্ত্বেও, আপনি সম্মত হন যে Google এখনও যেকোন এখতিয়ারে নিষেধাজ্ঞামূলক প্রতিকার (বা সমতুল্য ধরনের জরুরী আইনি ত্রাণ) জন্য আবেদন করার অনুমতি পাবে। জুলাই 27, 2021
ডাউনলোড করুন

verify_app_multiplatform_public_20250602.apk