Engage SDK Listen: তৃতীয় পক্ষের প্রযুক্তিগত ইন্টিগ্রেশন নির্দেশাবলী

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

এই নির্দেশিকাটিতে বিকাশকারী অংশীদারদের তাদের অডিও বিষয়বস্তু সংহত করার নির্দেশাবলী রয়েছে, এই নতুন পৃষ্ঠ এলাকা এবং বিদ্যমান Google সারফেস উভয়ই পূরণ করতে Engage SDK ব্যবহার করে৷

ইন্টিগ্রেশন বিস্তারিত

পরিভাষা

এই ইন্টিগ্রেশনে নিম্নলিখিত তিনটি ক্লাস্টার প্রকার রয়েছে: সুপারিশ , ধারাবাহিকতা , এবং বৈশিষ্ট্যযুক্ত

  • সুপারিশ ক্লাস্টারগুলি একটি পৃথক বিকাশকারী অংশীদার থেকে পড়ার জন্য সামগ্রীর জন্য ব্যক্তিগতকৃত পরামর্শগুলি দেখায়৷

    আপনার সুপারিশগুলি নিম্নলিখিত কাঠামো গ্রহণ করে:

    • সুপারিশ ক্লাস্টার: একটি UI ভিউ যাতে একই বিকাশকারী অংশীদারের কাছ থেকে সুপারিশের একটি গোষ্ঠী রয়েছে৷

      চিত্র 1. এন্টারটেইনমেন্ট স্পেস UI একক অংশীদার থেকে একটি সুপারিশ ক্লাস্টার দেখাচ্ছে৷
    • সত্তা: একটি বস্তু একটি ক্লাস্টারে একটি একক আইটেম প্রতিনিধিত্ব করে। একটি সত্তা একটি প্লেলিস্ট, একটি অডিওবুক, একটি পডকাস্ট এবং আরও অনেক কিছু হতে পারে৷ সমর্থিত সত্তা প্রকারের তালিকার জন্য সত্তা ডেটা প্রদান বিভাগটি দেখুন।

      চিত্র 2. এন্টারটেইনমেন্ট স্পেস UI একটি একক অংশীদারের সুপারিশ ক্লাস্টারের মধ্যে একটি একক সত্তা দেখাচ্ছে৷
  • কন্টিনিউয়েশন ক্লাস্টারটি সম্প্রতি একটি একক UI গ্রুপিংয়ে একাধিক বিকাশকারী অংশীদারদের দ্বারা নিযুক্ত অডিও সামগ্রী দেখায়। প্রতিটি বিকাশকারী অংশীদারকে কন্টিনিউয়েশন ক্লাস্টারে সর্বাধিক 10টি সত্তা সম্প্রচার করার অনুমতি দেওয়া হবে।

    চিত্র 3. এন্টারটেইনমেন্ট স্পেস UI একাধিক অংশীদারদের থেকে অসমাপ্ত সুপারিশ সহ একটি ধারাবাহিক ক্লাস্টার দেখাচ্ছে (কেবলমাত্র একটি সুপারিশ বর্তমানে দৃশ্যমান)।
  • বৈশিষ্ট্যযুক্ত ক্লাস্টারটি একটি একক UI গ্রুপিংয়ে একাধিক বিকাশকারী অংশীদারদের থেকে আইটেমগুলির একটি নির্বাচন প্রদর্শন করে৷ একটি একক বৈশিষ্ট্যযুক্ত ক্লাস্টার থাকবে, যা সমস্ত সুপারিশ ক্লাস্টারের উপরে একটি অগ্রাধিকার প্লেসমেন্ট সহ UI এর শীর্ষের কাছে প্রদর্শিত হবে। প্রতিটি বিকাশকারী অংশীদারকে বৈশিষ্ট্যযুক্ত ক্লাস্টারে 10টি পর্যন্ত সম্প্রচার করার অনুমতি দেওয়া হবে।

    চিত্র 4. এন্টারটেইনমেন্ট স্পেস UI একাধিক অংশীদারদের সুপারিশ সহ একটি বৈশিষ্ট্যযুক্ত ক্লাস্টার দেখাচ্ছে (কেবলমাত্র একটি সুপারিশ বর্তমানে দৃশ্যমান)।

প্রাক কর্ম

ন্যূনতম API স্তর: 19

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

dependencies {
    // Make sure you also include that repository in your project's build.gradle file.
    implementation 'com.google.android.engage:engage-core:1.5.2'
}

সারসংক্ষেপ

নকশা একটি আবদ্ধ সেবা বাস্তবায়ন উপর ভিত্তি করে.

একটি ক্লায়েন্ট যে ডেটা প্রকাশ করতে পারে তা বিভিন্ন ক্লাস্টার প্রকারের জন্য নিম্নলিখিত সীমার সাপেক্ষে:

ক্লাস্টার টাইপ ক্লাস্টার সীমা একটি ক্লাস্টারে সত্তার সর্বোচ্চ সীমা
সুপারিশ ক্লাস্টার(গুলি) সর্বাধিক 5 সর্বাধিক 50
ধারাবাহিকতা ক্লাস্টার সর্বোচ্চ 1 সর্বাধিক 10
বৈশিষ্ট্যযুক্ত ক্লাস্টার সর্বোচ্চ 1 সর্বাধিক 10

ধাপ 1: সত্তা তথ্য প্রদান

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

  1. MusicAlbumEntity
  2. MusicArtistEntity
  3. MusicTrackEntity
  4. MusicVideoEntity
  5. PlaylistEntity
  6. PodcastSeriesEntity
  7. PodcastEpisodeEntity
  8. LiveRadioStationEntity
  9. AudiobookEntity

নীচের চার্টগুলি প্রতিটি ধরণের জন্য উপলব্ধ বৈশিষ্ট্য এবং প্রয়োজনীয়তার রূপরেখা দেয়।

MusicAlbumEntity

MusicAlbumEntity অবজেক্ট একটি মিউজিক অ্যালবামের প্রতিনিধিত্ব করে (উদাহরণস্বরূপ, টেলর সুইফটের মিডনাইটস )।

বৈশিষ্ট্য প্রয়োজনীয়তা মন্তব্য
নাম প্রয়োজন মিউজিক অ্যালবামের শিরোনাম।
পোস্টার ছবি প্রয়োজন অন্তত একটি ছবি প্রদান করা আবশ্যক. নির্দেশিকা জন্য ইমেজ স্পেসিফিকেশন দেখুন.
তথ্য পাতা uri প্রয়োজন

মিউজিক অ্যালবাম সম্পর্কে বিশদ বিবরণের জন্য প্রদানকারী অ্যাপের গভীর লিঙ্ক।

দ্রষ্টব্য: আপনি অ্যাট্রিবিউশনের জন্য গভীর লিঙ্ক ব্যবহার করতে পারেন। এই FAQ পড়ুন

শিল্পী প্রয়োজন মিউজিক অ্যালবামের শিল্পীদের তালিকা।
প্লেব্যাক ইউরি ঐচ্ছিক

একটি গভীর লিঙ্ক যা প্রদানকারী অ্যাপে অ্যালবাম চালানো শুরু করে।

দ্রষ্টব্য: আপনি অ্যাট্রিবিউশনের জন্য গভীর লিঙ্ক ব্যবহার করতে পারেন। এই FAQ পড়ুন

বর্ণনা ঐচ্ছিক প্রদান করা হলে 200 অক্ষরের মধ্যে হতে হবে।
গান গণনা ঐচ্ছিক মিউজিক অ্যালবামে গানের সংখ্যা।
জেনারস ঐচ্ছিক মিউজিক অ্যালবামের জেনারের তালিকা।
অ্যালবাম বিন্যাস ঐচ্ছিক

