Engage SDK, iOS এবং Roku TV-এর মতো নন-অ্যান্ড্রয়েড প্ল্যাটফর্মগুলোতে একটি সামঞ্জস্যপূর্ণ 'দেখা চালিয়ে যান' (continue watching) অভিজ্ঞতা প্রদানের জন্য একটি REST API অফার করে। এই API-টি ডেভেলপারদের নন-অ্যান্ড্রয়েড প্ল্যাটফর্মের অপ্ট-ইন করা ব্যবহারকারীদের 'দেখা চালিয়ে যান' (Continue-Watching) স্ট্যাটাস আপডেট করার সুযোগ দেয়।
পূর্বশর্ত
- আপনাকে প্রথমে ডিভাইসে Engage SDK-ভিত্তিক ইন্টিগ্রেশনটি সম্পন্ন করতে হবে। এই গুরুত্বপূর্ণ ধাপটি গুগলের ইউজার আইডি এবং আপনার অ্যাপের
AccountProfileএর মধ্যে প্রয়োজনীয় সংযোগ স্থাপন করে। - এপিআই অ্যাক্সেস এবং প্রমাণীকরণ: আপনার গুগল ক্লাউড প্রজেক্টে এপিআই দেখতে এবং সক্রিয় করতে, আপনাকে অবশ্যই একটি অনুমতি তালিকা প্রক্রিয়ার মধ্য দিয়ে যেতে হবে। সমস্ত এপিআই অনুরোধের জন্য প্রমাণীকরণ প্রয়োজন।
প্রবেশাধিকার লাভ করুন
আপনার গুগল ক্লাউড কনসোলে এপিআই (API) দেখতে ও সক্রিয় করতে, আপনার অ্যাকাউন্টটি নথিভুক্ত করা প্রয়োজন।
- গুগল ওয়ার্কস্পেস কাস্টমার আইডি থাকা আবশ্যক। যদি তা না থাকে, তাহলে আপনাকে একটি গুগল ওয়ার্কস্পেস সেট আপ করতে হতে পারে এবং সেইসাথে এপিআই কল করার জন্য আপনি যে গুগল অ্যাকাউন্টগুলো ব্যবহার করতে চান, সেগুলোও সেট আপ করতে হবে।
- Google Workspace-এর সাথে যুক্ত একটি ইমেল ব্যবহার করে Google Cloud Console-এ একটি অ্যাকাউন্ট তৈরি করুন।
- একটি নতুন প্রকল্প তৈরি করুন ।
- এপিআই অথেনটিকেশনের জন্য একটি সার্ভিস অ্যাকাউন্ট তৈরি করুন। সার্ভিস অ্যাকাউন্টটি তৈরি করার পর, আপনি দুটি আইটেম পাবেন:
- একটি পরিষেবা অ্যাকাউন্ট আইডি।
- আপনার সার্ভিস অ্যাকাউন্ট কী সহ একটি JSON ফাইল। এই ফাইলটি সুরক্ষিত রাখুন। পরবর্তীতে API-তে আপনার ক্লায়েন্টকে প্রমাণীকরণের জন্য এটি প্রয়োজন হবে।
- ওয়ার্কস্পেস এবং এর সাথে যুক্ত গুগল অ্যাকাউন্টগুলো এখন REST API ব্যবহার করতে পারবে। পরিবর্তনটি কার্যকর হয়ে গেলে, আপনার সার্ভিস অ্যাকাউন্টগুলো থেকে API-টি কল করার জন্য প্রস্তুত কিনা, তা আপনাকে জানিয়ে দেওয়া হবে।
- ডেলিগেটেড এপিআই কল করার প্রস্তুতি নিতে এই ধাপগুলো অনুসরণ করুন।
প্রকাশনা ধারাবাহিকতা ক্লাস্টার
Engage ডেটা প্রকাশ করতে, নিম্নলিখিত সিনট্যাক্স ব্যবহার করে publishContinuationCluster API-তে একটি POST অনুরোধ পাঠান।
https://tvvideodiscovery.googleapis.com/v1/packages/{package_name}/accounts/{account_id}/profiles/{profile_id}/publishContinuationCluster
কোথায়:
-
package_name: মিডিয়া প্রোভাইডার প্যাকেজের নাম -
accountId: আপনার সিস্টেমে ব্যবহারকারীর অ্যাকাউন্টের অনন্য আইডি। এটি অবশ্যই অন-ডিভাইস পাথে ব্যবহৃতaccountIdসাথে মিলতে হবে। -
profileId: আপনার সিস্টেমে অ্যাকাউন্টের মধ্যে ব্যবহারকারীর প্রোফাইলের অনন্য আইডি। এটি অবশ্যই অন-ডিভাইস পাথে ব্যবহৃত profileId-এর সাথে মিলতে হবে।
প্রোফাইলবিহীন অ্যাকাউন্টের ইউআরএলটি হলো:
https://tvvideodiscovery.googleapis.com/v1/packages/{package_name}/accounts/{account_id}/publishContinuationCluster
অনুরোধের পেলোডটি entities ফিল্ডে উপস্থাপন করা হয়। entities হলো কন্টেন্ট এনটিটিগুলোর একটি তালিকা, যা MovieEntity অথবা TVEpisodeEntity হতে পারে। এটি একটি আবশ্যক ফিল্ড।
অনুরোধের মূল অংশ
মাঠ | প্রকার | প্রয়োজনীয় | বর্ণনা |
সত্তা | MediaEntity অবজেক্টের তালিকা | হ্যাঁ | সর্বাধিক ৫টি কন্টেন্ট এনটিটির একটি তালিকা। শুধুমাত্র প্রথম পাঁচটি রাখা হবে এবং বাকিগুলো বাদ দেওয়া হবে। ব্যবহারকারী সমস্ত এনটিটি দেখা শেষ করেছেন তা বোঝানোর জন্য একটি খালি তালিকা অনুমোদিত। |
entities ফিল্ডটিতে movieEntity এবং tvEpisodeEntity নামক স্বতন্ত্র ডেটা রয়েছে।
মাঠ | প্রকার | প্রয়োজনীয় | বর্ণনা |
মুভিএন্টিটি | মুভিএন্টিটি | হ্যাঁ | কন্টিনিউয়েশনক্লাস্টারের অন্তর্গত একটি মুভির প্রতিনিধিত্বকারী অবজেক্ট। |
টিভিএপিসোডএন্টিটি | টিভিএপিসোডএন্টিটি | হ্যাঁ | কন্টিনিউয়েশনক্লাস্টারের অন্তর্গত একটি টিভি পর্বের প্রতিনিধিত্বকারী অবজেক্ট। |
entities অ্যারের প্রতিটি অবজেক্টকে অবশ্যই উপলব্ধ MediaEntity টাইপগুলোর মধ্যে একটি হতে হবে, যথা MovieEntity এবং TvEpisodeEntity , সাথে সাধারণ এবং টাইপ-নির্দিষ্ট ফিল্ডগুলোও থাকতে হবে।
নিম্নলিখিত কোড স্নিপেটটি 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"
}
}
]
}
Engage ডেটা মুছে ফেলুন
Engage ডেটা মুছে ফেলার জন্য clearClusters API ব্যবহার করুন।
কন্টিনিউয়েশন ক্লাস্টারের ডেটা মুছে ফেলার জন্য, নিম্নলিখিত সিনট্যাক্স ব্যবহার করে clearClusters API-তে একটি POST রিকোয়েস্ট পাঠান।
https://tvvideodiscovery.googleapis.com/v1/packages/{package_name}/accounts/{account_id}/profiles/{profile_id}/clearClusters
কোথায়:
-
package_name: মিডিয়া প্রোভাইডার প্যাকেজের নাম। -
accountId: আপনার সিস্টেমে ব্যবহারকারীর অ্যাকাউন্টের অনন্য আইডি। এটি অবশ্যই অন-ডিভাইস পাথে ব্যবহৃতaccountIdসাথে মিলতে হবে। -
profileId: আপনার সিস্টেমে অ্যাকাউন্টের মধ্যে ব্যবহারকারীর প্রোফাইলের অনন্য আইডি। এটি অবশ্যই অন-ডিভাইস পাথে ব্যবহৃত profileId-এর সাথে মিলতে হবে।
clearClusters API-এর পেলোডে reason কেবল একটিই ফিল্ড থাকে, যার মধ্যে একটি DeleteReason থাকে যা ডেটা মুছে ফেলার কারণ নির্দিষ্ট করে।
{
"reason": "DELETE_REASON_LOSS_OF_CONSENT"
}
পরীক্ষা
সফলভাবে ডেটা পোস্ট করার পর, একটি ইউজার টেস্ট অ্যাকাউন্ট ব্যবহার করে যাচাই করুন যে Google TV এবং Android ও iOS Google TV মোবাইল অ্যাপের মতো নির্দিষ্ট Google প্ল্যাটফর্মগুলিতে 'continue watching' সারিতে প্রত্যাশিত কন্টেন্টটি দেখা যাচ্ছে কিনা।
পরীক্ষার সময়, কয়েক মিনিটের একটি যুক্তিসঙ্গত প্রসারণ বিলম্বের সুযোগ দিন এবং দেখার শর্তাবলী মেনে চলুন, যেমন একটি সিনেমার কিছু অংশ দেখা বা একটি পর্ব শেষ করা। বিস্তারিত জানতে অ্যাপ ডেভেলপারদের জন্য 'ওয়াচ নেক্সট' নির্দেশিকা দেখুন।