অ্যালবাম (এলপি এবং ডাবল এলপি সহ)

ইপি

একক

মিক্সটেপ

সঙ্গীত লেবেল ঐচ্ছিক অ্যালবামের সাথে যুক্ত সঙ্গীত লেবেলের তালিকা।
ডিভাইসে ডাউনলোড করা হয়েছে ঐচ্ছিক মিউজিক অ্যালবামটি ডিভাইসে ডাউনলোড করা হয়েছে কিনা তা নির্দেশ করে বুলিয়ান।
স্পষ্ট ঐচ্ছিক

একটি বুলিয়ান নির্দেশ করে যে বিষয়বস্তু স্পষ্ট বা না

যে আইটেমগুলিতে স্পষ্ট উপাদান রয়েছে বা পিতামাতার পরামর্শমূলক সতর্কতা রয়েছে সেগুলি সত্যে সেট করা উচিত৷ স্পষ্ট আইটেম একটি "E" ট্যাগ সঙ্গে প্রদর্শিত হয়.

মুক্তির তারিখ ঐচ্ছিক যুগের মিলিসেকেন্ডে অ্যালবামের প্রকাশের তারিখ।
সময়কাল ঐচ্ছিক মিলিসেকেন্ডে অ্যালবামের সময়কাল।
শেষ বাগদানের সময় ঐচ্ছিক

কন্টিনিউয়েশন ক্লাস্টারের আইটেমগুলির জন্য প্রস্তাবিত৷ র‌্যাঙ্কিংয়ের জন্য ব্যবহার করা যেতে পারে।

যুগের মিলিসেকেন্ডে

শতকরা অগ্রগতি সম্পূর্ণ ঐচ্ছিক

কন্টিনিউয়েশন ক্লাস্টারের আইটেমগুলির জন্য প্রস্তাবিত৷

0 এবং 100 এর মধ্যে পূর্ণসংখ্যা

MusicArtistEntity

MusicArtistEntity অবজেক্ট একটি সঙ্গীত শিল্পী প্রতিনিধিত্ব করে (উদাহরণস্বরূপ, অ্যাডেল)।

বৈশিষ্ট্য প্রয়োজনীয়তা মন্তব্য
নাম প্রয়োজন সঙ্গীত শিল্পীর নাম।
পোস্টার ছবি প্রয়োজন অন্তত একটি ছবি প্রদান করা আবশ্যক. নির্দেশিকা জন্য ইমেজ স্পেসিফিকেশন দেখুন.
তথ্য পাতা uri প্রয়োজন

সঙ্গীত শিল্পী সম্পর্কে বিশদ বিবরণের জন্য প্রদানকারী অ্যাপের গভীর লিঙ্ক।

দ্রষ্টব্য: আপনি অ্যাট্রিবিউশনের জন্য গভীর লিঙ্ক ব্যবহার করতে পারেন। এই FAQ পড়ুন

প্লেব্যাক ইউরি ঐচ্ছিক

ডিপ লিঙ্ক যা প্রদানকারী অ্যাপে শিল্পীর গান বাজানো শুরু করে।

দ্রষ্টব্য: আপনি অ্যাট্রিবিউশনের জন্য গভীর লিঙ্ক ব্যবহার করতে পারেন। এই FAQ পড়ুন

বর্ণনা ঐচ্ছিক প্রদান করা হলে 200 অক্ষরের মধ্যে হতে হবে।
শেষ বাগদানের সময় ঐচ্ছিক

কন্টিনিউয়েশন ক্লাস্টারের আইটেমগুলির জন্য প্রস্তাবিত৷ র‌্যাঙ্কিংয়ের জন্য ব্যবহার করা যেতে পারে।

যুগের মিলিসেকেন্ডে

MusicTrackEntity

MusicTrackEntity অবজেক্ট একটি মিউজিক ট্র্যাক প্রতিনিধিত্ব করে (উদাহরণস্বরূপ, কোল্ডপ্লে দ্বারা হলুদ )।

বৈশিষ্ট্য প্রয়োজনীয়তা মন্তব্য
নাম প্রয়োজন মিউজিক ট্র্যাকের শিরোনাম।
পোস্টার ছবি প্রয়োজন অন্তত একটি ছবি প্রদান করা আবশ্যক. নির্দেশিকা জন্য ইমেজ স্পেসিফিকেশন দেখুন.
প্লেব্যাক ইউরি প্রয়োজন

একটি গভীর লিঙ্ক যা প্রদানকারী অ্যাপে মিউজিক ট্র্যাক বাজানো শুরু করে।

দ্রষ্টব্য: আপনি অ্যাট্রিবিউশনের জন্য গভীর লিঙ্ক ব্যবহার করতে পারেন। এই FAQ পড়ুন

তথ্য পাতা uri ঐচ্ছিক

মিউজিক ট্র্যাক সম্পর্কে বিশদ বিবরণের জন্য প্রদানকারী অ্যাপের একটি গভীর লিঙ্ক।

দ্রষ্টব্য: আপনি অ্যাট্রিবিউশনের জন্য গভীর লিঙ্ক ব্যবহার করতে পারেন। এই FAQ পড়ুন

বর্ণনা ঐচ্ছিক প্রদান করা হলে 200 অক্ষরের মধ্যে হতে হবে।
সময়কাল ঐচ্ছিক মিলিসেকেন্ডে ট্র্যাকের সময়কাল।
অ্যালবাম ঐচ্ছিক গানটি যে অ্যালবামের সাথে সম্পর্কিত তার নাম।
শিল্পী প্রয়োজন মিউজিক ট্র্যাকের জন্য শিল্পীদের তালিকা।
ডিভাইসে ডাউনলোড করা হয়েছে ঐচ্ছিক ডিভাইসে মিউজিক ট্র্যাক ডাউনলোড করা হয়েছে কিনা তা নির্দেশ করে বুলিয়ান।
স্পষ্ট ঐচ্ছিক

একটি বুলিয়ান নির্দেশ করে যে বিষয়বস্তু স্পষ্ট বা না

যে আইটেমগুলিতে স্পষ্ট উপাদান রয়েছে বা পিতামাতার পরামর্শমূলক সতর্কতা রয়েছে সেগুলি সত্যে সেট করা উচিত৷ স্পষ্ট আইটেম একটি "E" ট্যাগ সঙ্গে প্রদর্শিত হয়.

শেষ বাগদানের সময় ঐচ্ছিক

কন্টিনিউয়েশন ক্লাস্টারের আইটেমগুলির জন্য প্রস্তাবিত৷ র‌্যাঙ্কিংয়ের জন্য ব্যবহার করা যেতে পারে।

যুগের মিলিসেকেন্ডে

শতকরা অগ্রগতি সম্পূর্ণ ঐচ্ছিক

কন্টিনিউয়েশন ক্লাস্টারের আইটেমগুলির জন্য প্রস্তাবিত৷

0 এবং 100 এর মধ্যে পূর্ণসংখ্যা

MusicVideoEntity

MusicVideoEntity অবজেক্ট একটি মিউজিক ভিডিও উপস্থাপন করে (উদাহরণস্বরূপ, The Weekend - Take My Breath (অফিসিয়াল মিউজিক ভিডিও) )।

বৈশিষ্ট্য প্রয়োজনীয়তা মন্তব্য
নাম প্রয়োজন মিউজিক ভিডিওর শিরোনাম।
পোস্টার ছবি প্রয়োজন অন্তত একটি ছবি প্রদান করা আবশ্যক. নির্দেশিকা জন্য ইমেজ স্পেসিফিকেশন দেখুন.
প্লেব্যাক ইউরি প্রয়োজন

একটি গভীর লিঙ্ক যা প্রদানকারী অ্যাপে মিউজিক ভিডিও চালানো শুরু করে।

দ্রষ্টব্য: আপনি অ্যাট্রিবিউশনের জন্য গভীর লিঙ্ক ব্যবহার করতে পারেন। এই FAQ পড়ুন

তথ্য পাতা uri ঐচ্ছিক

মিউজিক ভিডিও সম্পর্কে বিশদ বিবরণের জন্য প্রদানকারী অ্যাপের একটি গভীর লিঙ্ক।

দ্রষ্টব্য: আপনি অ্যাট্রিবিউশনের জন্য গভীর লিঙ্ক ব্যবহার করতে পারেন। এই FAQ পড়ুন

সময়কাল ঐচ্ছিক মিলিসেকেন্ডে ভিডিওটির সময়কাল।
গণনা প্রদর্শন ঐচ্ছিক ফ্রি টেক্সট ফরম্যাটে ভিডিওটি দেখার সংখ্যা।
শিল্পী ঐচ্ছিক মিউজিক ভিডিওর শিল্পীদের তালিকা।
বিষয়বস্তু রেটিং ঐচ্ছিক ট্র্যাকের বিষয়বস্তু রেটিং তালিকা.
বর্ণনা ঐচ্ছিক প্রদান করা হলে 200 অক্ষরের মধ্যে হতে হবে।
ডিভাইসে ডাউনলোড করা হয়েছে ঐচ্ছিক মিউজিক ভিডিও ডিভাইসে ডাউনলোড করা হয়েছে কিনা তা নির্দেশ করে বুলিয়ান।
স্পষ্ট ঐচ্ছিক

একটি বুলিয়ান নির্দেশ করে যে বিষয়বস্তু স্পষ্ট বা না

যে আইটেমগুলিতে স্পষ্ট উপাদান রয়েছে বা পিতামাতার পরামর্শমূলক সতর্কতা রয়েছে সেগুলি সত্যে সেট করা উচিত৷ স্পষ্ট আইটেম একটি "E" ট্যাগ সঙ্গে প্রদর্শিত হয়.

শেষ বাগদানের সময় ঐচ্ছিক

কন্টিনিউয়েশন ক্লাস্টারের আইটেমগুলির জন্য প্রস্তাবিত৷ র‌্যাঙ্কিংয়ের জন্য ব্যবহার করা যেতে পারে।

যুগের মিলিসেকেন্ডে

শতকরা অগ্রগতি সম্পূর্ণ ঐচ্ছিক

কন্টিনিউয়েশন ক্লাস্টারের আইটেমগুলির জন্য প্রস্তাবিত৷

0 এবং 100 এর মধ্যে পূর্ণসংখ্যা

PlaylistEntity

PlaylistEntity অবজেক্ট একটি সঙ্গীত প্লেলিস্ট প্রতিনিধিত্ব করে (উদাহরণস্বরূপ, US শীর্ষ 10 প্লেলিস্ট)।

বৈশিষ্ট্য প্রয়োজনীয়তা মন্তব্য
নাম প্রয়োজন প্লেলিস্টের শিরোনাম।
পোস্টার ছবি প্রয়োজন অন্তত একটি ছবি প্রদান করা আবশ্যক. নির্দেশিকা জন্য ইমেজ স্পেসিফিকেশন দেখুন.
প্লেব্যাক ইউরি প্রয়োজন

একটি গভীর লিঙ্ক যা প্রদানকারী অ্যাপে সঙ্গীত প্লেলিস্ট বাজানো শুরু করে।

দ্রষ্টব্য: আপনি অ্যাট্রিবিউশনের জন্য গভীর লিঙ্ক ব্যবহার করতে পারেন। এই FAQ পড়ুন

তথ্য পাতা uri ঐচ্ছিক

মিউজিক প্লেলিস্ট সম্পর্কে বিশদ বিবরণের জন্য প্রদানকারী অ্যাপের একটি গভীর লিঙ্ক।

দ্রষ্টব্য: আপনি অ্যাট্রিবিউশনের জন্য গভীর লিঙ্ক ব্যবহার করতে পারেন। এই FAQ পড়ুন

সময়কাল ঐচ্ছিক মিলিসেকেন্ডে প্লেলিস্টের সময়কাল।
গান গণনা ঐচ্ছিক মিউজিক প্লেলিস্টে গানের সংখ্যা।
বর্ণনা ঐচ্ছিক প্রদান করা হলে 200 অক্ষরের মধ্যে হতে হবে।
ডিভাইসে ডাউনলোড করা হয়েছে ঐচ্ছিক প্লেলিস্ট ডিভাইসে ডাউনলোড করা হয়েছে কিনা তা নির্দেশ করে বুলিয়ান।
স্পষ্ট ঐচ্ছিক

একটি বুলিয়ান নির্দেশ করে যে বিষয়বস্তু স্পষ্ট বা না

যে আইটেমগুলিতে স্পষ্ট উপাদান রয়েছে বা পিতামাতার পরামর্শমূলক সতর্কতা রয়েছে সেগুলি সত্যে সেট করা উচিত৷ স্পষ্ট আইটেম একটি "E" ট্যাগ সঙ্গে প্রদর্শিত হয়.

শেষ বাগদানের সময় ঐচ্ছিক

কন্টিনিউয়েশন ক্লাস্টারের আইটেমগুলির জন্য প্রস্তাবিত৷ র‌্যাঙ্কিংয়ের জন্য ব্যবহার করা যেতে পারে।

যুগের মিলিসেকেন্ডে

শতকরা অগ্রগতি সম্পূর্ণ ঐচ্ছিক

কন্টিনিউয়েশন ক্লাস্টারের আইটেমগুলির জন্য প্রস্তাবিত৷

0 এবং 100 এর মধ্যে পূর্ণসংখ্যা

PodcastSeriesEntity

PodcastSeriesEntity অবজেক্ট একটি পডকাস্ট সিরিজ প্রতিনিধিত্ব করে (উদাহরণস্বরূপ, এই আমেরিকান লাইফ )।

বৈশিষ্ট্য প্রয়োজনীয়তা মন্তব্য
নাম প্রয়োজন পডকাস্ট সিরিজের শিরোনাম।
পোস্টার ছবি প্রয়োজন অন্তত একটি ছবি প্রদান করা আবশ্যক. নির্দেশিকা জন্য ইমেজ স্পেসিফিকেশন দেখুন.
তথ্য পাতা uri প্রয়োজন

পডকাস্ট সিরিজ সম্পর্কে বিশদ বিবরণের জন্য প্রদানকারী অ্যাপের একটি গভীর লিঙ্ক।

দ্রষ্টব্য: আপনি অ্যাট্রিবিউশনের জন্য গভীর লিঙ্ক ব্যবহার করতে পারেন। এই FAQ পড়ুন

প্লেব্যাক ইউরি ঐচ্ছিক

একটি গভীর লিঙ্ক যা প্রদানকারী অ্যাপে পডকাস্ট সিরিজ চালানো শুরু করে।

দ্রষ্টব্য: আপনি অ্যাট্রিবিউশনের জন্য গভীর লিঙ্ক ব্যবহার করতে পারেন। এই FAQ পড়ুন

পর্ব গণনা ঐচ্ছিক পডকাস্ট সিরিজে পর্বের সংখ্যা।
উৎপাদনের নাম ঐচ্ছিক পডকাস্ট সিরিজের প্রযোজনার নাম।
হোস্ট ঐচ্ছিক পডকাস্ট সিরিজের হোস্টদের তালিকা।
জেনারস ঐচ্ছিক পডকাস্ট সিরিজের ঘরানার তালিকা।
ডিভাইসে ডাউনলোড করা হয়েছে ঐচ্ছিক পডকাস্ট ডিভাইসে ডাউনলোড করা হয়েছে কিনা তা নির্দেশ করে বুলিয়ান।
বর্ণনা ঐচ্ছিক প্রদান করা হলে 200 অক্ষরের মধ্যে হতে হবে।
স্পষ্ট ঐচ্ছিক

একটি বুলিয়ান নির্দেশ করে যে বিষয়বস্তু স্পষ্ট বা না

যে আইটেমগুলিতে স্পষ্ট উপাদান রয়েছে বা পিতামাতার পরামর্শমূলক সতর্কতা রয়েছে সেগুলি সত্যে সেট করা উচিত৷ স্পষ্ট আইটেম একটি "E" ট্যাগ সঙ্গে প্রদর্শিত হয়.

শেষ বাগদানের সময় ঐচ্ছিক

কন্টিনিউয়েশন ক্লাস্টারের আইটেমগুলির জন্য প্রস্তাবিত৷ র‌্যাঙ্কিংয়ের জন্য ব্যবহার করা যেতে পারে।

যুগের মিলিসেকেন্ডে

PodcastEpisodeEntity

PodcastEpisodeEntity অবজেক্ট একটি পডকাস্ট সিরিজের প্রতিনিধিত্ব করে (উদাহরণস্বরূপ, স্পার্ক বার্ড, পর্ব 754: এই আমেরিকান লাইফ )।

বৈশিষ্ট্য প্রয়োজনীয়তা মন্তব্য
নাম প্রয়োজন পডকাস্ট পর্বের শিরোনাম।
পোস্টার ছবি প্রয়োজন অন্তত একটি ছবি প্রদান করা আবশ্যক. নির্দেশিকা জন্য ইমেজ স্পেসিফিকেশন দেখুন.
প্লেব্যাক ইউরি প্রয়োজন

একটি গভীর লিঙ্ক যা প্রদানকারী অ্যাপে পডকাস্ট পর্ব চালানো শুরু করে।

দ্রষ্টব্য: আপনি অ্যাট্রিবিউশনের জন্য গভীর লিঙ্ক ব্যবহার করতে পারেন। এই FAQ পড়ুন

প্রোডাকশন সিরিজের শিরোনাম প্রয়োজন পডকাস্ট সিরিজের নাম যেটি পর্বের অন্তর্গত।
সময়কাল প্রয়োজন মিলিসেকেন্ডে পডকাস্ট পর্বের সময়কাল।
প্রকাশের তারিখ প্রয়োজন পডকাস্টের তারিখ প্রকাশ করুন (যুগ মিলিসেকেন্ডে)
তথ্য পাতা uri ঐচ্ছিক

পডকাস্ট পর্বের বিশদ বিবরণের জন্য প্রদানকারী অ্যাপের একটি গভীর লিঙ্ক।

দ্রষ্টব্য: আপনি অ্যাট্রিবিউশনের জন্য গভীর লিঙ্ক ব্যবহার করতে পারেন। এই FAQ পড়ুন

উৎপাদনের নাম ঐচ্ছিক পডকাস্ট সিরিজের প্রযোজনার নাম।
পর্ব সূচক ঐচ্ছিক সিরিজের পর্বের সূচী (প্রথম সূচক হল 1)।
হোস্ট ঐচ্ছিক পডকাস্ট পর্বের হোস্টদের তালিকা।
জেনারস ঐচ্ছিক পডকাস্ট পর্বের ঘরানার তালিকা।
ডিভাইসে ডাউনলোড করা হয়েছে ঐচ্ছিক পডকাস্ট পর্বটি ডিভাইসে ডাউনলোড করা হয়েছে কিনা তা নির্দেশ করে বুলিয়ান।
বর্ণনা ঐচ্ছিক প্রদান করা হলে 200 অক্ষরের মধ্যে হতে হবে।
ভিডিও পডকাস্ট ঐচ্ছিক পডকাস্ট পর্বে ভিডিও সামগ্রী আছে কিনা তা নির্দেশ করে বুলিয়ান
স্পষ্ট ঐচ্ছিক

একটি বুলিয়ান নির্দেশ করে যে বিষয়বস্তু স্পষ্ট বা না

যে আইটেমগুলিতে স্পষ্ট উপাদান রয়েছে বা পিতামাতার পরামর্শমূলক সতর্কতা রয়েছে সেগুলি সত্যে সেট করা উচিত৷ স্পষ্ট আইটেম একটি "E" ট্যাগ সঙ্গে প্রদর্শিত হয়.

পরবর্তী টাইপ শুনুন ঐচ্ছিক

কন্টিনিউয়েশন ক্লাস্টারে আইটেমগুলির জন্য প্রস্তাবিত৷

TYPE_CONTINUE - একটি অসমাপ্ত অডিও আইটেমে পুনরায় শুরু করুন৷

TYPE_NEXT - একটি সিরিজের একটি নতুন চালিয়ে যান।

TYPE_NEW - সদ্য প্রকাশিত হয়েছে৷

শেষ বাগদানের সময় ঐচ্ছিক

কন্টিনিউয়েশন ক্লাস্টারের আইটেমগুলির জন্য প্রস্তাবিত৷ র‌্যাঙ্কিংয়ের জন্য ব্যবহার করা যেতে পারে।

যুগের মিলিসেকেন্ডে

শতকরা অগ্রগতি সম্পূর্ণ ঐচ্ছিক

কন্টিনিউয়েশন ক্লাস্টারের আইটেমগুলির জন্য প্রস্তাবিত৷

0 এবং 100 এর মধ্যে পূর্ণসংখ্যা

LiveRadioStationEntity

LiveRadioStationEntity অবজেক্ট একটি লাইভ রেডিও স্টেশন প্রতিনিধিত্ব করে (উদাহরণস্বরূপ, 98.1 The Breeze)।

বৈশিষ্ট্য প্রয়োজনীয়তা মন্তব্য
নাম প্রয়োজন লাইভ রেডিও স্টেশনের শিরোনাম।
পোস্টার ছবি প্রয়োজন অন্তত একটি ছবি প্রদান করা আবশ্যক. নির্দেশিকা জন্য ইমেজ স্পেসিফিকেশন দেখুন.
প্লেব্যাক ইউরি প্রয়োজন

একটি গভীর লিঙ্ক যা প্রদানকারী অ্যাপে রেডিও স্টেশন চালানো শুরু করে।

দ্রষ্টব্য: আপনি অ্যাট্রিবিউশনের জন্য গভীর লিঙ্ক ব্যবহার করতে পারেন। এই FAQ পড়ুন

তথ্য পাতা uri ঐচ্ছিক

রেডিও স্টেশন সম্পর্কে বিস্তারিত জানার জন্য প্রদানকারী অ্যাপের একটি গভীর লিঙ্ক।

দ্রষ্টব্য: আপনি অ্যাট্রিবিউশনের জন্য গভীর লিঙ্ক ব্যবহার করতে পারেন। এই FAQ পড়ুন

ফ্রিকোয়েন্সি ঐচ্ছিক যে ফ্রিকোয়েন্সিতে রেডিও স্টেশন সম্প্রচার করা হয় (উদাহরণস্বরূপ, "98.1 FM")।
শিরোনাম দেখান ঐচ্ছিক রেডিও স্টেশনে বাজছে বর্তমান শো।
হোস্ট ঐচ্ছিক রেডিও স্টেশনের হোস্টদের তালিকা।
বর্ণনা ঐচ্ছিক প্রদান করা হলে 200 অক্ষরের মধ্যে হতে হবে।
শেষ বাগদানের সময় ঐচ্ছিক

কন্টিনিউয়েশন ক্লাস্টারের আইটেমগুলির জন্য প্রস্তাবিত৷ র‌্যাঙ্কিংয়ের জন্য ব্যবহার করা যেতে পারে।

যুগের মিলিসেকেন্ডে

AudiobookEntity

AudiobookEntity অবজেক্ট একটি অডিওবুক প্রতিনিধিত্ব করে (উদাহরণস্বরূপ, মিশেল ওবামার অডিওবুক বেকমিং )।

বৈশিষ্ট্য প্রয়োজনীয়তা মন্তব্য
নাম প্রয়োজন
পোস্টার ছবি প্রয়োজন অন্তত একটি ছবি প্রদান করা আবশ্যক. নির্দেশিকা জন্য ইমেজ স্পেসিফিকেশন দেখুন.
লেখক প্রয়োজন অন্তত একজন লেখকের নাম দিতে হবে।
বর্ণনাকারী প্রয়োজন অন্তত একজন বর্ণনাকারীর নাম অবশ্যই দিতে হবে।
অ্যাকশন লিঙ্ক ইউরি প্রয়োজন

অডিওবুকের জন্য প্রদানকারী অ্যাপের গভীর লিঙ্ক।

দ্রষ্টব্য: আপনি অ্যাট্রিবিউশনের জন্য গভীর লিঙ্ক ব্যবহার করতে পারেন। এই FAQ পড়ুন

প্রকাশের তারিখ ঐচ্ছিক প্রদান করা হলে যুগের মিলিসেকেন্ডে।
বর্ণনা ঐচ্ছিক প্রদান করা হলে 200 অক্ষরের মধ্যে হতে হবে।
দাম ঐচ্ছিক বিনামূল্যে টেক্সট
সময়কাল ঐচ্ছিক প্রদান করা হলে অবশ্যই একটি ইতিবাচক মান হতে হবে।
ধারা ঐচ্ছিক বইয়ের সাথে সম্পর্কিত ঘরানার তালিকা।
সিরিজের নাম ঐচ্ছিক সিরিজের নাম যে অডিওবুকটির অন্তর্গত (উদাহরণস্বরূপ, হ্যারি পটার
সিরিজ ইউনিট সূচক ঐচ্ছিক সিরিজের অডিওবুকের সূচী, যেখানে 1 সিরিজের প্রথম অডিওবুক। উদাহরণস্বরূপ, হ্যারি পটার অ্যান্ড দ্য প্রিজনার অফ আজকাবান সিরিজের 3য় বই হলে, এটি 3-এ সেট করা উচিত।
বইয়ের ধরন চালিয়ে যান ঐচ্ছিক

TYPE_CONTINUE - একটি অসমাপ্ত বইতে পুনরায় শুরু করুন।

TYPE_NEXT - একটি সিরিজের একটি নতুন চালিয়ে যান।

TYPE_NEW - সদ্য প্রকাশিত হয়েছে৷

শেষ বাগদানের সময় শর্তসাপেক্ষে প্রয়োজন

আইটেমটি যখন কন্টিনিউয়েশন ক্লাস্টারে থাকে তখন অবশ্যই প্রদান করতে হবে।

যুগের মিলিসেকেন্ডে।

শতকরা অগ্রগতি সম্পূর্ণ শর্তসাপেক্ষে প্রয়োজন

আইটেমটি যখন কন্টিনিউয়েশন ক্লাস্টারে থাকে তখন অবশ্যই প্রদান করতে হবে।

*নতুন* অর্জিত অডিওবুকগুলি অবিরত পড়ার ক্লাস্টারের একটি অংশ হতে পারে।

মান অবশ্যই 0-এর বেশি এবং 100-এর কম হতে হবে।

DisplayTimeWindow - পৃষ্ঠে দেখানোর জন্য একটি বিষয়বস্তুর জন্য একটি সময় উইন্ডো সেট করুন
টাইমস্ট্যাম্প শুরু করুন ঐচ্ছিক

যুগের টাইমস্ট্যাম্প যার পরে বিষয়বস্তু পৃষ্ঠে দেখানো উচিত।

যদি সেট না করা হয়, তাহলে বিষয়বস্তু পৃষ্ঠে দেখানোর যোগ্য।

যুগের মিলিসেকেন্ডে।

শেষ টাইমস্ট্যাম্প ঐচ্ছিক

যুগের টাইমস্ট্যাম্প যার পরে বিষয়বস্তু পৃষ্ঠে আর দেখানো হয় না।

যদি সেট না করা হয়, তাহলে বিষয়বস্তু পৃষ্ঠে দেখানোর যোগ্য।

যুগের মিলিসেকেন্ডে।

ইমেজ স্পেসিফিকেশন

ইমেজ সম্পদের জন্য প্রয়োজনীয় স্পেসিফিকেশন নীচে তালিকাভুক্ত করা হয়েছে:

আনুমানিক অনুপাত প্রয়োজনীয়তা ন্যূনতম পিক্সেল প্রস্তাবিত পিক্সেল
বর্গক্ষেত্র (1x1) প্রয়োজন 300x300 1200x1200
ল্যান্ডস্কেপ (1.91x1) ঐচ্ছিক 600x314 1200x628
প্রতিকৃতি (4x5) ঐচ্ছিক 480x600 960x1200

ফাইল ফরম্যাট

PNG, JPG, স্ট্যাটিক GIF, WebP

সর্বোচ্চ ফাইলের আকার

5120 KB

অতিরিক্ত সুপারিশ

  • ছবি নিরাপদ এলাকা: ছবির 80% কেন্দ্রে আপনার গুরুত্বপূর্ণ বিষয়বস্তু রাখুন।

উদাহরণ

MusicAlbumEntity musicAlbumEntity =
        new MusicAlbumEntity.Builder()
            .setName(NAME)
             .addPosterImage(new Image.Builder()
                  .setImageUri(Uri.parse("http://www.x.com/image.png"))
                  .setImageHeightInPixel(960)
                  .setImageWidthInPixel(408)
                  .build())
            .setPlayBackUri("https://play.google/album/play")
            .setInfoPageUri("https://play.google/album/info")
            .setDescription("A description of this album.")
            .addArtist("Artist")
            .addGenre("Genre")
            .addMusicLabel("Label")
            .addContentRating("Rating")
            .setSongsCount(960)
            .setReleaseDateEpochMillis(1633032895L)
            .setDurationMillis(1633L)
            .build();
AudiobookEntity audiobookEntity =
        new AudiobookEntity.Builder()
            .setName("Becoming")
            .addPosterImage(new Image.Builder()
                 .setImageUri(Uri.parse("http://www.x.com/image.png"))
                 .setImageHeightInPixel(960)
                 .setImageWidthInPixel(408)
                  .build())
            .addAuthor("Michelle Obama")
            .addNarrator("Michelle Obama")
            .setActionLinkUri(
               Uri.parse("https://play.google/audiobooks/1"))
            .setDurationMillis(16335L)
            .setPublishDateEpochMillis(1633032895L)
            .setDescription("An intimate, powerful, and inspiring memoir")
            .setPrice("$16.95")
            .addGenre("biography")
            .build();

ধাপ 2: ক্লাস্টার ডেটা প্রদান করুন

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

AppEngagePublishClient ক্লাস্টার প্রকাশের জন্য দায়ী। নিম্নলিখিত APIগুলি ক্লায়েন্টে উপলব্ধ:

  • isServiceAvailable
  • publishRecommendationClusters
  • publishFeaturedCluster
  • publishContinuationCluster
  • publishUserAccountManagementRequest
  • updatePublishStatus
  • deleteRecommendationsClusters
  • deleteFeaturedCluster
  • deleteContinuationCluster
  • deleteUserManagementCluster
  • deleteClusters

isServiceAvailable

পরিষেবাটি ইন্টিগ্রেশনের জন্য উপলব্ধ কিনা এবং ডিভাইসে সামগ্রী উপস্থাপন করা যেতে পারে কিনা তা পরীক্ষা করতে এই API ব্যবহার করা হয়।

কোটলিন


client.isServiceAvailable.addOnCompleteListener { task ->
    if (task.isSuccessful) {
        // Handle IPC call success
        if(task.result) {
          // Service is available on the device, proceed with content
          // publish calls.
        } else {
          // Service is not available, no further action is needed.
        }
    } else {
      // The IPC call itself fails, proceed with error handling logic here,
      // such as retry.
    }
}

জাভা


client.isServiceAvailable().addOnCompleteListener(task - > {
    if (task.isSuccessful()) {
        // Handle success
        if(task.getResult()) {
          // Service is available on the device, proceed with content publish
          // calls.
        } else {
          // Service is not available, no further action is needed.
        }
    } else {
      // The IPC call itself fails, proceed with error handling logic here,
      // such as retry.
    }
});

publishRecommendationClusters

RecommendationCluster অবজেক্টের একটি তালিকা প্রকাশ করতে এই API ব্যবহার করা হয়।

কোটলিন


client.publishRecommendationClusters(
            PublishRecommendationClustersRequest.Builder()
                .addRecommendationCluster(
                    RecommendationCluster.Builder()
                        .addEntity(entity1)
                        .addEntity(entity2)
                        .setTitle("Trending music")
                        .build())
                .build())

জাভা


client.publishRecommendationClusters(
            new PublishRecommendationClustersRequest.Builder()
                .addRecommendationCluster(
                    new RecommendationCluster.Builder()
                        .addEntity(entity1)
                        .addEntity(entity2)
                        .setTitle("Trending music")
                        .build())
                .build());

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

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

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

publishFeaturedCluster

এই APIটি FeaturedCluster অবজেক্টের একটি তালিকা প্রকাশ করতে ব্যবহৃত হয়।

কোটলিন


client.publishFeaturedCluster(
            PublishFeaturedClusterRequest.Builder()
                .setFeaturedCluster(
                    FeaturedCluster.Builder()
                        ...
                        .build())
                .build())

জাভা


client.publishFeaturedCluster(
            new PublishFeaturedClusterRequest.Builder()
                .setFeaturedCluster(
                    new FeaturedCluster.Builder()
                        ...
                        .build())
                .build());

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

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

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

publishContinuationCluster

এই API একটি ContinuationCluster অবজেক্ট প্রকাশ করতে ব্যবহৃত হয়।

কোটলিন


client.publishContinuationCluster(
            PublishContinuationClusterRequest.Builder()
                .setContinuationCluster(
                    ContinuationCluster.Builder()
                        .addEntity(entity1)
                        .addEntity(entity2)
                        .build())
                .build())

জাভা


client.publishContinuationCluster(
            PublishContinuationClusterRequest.Builder()
                .setContinuationCluster(
                    ContinuationCluster.Builder()
                        .addEntity(entity1)
                        .addEntity(entity2)
                        .build())
                .build())

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

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

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

publishUserAccountManagementRequest

এই API একটি সাইন ইন কার্ড প্রকাশ করতে ব্যবহৃত হয়। সাইন ইন অ্যাকশন ব্যবহারকারীদের অ্যাপের সাইন ইন পৃষ্ঠায় নির্দেশ করে যাতে অ্যাপটি সামগ্রী প্রকাশ করতে পারে (বা আরও ব্যক্তিগতকৃত সামগ্রী সরবরাহ করতে পারে)

নিম্নলিখিত মেটাডেটা সাইন ইন কার্ডের অংশ -

বৈশিষ্ট্য প্রয়োজনীয়তা বর্ণনা
অ্যাকশন উরি প্রয়োজন ডিপলিংক টু অ্যাকশন (অর্থাৎ অ্যাপ সাইন ইন পৃষ্ঠায় নেভিগেট করে)
ছবি ঐচ্ছিক - প্রদান করা না হলে, শিরোনাম প্রদান করা আবশ্যক

কার্ডে দেখানো ছবি

1264x712 রেজোলিউশন সহ 16x9 আকৃতির অনুপাতের ছবি

শিরোনাম ঐচ্ছিক - প্রদান না করা হলে, ছবি প্রদান করতে হবে কার্ডে শিরোনাম
অ্যাকশন টেক্সট ঐচ্ছিক CTA-তে টেক্সট দেখানো হয়েছে (যেমন সাইন ইন)
সাবটাইটেল ঐচ্ছিক কার্ডে ঐচ্ছিক সাবটাইটেল

কোটলিন


var SIGN_IN_CARD_ENTITY =
      SignInCardEntity.Builder()
          .addPosterImage(
              Image.Builder()
                  .setImageUri(Uri.parse("http://www.x.com/image.png"))
                  .setImageHeightInPixel(500)
                  .setImageWidthInPixel(500)
                  .build())
          .setActionText("Sign In")
          .setActionUri(Uri.parse("http://xx.com/signin"))
          .build()

client.publishUserAccountManagementRequest(
            PublishUserAccountManagementRequest.Builder()
                .setSignInCardEntity(SIGN_IN_CARD_ENTITY)
                .build());

জাভা


SignInCardEntity SIGN_IN_CARD_ENTITY =
      new SignInCardEntity.Builder()
          .addPosterImage(
              new Image.Builder()
                  .setImageUri(Uri.parse("http://www.x.com/image.png"))
                  .setImageHeightInPixel(500)
                  .setImageWidthInPixel(500)
                  .build())
          .setActionText("Sign In")
          .setActionUri(Uri.parse("http://xx.com/signin"))
          .build();

client.publishUserAccountManagementRequest(
            new PublishUserAccountManagementRequest.Builder()
                .setSignInCardEntity(SIGN_IN_CARD_ENTITY)
                .build());

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

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

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

updatePublishStatus

যদি কোনও অভ্যন্তরীণ ব্যবসায়িক কারণে, ক্লাস্টারগুলির কোনওটিই প্রকাশিত না হয়, আমরা দৃঢ়ভাবে আপডেট পাবলিশ স্ট্যাটাস API ব্যবহার করে প্রকাশের স্থিতি আপডেট করার সুপারিশ করি৷ এটি গুরুত্বপূর্ণ কারণ:

  • সমস্ত পরিস্থিতিতে স্ট্যাটাস প্রদান করা, এমনকি যখন বিষয়বস্তু প্রকাশিত হয় (স্ট্যাটাস == প্রকাশিত), ড্যাশবোর্ডগুলিকে পপুলেট করার জন্য গুরুত্বপূর্ণ যেগুলি আপনার ইন্টিগ্রেশনের স্বাস্থ্য এবং অন্যান্য মেট্রিক্স জানাতে এই স্পষ্ট স্ট্যাটাস ব্যবহার করে।
  • যদি কোনো বিষয়বস্তু প্রকাশিত না হয় কিন্তু ইন্টিগ্রেশন স্ট্যাটাস ভাঙা না হয় (STATUS == NOT_PUBLISHED), Google অ্যাপ হেলথ ড্যাশবোর্ডে সতর্কতা ট্রিগার করা এড়াতে পারে। এটি নিশ্চিত করে যে প্রদানকারীর দৃষ্টিকোণ থেকে প্রত্যাশিত পরিস্থিতির কারণে বিষয়বস্তু প্রকাশ করা হয়নি।
  • এটি ডেভেলপারদের তথ্য প্রকাশের বিপরীতে প্রকাশ না করার বিষয়ে অন্তর্দৃষ্টি প্রদান করতে সহায়তা করে।
  • গুগল স্ট্যাটাস কোড ব্যবহার করে ব্যবহারকারীকে অ্যাপে নির্দিষ্ট কিছু ক্রিয়া করার জন্য চাপ দিতে পারে যাতে তারা অ্যাপের বিষয়বস্তু দেখতে পারে বা তা কাটিয়ে উঠতে পারে।

যোগ্য প্রকাশের স্ট্যাটাস কোডের তালিকা হল:

// Content is published
AppEngagePublishStatusCode.PUBLISHED,

// Content is not published as user is not signed in
AppEngagePublishStatusCode.NOT_PUBLISHED_REQUIRES_SIGN_IN,

// Content is not published as user is not subscribed
AppEngagePublishStatusCode.NOT_PUBLISHED_REQUIRES_SUBSCRIPTION,

// Content is not published as user location is ineligible
AppEngagePublishStatusCode.NOT_PUBLISHED_INELIGIBLE_LOCATION,

// Content is not published as there is no eligible content
AppEngagePublishStatusCode.NOT_PUBLISHED_NO_ELIGIBLE_CONTENT,

// Content is not published as the feature is disabled by the client
// Available in v1.3.1
AppEngagePublishStatusCode.NOT_PUBLISHED_FEATURE_DISABLED_BY_CLIENT,

// Content is not published as the feature due to a client error
// Available in v1.3.1
AppEngagePublishStatusCode.NOT_PUBLISHED_CLIENT_ERROR,

// Content is not published as the feature due to a service error
// Available in v1.3.1
AppEngagePublishStatusCode.NOT_PUBLISHED_SERVICE_ERROR,

// Content is not published due to some other reason
// Reach out to engage-developers@ before using this enum.
AppEngagePublishStatusCode.NOT_PUBLISHED_OTHER

যদি কোনো ব্যবহারকারী লগ ইন না করার কারণে বিষয়বস্তু প্রকাশিত না হয়, তাহলে Google সাইন ইন কার্ড প্রকাশ করার সুপারিশ করবে। যদি কোনো কারণে প্রদানকারীরা সাইন ইন কার্ড প্রকাশ করতে না পারে তাহলে আমরা স্ট্যাটাস কোড NOT_PUBLISHED_REQUIRES_SIGN_IN সহ updatePublishStatus API কল করার পরামর্শ দিই

কোটলিন


client.updatePublishStatus(
   PublishStatusRequest.Builder()
     .setStatusCode(AppEngagePublishStatusCode.NOT_PUBLISHED_REQUIRES_SIGN_IN)
     .build())

জাভা


client.updatePublishStatus(
    new PublishStatusRequest.Builder()
        .setStatusCode(AppEngagePublishStatusCode.NOT_PUBLISHED_REQUIRES_SIGN_IN)
        .build());

deleteRecommendationClusters

এই APIটি সুপারিশ ক্লাস্টারের বিষয়বস্তু মুছে ফেলার জন্য ব্যবহার করা হয়।

কোটলিন


client.deleteRecommendationClusters()

জাভা


client.deleteRecommendationClusters();

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

deleteFeaturedCluster

এই APIটি বৈশিষ্ট্যযুক্ত ক্লাস্টারের বিষয়বস্তু মুছে ফেলার জন্য ব্যবহৃত হয়।

কোটলিন


client.deleteFeaturedCluster()

জাভা


client.deleteFeaturedCluster();

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

deleteContinuationCluster

এই API কন্টিনিউয়েশন ক্লাস্টারের বিষয়বস্তু মুছে ফেলার জন্য ব্যবহার করা হয়।

কোটলিন


client.deleteContinuationCluster()

জাভা


client.deleteContinuationCluster();

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

deleteUserManagementCluster

UserAccountManagement Cluster-এর বিষয়বস্তু মুছতে এই API ব্যবহার করা হয়।

কোটলিন


client.deleteUserManagementCluster()

জাভা


client.deleteUserManagementCluster();

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

deleteClusters

এই API একটি প্রদত্ত ক্লাস্টার ধরনের বিষয়বস্তু মুছে ফেলার জন্য ব্যবহার করা হয়.

কোটলিন


client.deleteClusters(
    DeleteClustersRequest.Builder()
      .addClusterType(ClusterType.TYPE_FEATURED)
      .addClusterType(ClusterType.TYPE_RECOMMENDATION)
      ...
      .build())

জাভা


client.deleteClusters(
            new DeleteClustersRequest.Builder()
                .addClusterType(ClusterType.TYPE_FEATURED)
                .addClusterType(ClusterType.TYPE_RECOMMENDATION)
                ...
                .build());

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

ত্রুটি পরিচালনা

পাবলিশ এপিআই থেকে টাস্ক রেজাল্ট শোনার জন্য অত্যন্ত সুপারিশ করা হয় যাতে একটি সফল টাস্ক পুনরুদ্ধার এবং পুনরায় জমা দেওয়ার জন্য একটি ফলো-আপ পদক্ষেপ নেওয়া যেতে পারে।

client.publishRecommendationClusters(
              new PublishRecommendationClustersRequest.Builder()
                  .addRecommendationCluster(...)
                  .build())
          .addOnCompleteListener(
              task -> {
                if (task.isSuccessful()) {
                  // do something
                } else {
                  Exception exception = task.getException();
                  if (exception instanceof AppEngageException) {
                    @AppEngageErrorCode
                    int errorCode = ((AppEngageException) exception).getErrorCode();
                    if (errorCode == AppEngageErrorCode.SERVICE_NOT_FOUND) {
                      // do something
                    }
                  }
                }
              });

ত্রুটিটি একটি AppEngageException হিসাবে ফেরত দেওয়া হয়েছে এবং কারণটি একটি ত্রুটি কোড হিসাবে অন্তর্ভুক্ত করা হয়েছে৷

ভুল সংকেত বিঃদ্রঃ
SERVICE_NOT_FOUND প্রদত্ত ডিভাইসে পরিষেবাটি উপলব্ধ নয়৷
SERVICE_NOT_AVAILABLE পরিষেবাটি প্রদত্ত ডিভাইসে উপলব্ধ, কিন্তু কলের সময় এটি উপলব্ধ নয় (উদাহরণস্বরূপ, এটি স্পষ্টভাবে অক্ষম)৷
SERVICE_CALL_EXECUTION_FAILURE থ্রেডিং সমস্যার কারণে টাস্ক এক্সিকিউশন ব্যর্থ হয়েছে। এই ক্ষেত্রে, এটি পুনরায় চেষ্টা করা যেতে পারে।
SERVICE_CALL_PERMISSION_DENIED কলকারীকে পরিষেবা কল করার অনুমতি নেই।
SERVICE_CALL_INVALID_ARGUMENT অনুরোধে অবৈধ ডেটা রয়েছে (উদাহরণস্বরূপ, ক্লাস্টারের অনুমোদিত সংখ্যার চেয়ে বেশি)।
SERVICE_CALL_INTERNAL পরিষেবার দিকে একটি ত্রুটি আছে.
SERVICE_CALL_RESOURCE_EXHAUSTED পরিষেবা কল খুব ঘন ঘন করা হয়.

ধাপ 3: সম্প্রচারের উদ্দেশ্য পরিচালনা করুন

একটি কাজের মাধ্যমে প্রকাশ সামগ্রী API কল করার পাশাপাশি, একটি বিষয়বস্তু প্রকাশের জন্য অনুরোধ পাওয়ার জন্য একটি BroadcastReceiver সেট আপ করতে হবে৷

সম্প্রচারের অভিপ্রায়ের লক্ষ্য মূলত অ্যাপ পুনরায় সক্রিয়করণ এবং ডেটা সিঙ্ককে বাধ্য করা। সম্প্রচারের অভিপ্রায়গুলি খুব ঘন ঘন পাঠানোর জন্য ডিজাইন করা হয়নি। এটি শুধুমাত্র তখনই ট্রিগার হয় যখন এনগেজ সার্ভিস নির্ধারণ করে যে বিষয়বস্তুটি বাসি হতে পারে (উদাহরণস্বরূপ, এক সপ্তাহ পুরানো)। এইভাবে, ব্যবহারকারীর একটি নতুন বিষয়বস্তুর অভিজ্ঞতা থাকতে পারে এমন আত্মবিশ্বাস রয়েছে, এমনকি যদি অ্যাপ্লিকেশনটি দীর্ঘ সময়ের জন্য কার্যকর না হয়।

BroadcastReceiver নিম্নলিখিত দুটি উপায়ে সেট আপ করা আবশ্যক:

  • Context.registerReceiver() ব্যবহার করে BroadcastReceiver ক্লাসের একটি উদাহরণ ডায়নামিকভাবে নিবন্ধন করুন। এটি এখনও মেমরিতে লাইভ থাকা অ্যাপ্লিকেশনগুলি থেকে যোগাযোগ সক্ষম করে৷
class AppEngageBroadcastReceiver extends BroadcastReceiver {
// Trigger recommendation cluster publish when PUBLISH_RECOMMENDATION broadcast
// is received

// Trigger featured cluster publish when PUBLISH_FEATURED broadcast is received

// Trigger continuation cluster publish when PUBLISH_CONTINUATION broadcast is
// received
}

public static void registerBroadcastReceivers(Context context) {

context = context.getApplicationContext();

// Register Recommendation Cluster Publish Intent
context.registerReceiver(new AppEngageBroadcastReceiver(),
new IntentFilter(com.google.android.engage.service.Intents.ACTION_PUBLISH_RECOMMENDATION));

// Register Featured Cluster Publish Intent
context.registerReceiver(new AppEngageBroadcastReceiver(),
new IntentFilter(com.google.android.engage.service.Intents.ACTION_PUBLISH_FEATURED));

// Register Continuation Cluster Publish Intent
context.registerReceiver(new AppEngageBroadcastReceiver(),
new IntentFilter(com.google.android.engage.service.Intents.ACTION_PUBLISH_CONTINUATION));

}
  • আপনার AndroidManifest.xml ফাইলে <receiver> ট্যাগ দিয়ে স্থিরভাবে একটি বাস্তবায়ন ঘোষণা করুন। এটি অ্যাপ্লিকেশনটিকে সম্প্রচারের অভিপ্রায় প্রাপ্ত করার অনুমতি দেয় যখন এটি চলছে না, এবং অ্যাপ্লিকেশনটিকে সামগ্রী প্রকাশ করার অনুমতি দেয়৷
<application>
   <receiver
      android:name=".AppEngageBroadcastReceiver"
      android:exported="true"
      android:enabled="true">
      <intent-filter>
         <action android:name="com.google.android.engage.action.PUBLISH_RECOMMENDATION" />
      </intent-filter>
      <intent-filter>
         <action android:name="com.google.android.engage.action.PUBLISH_FEATURED" />
      </intent-filter>
      <intent-filter>
         <action android:name="com.google.android.engage.action.PUBLISH_CONTINUATION" />
      </intent-filter>
   </receiver>
</application>

নিম্নলিখিত উদ্দেশ্যগুলি পরিষেবা দ্বারা পাঠানো হবে:

  • com.google.android.engage.action.PUBLISH_RECOMMENDATION এই উদ্দেশ্যটি পাওয়ার সময় একটি publishRecommendationClusters কল শুরু করার পরামর্শ দেওয়া হয়৷
  • com.google.android.engage.action.PUBLISH_FEATURED এই অভিপ্রায়টি পাওয়ার সময় একটি publishFeaturedCluster কল শুরু করার পরামর্শ দেওয়া হয়৷
  • com.google.android.engage.action.PUBLISH_CONTINUATION এই অভিপ্রায়টি পাওয়ার সময় একটি publishContinuationCluster কল শুরু করার পরামর্শ দেওয়া হয়৷

ইন্টিগ্রেশন ওয়ার্কফ্লো

আপনার ইন্টিগ্রেশন সম্পূর্ণ হওয়ার পরে যাচাই করার জন্য ধাপে ধাপে গাইডের জন্য, Engage ডেভেলপার ইন্টিগ্রেশন ওয়ার্কফ্লো দেখুন।

FAQs

প্রায়শই জিজ্ঞাসিত প্রশ্নগুলির জন্য Engage SDK দেখুন।

যোগাযোগ

ইন্টিগ্রেশন প্রক্রিয়া চলাকালীন কোনো প্রশ্ন থাকলে entering-developers@google.com-এ যোগাযোগ করুন। আমাদের দল যত তাড়াতাড়ি সম্ভব উত্তর দেবে।

পরবর্তী পদক্ষেপ

এই ইন্টিগ্রেশন সম্পন্ন করার পরে, আপনার পরবর্তী পদক্ষেপগুলি নিম্নরূপ:

  • Enge-developers@google.com- এ একটি ইমেল পাঠান এবং আপনার সমন্বিত APK সংযুক্ত করুন যা Google দ্বারা পরীক্ষার জন্য প্রস্তুত৷
  • ইন্টিগ্রেশন আশানুরূপ কাজ করছে তা নিশ্চিত করতে Google একটি যাচাইকরণ করবে এবং অভ্যন্তরীণভাবে পর্যালোচনা করবে। পরিবর্তনের প্রয়োজন হলে, Google যেকোনো প্রয়োজনীয় বিবরণের সাথে আপনার সাথে যোগাযোগ করবে।
  • যখন পরীক্ষা সম্পূর্ণ হয় এবং কোন পরিবর্তনের প্রয়োজন হয় না, তখন Google আপনাকে অবহিত করার জন্য আপনার সাথে যোগাযোগ করবে যে আপনি প্লে স্টোরে আপডেট করা এবং সমন্বিত APK প্রকাশ করা শুরু করতে পারেন।
  • Google আপনার আপডেট করা APK প্লে স্টোরে প্রকাশ করা হয়েছে তা নিশ্চিত করার পরে, আপনার সুপারিশ , বৈশিষ্ট্যযুক্ত , এবং ধারাবাহিকতা ক্লাস্টারগুলি প্রকাশ করা হবে এবং ব্যবহারকারীদের কাছে দৃশ্যমান হবে৷