Google একটি অন-ডিভাইস পৃষ্ঠ তৈরি করছে যা ব্যবহারকারীদের অ্যাপগুলিকে উল্লম্বভাবে সংগঠিত করে এবং ব্যক্তিগতকৃত অ্যাপ সামগ্রী ব্যবহার এবং আবিষ্কারের জন্য একটি নতুন নিমজ্জিত অভিজ্ঞতা সক্ষম করে৷ এই ফুলস্ক্রিন অভিজ্ঞতা ডেভেলপার অংশীদারদের তাদের অ্যাপের বাইরে একটি ডেডিকেটেড চ্যানেলে তাদের সেরা সমৃদ্ধ সামগ্রী প্রদর্শন করার সুযোগ দেয়।
এই নির্দেশিকাটিতে বিকাশকারী অংশীদারদের জন্য তাদের খাদ্য সামগ্রী একীভূত করার নির্দেশাবলী রয়েছে, এই নতুন পৃষ্ঠের এলাকা এবং বিদ্যমান Google সারফেস উভয়কেই জনবহুল করতে Engage SDK ব্যবহার করে।
ইন্টিগ্রেশন বিস্তারিত
পরিভাষা
এই ইন্টিগ্রেশনে নিম্নলিখিত পাঁচটি ক্লাস্টার প্রকার অন্তর্ভুক্ত রয়েছে: সুপারিশ , বৈশিষ্ট্যযুক্ত , খাদ্য শপিং কার্ট , খাদ্য কেনাকাটার তালিকা , এবং পুনরায় সাজান ৷
সুপারিশ ক্লাস্টারগুলি একটি পৃথক বিকাশকারী অংশীদার থেকে ব্যক্তিগতকৃত খাদ্য-সম্পর্কিত পরামর্শগুলি দেখায়। এই সুপারিশগুলি ব্যবহারকারীর জন্য ব্যক্তিগতকৃত বা সাধারণীকরণ করা যেতে পারে (উদাহরণস্বরূপ, বিক্রয়ের জন্য নতুন)। রেসিপি, দোকান, থালা-বাসন, মুদি, এবং আরও অনেক কিছুর জন্য এগুলি ব্যবহার করুন যেমন আপনি উপযুক্ত মনে করেন।
- একটি সুপারিশ ক্লাস্টার
ProductEntity
,StoreEntity
, বাRecipeEntity
তালিকা দিয়ে তৈরি করা যেতে পারে, কিন্তু বিভিন্ন ধরনের সত্তার মিশ্রণ নয়।
- একটি সুপারিশ ক্লাস্টার
বৈশিষ্ট্যযুক্ত ক্লাস্টারটি একটি UI গ্রুপিংয়ে একাধিক বিকাশকারী অংশীদারদের থেকে সত্তার একটি নির্বাচন প্রদর্শন করে৷ একটি একক বৈশিষ্ট্যযুক্ত ক্লাস্টার থাকবে, যা সমস্ত সুপারিশ ক্লাস্টারের উপরে একটি অগ্রাধিকার প্লেসমেন্ট সহ UI এর শীর্ষের কাছে প্রদর্শিত হবে৷ প্রতিটি বিকাশকারী অংশীদারকে বৈশিষ্ট্যযুক্ত ক্লাস্টারে 10টি পর্যন্ত সম্প্রচার করার অনুমতি দেওয়া হবে।
ফুড শপিং কার্ট ক্লাস্টার একটি UI গ্রুপিং-এ একাধিক বিকাশকারী অংশীদারদের কাছ থেকে মুদি শপিং কার্টগুলির এক ঝলক দেখায়, ব্যবহারকারীদের তাদের অসামান্য কার্টগুলি সম্পূর্ণ করতে প্ররোচিত করে৷ একটি একক খাদ্য শপিং কার্ট ক্লাস্টার আছে.
ফুড শপিং কার্ট ক্লাস্টারে অবশ্যই কার্টে থাকা আইটেমের মোট সংখ্যা দেখাতে হবে এবং ব্যবহারকারীর কার্টে X আইটেমের জন্য ছবিও অন্তর্ভুক্ত থাকতে পারে।
ফুড শপিং লিস্ট ক্লাস্টারটি একটি UI গ্রুপিং-এ একাধিক ডেভেলপার অংশীদারদের কাছ থেকে মুদির কেনাকাটার তালিকার এক ঝলক দেখায়, ব্যবহারকারীদের তাদের তালিকা আপডেট করতে এবং সম্পূর্ণ করতে সংশ্লিষ্ট অ্যাপে ফিরে যেতে অনুরোধ করে। একটি একক খাদ্য শপিং তালিকা ক্লাস্টার আছে.
পুনঃক্রম ক্লাস্টারটি একটি UI গ্রুপিং-এ একাধিক বিকাশকারী অংশীদারদের থেকে পূর্ববর্তী অর্ডারগুলির একটি ঝলক দেখায়, ব্যবহারকারীদের পুনরায় অর্ডার করতে প্ররোচিত করে৷ একটি একক পুনর্বিন্যাস ক্লাস্টার আছে।
পুনঃক্রম ক্লাস্টারে অবশ্যই ব্যবহারকারীর আগের অর্ডারে আইটেমের মোট সংখ্যা দেখাতে হবে এবং নিম্নলিখিতগুলির মধ্যে একটি অবশ্যই অন্তর্ভুক্ত করতে হবে:
- ব্যবহারকারীর পূর্ববর্তী ক্রমে X আইটেমের জন্য ছবি।
- ব্যবহারকারীর আগের ক্রমে X আইটেমগুলির জন্য লেবেল৷
প্রাক কাজ
ন্যূনতম 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 | সর্বাধিক 25টি ( ProductEntity , RecipeEntity , বা StoreEntity ) |
বৈশিষ্ট্যযুক্ত ক্লাস্টার | সর্বোচ্চ 1 | সর্বাধিক 10টি ( ProductEntity , RecipeEntity , বা StoreEntity ) |
খাদ্য শপিং কার্ট ক্লাস্টার | সর্বোচ্চ 1 | সর্বাধিক 1টি ShoppingCartEntity |
খাদ্য কেনাকাটা তালিকা ক্লাস্টার | সর্বোচ্চ 1 | সর্বাধিক 1টি ShoppingListEntity |
খাদ্য পুনর্বিন্যাস ক্লাস্টার | সর্বোচ্চ 1 | সর্বোচ্চ ১টি ReorderEntity |
ধাপ 1: সত্তা তথ্য প্রদান
প্রতিটি আইটেমের প্রকারের প্রতিনিধিত্ব করার জন্য SDK বিভিন্ন সত্তাকে সংজ্ঞায়িত করেছে। আমরা খাদ্য বিভাগের জন্য নিম্নলিখিত সংস্থাগুলিকে সমর্থন করি:
-
ProductEntity
-
StoreEntity
-
RecipeEntity
-
FoodShoppingCart
-
FoodShoppingList
-
FoodReorderCluster
নীচের চার্টগুলি প্রতিটি ধরণের জন্য উপলব্ধ বৈশিষ্ট্য এবং প্রয়োজনীয়তার রূপরেখা দেয়।
ProductEntity
ProductEntity
অবজেক্ট একটি স্বতন্ত্র আইটেম (যেমন একটি মুদি জিনিস, একটি রেস্তোরাঁর থালা বা প্রচার) প্রতিনিধিত্ব করে যা বিকাশকারী অংশীদাররা প্রকাশ করতে চায়।
বৈশিষ্ট্য | প্রয়োজনীয়তা | বর্ণনা | বিন্যাস |
---|---|---|---|
পোস্টার ছবি | প্রয়োজন | অন্তত একটি ছবি প্রদান করা আবশ্যক. | নির্দেশিকা জন্য ইমেজ স্পেসিফিকেশন দেখুন. |
অ্যাকশন উরি | প্রয়োজন | অ্যাপে পৃষ্ঠার গভীর লিঙ্ক পণ্য সম্পর্কে বিশদ বিবরণ প্রদর্শন করে। দ্রষ্টব্য: আপনি অ্যাট্রিবিউশনের জন্য গভীর লিঙ্ক ব্যবহার করতে পারেন। এই FAQ পড়ুন | উরি |
শিরোনাম | ঐচ্ছিক | পণ্যের নাম। | বিনামূল্যে পাঠ্য প্রস্তাবিত পাঠ্যের আকার: 90 অক্ষরের নিচে (অত্যধিক দীর্ঘ পাঠ্য উপবৃত্ত দেখাতে পারে) |
মূল্য - বর্তমান | শর্তসাপেক্ষে প্রয়োজন | পণ্যের বর্তমান মূল্য। স্ট্রাইকথ্রু মূল্য প্রদান করা হলে অবশ্যই প্রদান করতে হবে। | বিনামূল্যে পাঠ্য |
মূল্য - স্ট্রাইকথ্রু | ঐচ্ছিক | সত্তার আসল মূল্য, যা UI-তে স্ট্রাক-থ্রু হয়। | বিনামূল্যে পাঠ্য |
কলআউট | ঐচ্ছিক | প্রোমো, ইভেন্ট বা প্রোডাক্টের আপডেটের জন্য কল আউট, যদি পাওয়া যায়। | বিনামূল্যে পাঠ্য প্রস্তাবিত পাঠ্যের আকার: 45 অক্ষরের নিচে (অত্যধিক দীর্ঘ পাঠ্য উপবৃত্ত দেখাতে পারে) |
কলআউট সূক্ষ্ম মুদ্রণ | ঐচ্ছিক | কলআউটের জন্য সূক্ষ্ম মুদ্রণ পাঠ্য। | বিনামূল্যে পাঠ্য প্রস্তাবিত পাঠ্যের আকার: 45 অক্ষরের নিচে (অত্যধিক দীর্ঘ পাঠ্য উপবৃত্ত দেখাতে পারে) |
রেটিং (ঐচ্ছিক) - দ্রষ্টব্য: সমস্ত রেটিং আমাদের স্ট্যান্ডার্ড স্টার রেটিং সিস্টেম ব্যবহার করে প্রদর্শিত হয়। | |||
রেটিং - সর্বোচ্চ মান | ঐচ্ছিক | রেটিং স্কেলের সর্বোচ্চ মান। প্রদান করা আবশ্যক যদি রেটিং বর্তমান মান প্রদান করা হয়. | সংখ্যা >= 0.0 |
রেটিং - বর্তমান মান | ঐচ্ছিক | রেটিং স্কেলের বর্তমান মান। প্রদান করা আবশ্যক যদি রেটিং সর্বোচ্চ মান প্রদান করা হয়. | সংখ্যা >= 0.0 |
রেটিং - গণনা | ঐচ্ছিক | পণ্যের জন্য রেটিং গণনা. দ্রষ্টব্য: এই ক্ষেত্রটি প্রদান করুন যদি আপনার অ্যাপ ব্যবহারকারীদের কাছে গণনা কীভাবে প্রদর্শিত হয় তা নিয়ন্ত্রণ করে। একটি সংক্ষিপ্ত স্ট্রিং ব্যবহার করুন. উদাহরণস্বরূপ, যদি গণনা 1,000,000 হয়, তাহলে 1M-এর মতো একটি সংক্ষিপ্ত রূপ ব্যবহার করার কথা বিবেচনা করুন যাতে ছোট ডিসপ্লে আকারে গণনাটি কাটা না যায়। | স্ট্রিং |
রেটিং - গণনা মান | ঐচ্ছিক | পণ্যের জন্য রেটিং গণনা. দ্রষ্টব্য: আপনি যদি প্রদর্শনের সংক্ষিপ্তকরণের যুক্তি নিজে না পরিচালনা করেন তবে এই ক্ষেত্রটি প্রদান করুন। গণনা এবং গণনা মান উভয়ই উপস্থিত থাকলে, ব্যবহারকারীদের কাছে গণনা প্রদর্শিত হয়। | লম্বা |
DisplayTimeWindow (ঐচ্ছিক) - একটি বিষয়বস্তুর পৃষ্ঠে দেখানোর জন্য একটি সময় উইন্ডো সেট করুন | |||
টাইমস্ট্যাম্প শুরু করুন | ঐচ্ছিক | যুগের টাইমস্ট্যাম্প যার পরে বিষয়বস্তু পৃষ্ঠে দেখানো উচিত। যদি সেট না করা হয়, তাহলে বিষয়বস্তু পৃষ্ঠে দেখানোর যোগ্য। | মিলিসেকেন্ডে যুগের টাইমস্ট্যাম্প |
শেষ টাইমস্ট্যাম্প | ঐচ্ছিক | যুগের টাইমস্ট্যাম্প যার পরে বিষয়বস্তু পৃষ্ঠে আর দেখানো হয় না। যদি সেট না করা হয়, তাহলে বিষয়বস্তু পৃষ্ঠে দেখানোর যোগ্য। | মিলিসেকেন্ডে যুগের টাইমস্ট্যাম্প |
StoreEntity
StoreEntity
অবজেক্ট একটি পৃথক স্টোরকে প্রতিনিধিত্ব করে যা বিকাশকারী অংশীদাররা প্রকাশ করতে চায়, যেমন একটি রেস্তোরাঁ বা একটি মুদি দোকান।
বৈশিষ্ট্য | প্রয়োজনীয়তা | বর্ণনা | বিন্যাস |
---|---|---|---|
পোস্টার ছবি | প্রয়োজন | অন্তত একটি ছবি প্রদান করা আবশ্যক. | নির্দেশিকা জন্য ইমেজ স্পেসিফিকেশন দেখুন. |
অ্যাকশন উরি | প্রয়োজন | অ্যাপে পৃষ্ঠার গভীর লিঙ্ক স্টোরের বিবরণ প্রদর্শন করে। দ্রষ্টব্য: আপনি অ্যাট্রিবিউশনের জন্য গভীর লিঙ্ক ব্যবহার করতে পারেন। এই FAQ পড়ুন | উরি |
শিরোনাম | ঐচ্ছিক | দোকানের নাম। | বিনামূল্যে পাঠ্য প্রস্তাবিত পাঠ্যের আকার: 45 অক্ষরের নিচে (অত্যধিক দীর্ঘ পাঠ্য উপবৃত্ত দেখাতে পারে) |
অবস্থান | ঐচ্ছিক | দোকানের অবস্থান। | বিনামূল্যে পাঠ্য প্রস্তাবিত পাঠ্যের আকার: 45 অক্ষরের নিচে (অত্যধিক দীর্ঘ পাঠ্য উপবৃত্ত দেখাতে পারে) |
কলআউট | ঐচ্ছিক | দোকানের জন্য প্রোমো, ইভেন্ট বা আপডেট দেখানোর জন্য কলআউট, যদি পাওয়া যায়। | বিনামূল্যে পাঠ্য প্রস্তাবিত পাঠ্যের আকার: 45 অক্ষরের নিচে (অত্যধিক দীর্ঘ পাঠ্য উপবৃত্ত দেখাতে পারে) |
কলআউট সূক্ষ্ম মুদ্রণ | ঐচ্ছিক | কলআউটের জন্য সূক্ষ্ম মুদ্রণ পাঠ্য। | বিনামূল্যে পাঠ্য প্রস্তাবিত পাঠ্যের আকার: 45 অক্ষরের নিচে (অত্যধিক দীর্ঘ পাঠ্য উপবৃত্ত দেখাতে পারে) |
বর্ণনা | ঐচ্ছিক | দোকানের বর্ণনা। | বিনামূল্যে পাঠ্য প্রস্তাবিত পাঠ্যের আকার: 90 অক্ষরের নিচে (অত্যধিক দীর্ঘ পাঠ্য উপবৃত্ত দেখাতে পারে) |
দ্রষ্টব্য: সমস্ত রেটিং আমাদের স্ট্যান্ডার্ড স্টার রেটিং সিস্টেম ব্যবহার করে প্রদর্শিত হয়। | |||
রেটিং - সর্বোচ্চ মান | ঐচ্ছিক | রেটিং স্কেলের সর্বোচ্চ মান। প্রদান করা আবশ্যক যদি রেটিং বর্তমান মান প্রদান করা হয়. | সংখ্যা >= 0.0 |
রেটিং - বর্তমান মান | ঐচ্ছিক | রেটিং স্কেলের বর্তমান মান। প্রদান করা আবশ্যক যদি রেটিং সর্বোচ্চ মান প্রদান করা হয়. | সংখ্যা >= 0.0 |
রেটিং - গণনা | ঐচ্ছিক | দোকানের জন্য রেটিং গণনা. দ্রষ্টব্য: আপনার অ্যাপ ব্যবহারকারীদের কাছে এটি কীভাবে প্রদর্শিত হবে তা নিয়ন্ত্রণ করতে চাইলে এই ক্ষেত্রটি প্রদান করুন। ব্যবহারকারীর কাছে প্রদর্শিত হতে পারে এমন সংক্ষিপ্ত স্ট্রিং প্রদান করুন। উদাহরণস্বরূপ, যদি গণনা 1,000,000 হয়, তাহলে 1M-এর মতো সংক্ষিপ্ত রূপগুলি ব্যবহার করার কথা বিবেচনা করুন, যাতে ছোট ডিসপ্লে আকারে এটি কাটা না যায়৷ | স্ট্রিং |
রেটিং - গণনা মান | ঐচ্ছিক | দোকানের জন্য রেটিং গণনা. দ্রষ্টব্য: আপনি যদি প্রদর্শন সংক্ষিপ্তকরণ যুক্তি নিজে পরিচালনা করতে না চান তবে এই ক্ষেত্রটি প্রদান করুন৷ গণনা এবং গণনা মান উভয়ই উপস্থিত থাকলে, আমরা ব্যবহারকারীদের কাছে প্রদর্শন করতে গণনা ব্যবহার করব | লম্বা |
RecipeEntity
RecipeEntity
অবজেক্ট একটি রেসিপি আইটেম উপস্থাপন করে যা বিকাশকারী অংশীদাররা প্রকাশ করতে চায়।
বৈশিষ্ট্য | প্রয়োজনীয়তা | বর্ণনা | বিন্যাস |
---|---|---|---|
পোস্টার ছবি | প্রয়োজন | অন্তত একটি ছবি প্রদান করা আবশ্যক. | নির্দেশিকা জন্য ইমেজ স্পেসিফিকেশন দেখুন. |
অ্যাকশন উরি | প্রয়োজন | অ্যাপের পৃষ্ঠার গভীর লিঙ্ক রেসিপি সম্পর্কে বিশদ প্রদর্শন করে। দ্রষ্টব্য: আপনি অ্যাট্রিবিউশনের জন্য গভীর লিঙ্ক ব্যবহার করতে পারেন। এই FAQ পড়ুন | উরি |
শিরোনাম | ঐচ্ছিক | রেসিপির নাম। | বিনামূল্যে পাঠ্য প্রস্তাবিত পাঠ্যের আকার: 45 অক্ষরের নিচে (অত্যধিক দীর্ঘ পাঠ্য উপবৃত্ত দেখাতে পারে) |
লেখক | ঐচ্ছিক | রেসিপি লেখক. | বিনামূল্যে পাঠ্য প্রস্তাবিত পাঠ্যের আকার: 45 অক্ষরের নিচে (অত্যধিক দীর্ঘ পাঠ্য উপবৃত্ত দেখাতে পারে) |
রান্না/প্রস্তুতির সময় | ঐচ্ছিক | রেসিপি রান্নার সময়। | বিনামূল্যে পাঠ্য প্রস্তাবিত পাঠ্যের আকার: 45 অক্ষরের নিচে (অত্যধিক দীর্ঘ পাঠ্য উপবৃত্ত দেখাতে পারে) |
কলআউট | ঐচ্ছিক | একটি প্রোমো, ইভেন্ট, বা রেসিপি আপডেট করার জন্য কলআউট, যদি উপলব্ধ থাকে। | বিনামূল্যে পাঠ্য প্রস্তাবিত পাঠ্যের আকার: 45 অক্ষরের নিচে (অত্যধিক দীর্ঘ পাঠ্য উপবৃত্ত দেখাতে পারে) |
শ্রেণী | ঐচ্ছিক | রেসিপি বিভাগ. | বিনামূল্যে পাঠ্য প্রস্তাবিত পাঠ্যের আকার: 45 অক্ষরের নিচে (অত্যধিক দীর্ঘ পাঠ্য উপবৃত্ত দেখাতে পারে) |
বর্ণনা | ঐচ্ছিক | রেসিপি একটি বিবরণ. | বিনামূল্যে পাঠ্য প্রস্তাবিত পাঠ্যের আকার: 90 অক্ষরের নিচে (অত্যধিক দীর্ঘ পাঠ্য উপবৃত্ত দেখাতে পারে) |
দ্রষ্টব্য: সমস্ত রেটিং আমাদের স্ট্যান্ডার্ড স্টার রেটিং সিস্টেম ব্যবহার করে প্রদর্শিত হয়। | |||
রেটিং - সর্বোচ্চ মান | ঐচ্ছিক | রেটিং স্কেলের সর্বোচ্চ মান। প্রদান করা আবশ্যক যদি রেটিং বর্তমান মান প্রদান করা হয়. | সংখ্যা >= 0.0 |
রেটিং - বর্তমান মান | ঐচ্ছিক | রেটিং স্কেলের বর্তমান মান। প্রদান করা আবশ্যক যদি রেটিং সর্বোচ্চ মান প্রদান করা হয়. | সংখ্যা >= 0.0 |
রেটিং - গণনা | ঐচ্ছিক | রেসিপি জন্য রেটিং গণনা. দ্রষ্টব্য: আপনার অ্যাপ ব্যবহারকারীদের কাছে এটি কীভাবে প্রদর্শিত হবে তা নিয়ন্ত্রণ করতে চাইলে এই ক্ষেত্রটি প্রদান করুন। ব্যবহারকারীর কাছে প্রদর্শিত হতে পারে এমন সংক্ষিপ্ত স্ট্রিং প্রদান করুন। উদাহরণস্বরূপ, যদি গণনা 1,000,000 হয়, তাহলে 1M-এর মতো সংক্ষিপ্ত রূপগুলি ব্যবহার করার কথা বিবেচনা করুন, যাতে ছোট ডিসপ্লে আকারে এটি কাটা না যায়৷ | স্ট্রিং |
রেটিং - গণনা মান | ঐচ্ছিক | রেসিপি জন্য রেটিং গণনা. দ্রষ্টব্য: আপনি যদি প্রদর্শন সংক্ষিপ্তকরণ যুক্তি নিজে পরিচালনা করতে না চান তবে এই ক্ষেত্রটি প্রদান করুন৷ গণনা এবং গণনা মান উভয়ই উপস্থিত থাকলে, আমরা ব্যবহারকারীদের কাছে প্রদর্শন করতে গণনা ব্যবহার করব | লম্বা |
FoodShoppingCart
বৈশিষ্ট্য | প্রয়োজনীয়তা | বর্ণনা | বিন্যাস |
---|---|---|---|
অ্যাকশন উরি | প্রয়োজন | অংশীদারের অ্যাপে শপিং কার্টের গভীর লিঙ্ক। দ্রষ্টব্য: আপনি অ্যাট্রিবিউশনের জন্য গভীর লিঙ্ক ব্যবহার করতে পারেন। এই FAQ পড়ুন | উরি |
আইটেম সংখ্যা | প্রয়োজন | শপিং কার্টে আইটেমের সংখ্যা (শুধু পণ্যের সংখ্যা নয়)। উদাহরণস্বরূপ: যদি কার্টে 3টি কমলা এবং 1টি আপেল থাকে তবে এই সংখ্যাটি 4 হওয়া উচিত। | পূর্ণসংখ্যা >= 1 |
শিরোনাম | ঐচ্ছিক | কার্টের শিরোনাম (উদাহরণস্বরূপ, আপনার কার্ট )। ডেভেলপার দ্বারা কোন শিরোনাম প্রদান করা না হলে, আপনার কার্টটি ডিফল্ট। | বিনামূল্যে পাঠ্য প্রস্তাবিত পাঠ্যের আকার: 25 অক্ষরের নিচে (অত্যধিক দীর্ঘ পাঠ্য উপবৃত্ত দেখাতে পারে) |
অ্যাকশন টেক্সট | ঐচ্ছিক | শপিং কার্টে বোতামের কল টু অ্যাকশন পাঠ্য (উদাহরণস্বরূপ, আপনার শপিং ব্যাগ )। ডেভেলপারের দ্বারা কোন অ্যাকশন টেক্সট প্রদান করা না হলে, ভিউ কার্ট ডিফল্ট। এই বৈশিষ্ট্যটি 1.1.0 এর পরের সংস্করণে সমর্থিত। | স্ট্রিং |
কার্ট ইমেজ | ঐচ্ছিক | কার্টে প্রতিটি পণ্যের ছবি। অগ্রাধিকার অনুযায়ী 10টি পর্যন্ত ছবি দেওয়া যেতে পারে; প্রদর্শিত চিত্রের প্রকৃত সংখ্যা ডিভাইস ফর্ম ফ্যাক্টরের উপর নির্ভর করে। | নির্দেশিকা জন্য ইমেজ স্পেসিফিকেশন দেখুন. |
আইটেম লেবেল | ঐচ্ছিক | কেনাকাটার তালিকায় থাকা আইটেমগুলির জন্য লেবেলের তালিকা৷ প্রদর্শিত লেবেলের প্রকৃত সংখ্যা ডিভাইস ফর্ম ফ্যাক্টরের উপর নির্ভর করে। | বিনামূল্যে পাঠ্য লেবেল তালিকা প্রস্তাবিত পাঠ্যের আকার: 20 অক্ষরের নিচে (অত্যধিক দীর্ঘ পাঠ্য উপবৃত্ত দেখাতে পারে) |
DisplayTimeWindow (ঐচ্ছিক) - একটি বিষয়বস্তুর পৃষ্ঠে দেখানোর জন্য একটি সময় উইন্ডো সেট করুন | |||
টাইমস্ট্যাম্প শুরু করুন | ঐচ্ছিক | যুগের টাইমস্ট্যাম্প যার পরে বিষয়বস্তু পৃষ্ঠে দেখানো উচিত। যদি সেট না করা হয়, তাহলে বিষয়বস্তু পৃষ্ঠে দেখানোর যোগ্য। | মিলিসেকেন্ডে যুগের টাইমস্ট্যাম্প |
শেষ টাইমস্ট্যাম্প | ঐচ্ছিক | যুগের টাইমস্ট্যাম্প যার পরে বিষয়বস্তু পৃষ্ঠে আর দেখানো হয় না। যদি সেট না করা হয়, তাহলে বিষয়বস্তু পৃষ্ঠে দেখানোর যোগ্য। | মিলিসেকেন্ডে যুগের টাইমস্ট্যাম্প |
FoodShoppingList
বৈশিষ্ট্য | প্রয়োজনীয়তা | বর্ণনা | বিন্যাস |
---|---|---|---|
অ্যাকশন উরি | প্রয়োজন | অংশীদারের অ্যাপে কেনাকাটার তালিকার গভীর লিঙ্ক। দ্রষ্টব্য: আপনি অ্যাট্রিবিউশনের জন্য গভীর লিঙ্ক ব্যবহার করতে পারেন। এই FAQ পড়ুন | উরি |
আইটেম সংখ্যা | প্রয়োজন | কেনাকাটার তালিকায় আইটেমের সংখ্যা। | পূর্ণসংখ্যা >= 1 |
শিরোনাম | ঐচ্ছিক | তালিকার শিরোনাম (উদাহরণস্বরূপ, আপনার মুদির তালিকা )। ডেভেলপার দ্বারা কোন শিরোনাম প্রদান করা না হলে, কেনাকাটার তালিকা ডিফল্ট। | বিনামূল্যে পাঠ্য প্রস্তাবিত পাঠ্যের আকার: 25 অক্ষরের নিচে (অত্যধিক দীর্ঘ পাঠ্য উপবৃত্ত দেখাতে পারে) |
আইটেম লেবেল | প্রয়োজন | কেনাকাটার তালিকায় থাকা আইটেমগুলির জন্য লেবেলের তালিকা৷ কমপক্ষে 1টি লেবেল প্রদান করা আবশ্যক এবং অগ্রাধিকারের ক্রমে 10টি পর্যন্ত লেবেল প্রদান করা যেতে পারে; প্রদর্শিত লেবেলের প্রকৃত সংখ্যা ডিভাইস ফর্ম ফ্যাক্টরের উপর নির্ভর করে। | বিনামূল্যে পাঠ্য লেবেল তালিকা প্রস্তাবিত পাঠ্যের আকার: 20 অক্ষরের নিচে (অত্যধিক দীর্ঘ পাঠ্য উপবৃত্ত দেখাতে পারে) |
FoodReorderCluster
বৈশিষ্ট্য | প্রয়োজনীয়তা | বর্ণনা | বিন্যাস |
---|---|---|---|
অ্যাকশন উরি | প্রয়োজন | অংশীদারের অ্যাপে পুনরায় অর্ডার করার গভীর লিঙ্ক। দ্রষ্টব্য: আপনি অ্যাট্রিবিউশনের জন্য গভীর লিঙ্ক ব্যবহার করতে পারেন। এই FAQ পড়ুন | উরি |
অ্যাকশন টেক্সট | ঐচ্ছিক | রি-অর্ডারের বোতামের কল টু অ্যাকশন টেক্সট (উদাহরণস্বরূপ, আবার অর্ডার করুন )। ডেভেলপারের দ্বারা কোন অ্যাকশন টেক্সট প্রদান করা না হলে, রি-অর্ডার ডিফল্ট। এই বৈশিষ্ট্যটি 1.1.0 এর পরের সংস্করণে সমর্থিত। | স্ট্রিং |
আইটেম সংখ্যা | প্রয়োজন | আগের অর্ডারে আইটেমের সংখ্যা (শুধু পণ্যের সংখ্যা নয়)। উদাহরণ স্বরূপ: আগের ক্রমটিতে যদি 3টি ছোট কফি এবং 1টি ক্রসেন্ট থাকে, তাহলে এই সংখ্যাটি 4 হওয়া উচিত৷ | পূর্ণসংখ্যা >= 1 |
শিরোনাম | প্রয়োজন | পুনঃক্রম আইটেমের শিরোনাম। | বিনামূল্যে পাঠ্য প্রস্তাবিত পাঠ্যের আকার: 40 অক্ষরের নিচে (অত্যধিক দীর্ঘ পাঠ্য উপবৃত্ত দেখাতে পারে) |
আইটেম লেবেল | ঐচ্ছিক (যদি প্রদান না করা হয়, পোস্টার ছবি প্রদান করা উচিত) | আগের অর্ডারের জন্য আইটেম লেবেলের তালিকা। অগ্রাধিকার অনুসারে 10টি লেবেল পর্যন্ত প্রদান করা যেতে পারে; প্রদর্শিত লেবেলের প্রকৃত সংখ্যা ডিভাইস ফর্ম ফ্যাক্টরের উপর নির্ভর করে। | বিনামূল্যে পাঠ্য তালিকা লেবেল প্রতি প্রস্তাবিত পাঠ্যের আকার: 20 অক্ষরের নিচে (অত্যধিক দীর্ঘ পাঠ্য উপবৃত্ত দেখাতে পারে) |
পোস্টার ছবি | ঐচ্ছিক (যদি প্রদান না করা হয়, আইটেম লেবেল প্রদান করা উচিত) | আগের ক্রম আইটেম ছবি. অগ্রাধিকার অনুযায়ী 10টি পর্যন্ত ছবি দেওয়া যেতে পারে; প্রদর্শিত চিত্রের প্রকৃত সংখ্যা ডিভাইস ফর্ম ফ্যাক্টরের উপর নির্ভর করে। | নির্দেশিকা জন্য ইমেজ স্পেসিফিকেশন দেখুন. |
ইমেজ স্পেসিফিকেশন
ইমেজ সম্পদের জন্য প্রয়োজনীয় স্পেসিফিকেশন নীচে তালিকাভুক্ত করা হয়েছে:
আকৃতির অনুপাত | ন্যূনতম পিক্সেল | প্রস্তাবিত পিক্সেল |
---|---|---|
বর্গক্ষেত্র (1x1) পছন্দের | 300x300 | 1200x1200 |
ল্যান্ডস্কেপ (1.91x1) | 600x314 | 1200x628 |
প্রতিকৃতি (4x5) | 480x600 | 960x1200 |
ফাইল ফরম্যাট
PNG, JPG, স্ট্যাটিক GIF, WebP
সর্বোচ্চ ফাইলের আকার
5120 KB
অতিরিক্ত সুপারিশ
- ছবি নিরাপদ এলাকা: ছবির 80% কেন্দ্রে আপনার গুরুত্বপূর্ণ বিষয়বস্তু রাখুন।
- একটি স্বচ্ছ ব্যাকগ্রাউন্ড ব্যবহার করুন যাতে ছবিটি ডার্ক এবং লাইট থিম সেটিংসে সঠিকভাবে প্রদর্শিত হতে পারে।
ধাপ 2: ক্লাস্টার ডেটা প্রদান করুন
এটি সুপারিশ করা হয় যে বিষয়বস্তু প্রকাশের কাজটি ব্যাকগ্রাউন্ডে (উদাহরণস্বরূপ, WorkManager ব্যবহার করে) কার্যকর করা এবং নিয়মিতভাবে বা একটি ইভেন্টের ভিত্তিতে নির্ধারিত করা (উদাহরণস্বরূপ, ব্যবহারকারী যখনই অ্যাপটি খোলে বা যখন ব্যবহারকারী শুধু কিছু যোগ করেন তাদের কার্ট)।
AppEngageFoodClient
খাদ্য ক্লাস্টার প্রকাশের জন্য দায়ী।
ক্লায়েন্টে ক্লাস্টার প্রকাশ করার জন্য নিম্নলিখিত API আছে:
-
isServiceAvailable
-
publishRecommendationClusters
-
publishFeaturedCluster
-
publishFoodShoppingCart
-
publishFoodShoppingList
-
publishReorderCluster
-
publishUserAccountManagementRequest
-
updatePublishStatus
-
deleteRecommendationsClusters
-
deleteFeaturedCluster
-
deleteFoodShoppingCartCluster
-
deleteFoodShoppingListCluster
-
deleteReorderCluster
-
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
এই API একটি তালিকা RecommendationCluster
অবজেক্ট প্রকাশ করতে ব্যবহৃত হয়।
একটি RecommendationCluster
অবজেক্টের নিম্নলিখিত বৈশিষ্ট্য থাকতে পারে:
বৈশিষ্ট্য | প্রয়োজনীয়তা | বর্ণনা |
---|---|---|
ProductEntity, StoreEntity বা RecipeEntity-এর তালিকা | প্রয়োজন | এই সুপারিশ ক্লাস্টারের জন্য সুপারিশগুলি তৈরি করে এমন সংস্থাগুলির একটি তালিকা৷ একটি একক ক্লাস্টারের সত্তা একই ধরনের হতে হবে। |
শিরোনাম | প্রয়োজন | সুপারিশ ক্লাস্টারের শিরোনাম (উদাহরণস্বরূপ, থ্যাঙ্কসগিভিং মেনুতে বড় সঞ্চয় )। প্রস্তাবিত পাঠ্যের আকার: 25 অক্ষরের নিচে (অত্যধিক দীর্ঘ পাঠ্য উপবৃত্ত দেখাতে পারে) |
সাবটাইটেল | ঐচ্ছিক | সুপারিশ ক্লাস্টার জন্য সাবটাইটেল. |
অ্যাকশন উরি | ঐচ্ছিক | অংশীদার অ্যাপের পৃষ্ঠার গভীর লিঙ্ক যেখানে ব্যবহারকারীরা সুপারিশের সম্পূর্ণ তালিকা দেখতে পাবেন। দ্রষ্টব্য: আপনি অ্যাট্রিবিউশনের জন্য গভীর লিঙ্ক ব্যবহার করতে পারেন। এই FAQ পড়ুন |
কোটলিন
client.publishRecommendationClusters( PublishRecommendationClustersRequest.Builder() .addRecommendationCluster( RecommendationCluster.Builder() .addEntity(entity1) .addEntity(entity2) .setTitle("Big savings on Thanksgiving menu") .build()) .build())
জাভা
client.publishRecommendationClusters( new PublishRecommendationClustersRequest.Builder() .addRecommendationCluster( new RecommendationCluster.Builder() .addEntity(entity1) .addEntity(entity2) .setTitle("Big savings on Thanksgiving menu") .build()) .build());
যখন পরিষেবাটি অনুরোধটি গ্রহণ করে, নিম্নলিখিত ক্রিয়াগুলি একটি লেনদেনের মধ্যে সঞ্চালিত হয়:
- সমস্ত বিদ্যমান সুপারিশ ক্লাস্টার ডেটা সরানো হয়েছে৷
- অনুরোধ থেকে ডেটা পার্স করা হয় এবং নতুন সুপারিশ ক্লাস্টারে সংরক্ষণ করা হয়।
একটি ত্রুটির ক্ষেত্রে, সম্পূর্ণ অনুরোধ প্রত্যাখ্যান করা হয় এবং বিদ্যমান অবস্থা বজায় রাখা হয়।
publishFeaturedCluster
এই API একটি FeaturedCluster
অবজেক্ট প্রকাশ করতে ব্যবহৃত হয়।
কোটলিন
client.publishFeaturedCluster( PublishFeaturedClusterRequest.Builder() .setFeaturedCluster( FeaturedCluster.Builder() ... .build()) .build())
জাভা
client.publishFeaturedCluster( new PublishFeaturedClusterRequest.Builder() .setFeaturedCluster( new FeaturedCluster.Builder() ... .build()) .build());
যখন পরিষেবাটি অনুরোধটি গ্রহণ করে, নিম্নলিখিত ক্রিয়াগুলি একটি লেনদেনের মধ্যে সঞ্চালিত হয়:
- বিকাশকারী অংশীদার থেকে বিদ্যমান
FeaturedCluster
ডেটা সরানো হয়েছে৷ - অনুরোধের ডেটা পার্স করা হয় এবং আপডেট করা বৈশিষ্ট্যযুক্ত ক্লাস্টারে সংরক্ষণ করা হয়।
একটি ত্রুটির ক্ষেত্রে, সম্পূর্ণ অনুরোধ প্রত্যাখ্যান করা হয় এবং বিদ্যমান অবস্থা বজায় রাখা হয়।
publishFoodShoppingCart
এই API একটি FoodShoppingCart
বস্তু প্রকাশ করতে ব্যবহার করা হয়.
কোটলিন
client.publishFoodShoppingCart( PublishFoodShoppingCartClusterRequest.Builder() .setShoppingCart( FoodShoppingCart.Builder() ... .build()) .build())
জাভা
client.publishFoodShoppingCart( new PublishFoodShoppingCartClusterRequest.Builder() .setShoppingCart( new FoodShoppingCart.Builder() ... .build()) .build());
যখন পরিষেবাটি অনুরোধটি গ্রহণ করে, নিম্নলিখিত ক্রিয়াগুলি একটি লেনদেনের মধ্যে সঞ্চালিত হয়:
- বিকাশকারী অংশীদার থেকে বিদ্যমান
FoodShoppingCart
ডেটা সরানো হয়েছে। - অনুরোধের ডেটা পার্স করা হয় এবং আপডেট করা শপিং কার্ট ক্লাস্টারে সংরক্ষণ করা হয়।
একটি ত্রুটির ক্ষেত্রে, সম্পূর্ণ অনুরোধ প্রত্যাখ্যান করা হয় এবং বিদ্যমান অবস্থা বজায় রাখা হয়।
publishFoodShoppingList
এই APIটি একটি FoodShoppingList
অবজেক্ট প্রকাশ করতে ব্যবহৃত হয়।
কোটলিন
client.publishFoodShoppingList( PublishFoodShoppingListRequest.Builder() .setFoodShoppingList( FoodShoppingListEntity.Builder() ... .build()) .build())
জাভা
client.publishFoodShoppingList( new PublishFoodShoppingListRequest.Builder() .setFoodShoppingList( new FoodShoppingListEntity.Builder() ... .build()) .build());
যখন পরিষেবাটি অনুরোধটি গ্রহণ করে, নিম্নলিখিত ক্রিয়াগুলি একটি লেনদেনের মধ্যে সঞ্চালিত হয়:
- বিকাশকারী অংশীদার থেকে বিদ্যমান
FoodShoppingList
ডেটা মুছে ফেলা হয়। - অনুরোধের ডেটা পার্স করা হয় এবং আপডেট করা শপিং লিস্ট ক্লাস্টারে সংরক্ষণ করা হয়।
একটি ত্রুটির ক্ষেত্রে, সম্পূর্ণ অনুরোধ প্রত্যাখ্যান করা হয় এবং বিদ্যমান অবস্থা বজায় রাখা হয়।
publishReorderCluster
এই APIটি একটি FoodReorderCluster
অবজেক্ট প্রকাশ করতে ব্যবহৃত হয়।
কোটলিন
client.publishReorderCluster( PublishReorderClusterRequest.Builder() .setReorderCluster( FoodReorderCluster.Builder() ... .build()) .build())
জাভা
client.publishReorderCluster( new PublishReorderClusterRequest.Builder() .setReorderCluster( new FoodReorderCluster.Builder() ... .build()) .build());
যখন পরিষেবাটি অনুরোধটি গ্রহণ করে, নিম্নলিখিত ক্রিয়াগুলি একটি লেনদেনের মধ্যে সঞ্চালিত হয়:
- বিকাশকারী অংশীদার থেকে বিদ্যমান
FoodReorderCluster
ডেটা সরানো হয়েছে। - অনুরোধ থেকে ডেটা পার্স করা হয় এবং আপডেট করা পুনঃক্রম ক্লাস্টারে সংরক্ষণ করা হয়।
একটি ত্রুটির ক্ষেত্রে, সম্পূর্ণ অনুরোধ প্রত্যাখ্যান করা হয় এবং বিদ্যমান অবস্থা বজায় রাখা হয়।
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();
যখন পরিষেবাটি অনুরোধ গ্রহণ করে, এটি বৈশিষ্ট্যযুক্ত ক্লাস্টার থেকে বিদ্যমান ডেটা সরিয়ে দেয়। একটি ত্রুটির ক্ষেত্রে, সম্পূর্ণ অনুরোধ প্রত্যাখ্যান করা হয় এবং বিদ্যমান অবস্থা বজায় রাখা হয়।
deleteFoodShoppingCartCluster
এই APIটি ফুড শপিং কার্ট ক্লাস্টারের বিষয়বস্তু মুছে ফেলার জন্য ব্যবহার করা হয়।
কোটলিন
client.deleteFoodShoppingCartCluster()
জাভা
client.deleteFoodShoppingCartCluster();
যখন পরিষেবাটি অনুরোধটি গ্রহণ করে, তখন এটি খাদ্য শপিং কার্ট ক্লাস্টার থেকে বিদ্যমান ডেটা সরিয়ে দেয়। একটি ত্রুটির ক্ষেত্রে, সম্পূর্ণ অনুরোধ প্রত্যাখ্যান করা হয় এবং বিদ্যমান অবস্থা বজায় রাখা হয়।
deleteFoodShoppingListCluster
এই APIটি ফুড শপিং লিস্ট ক্লাস্টারের বিষয়বস্তু মুছতে ব্যবহার করা হয়।
কোটলিন
client.deleteFoodShoppingListCluster()
জাভা
client.deleteFoodShoppingListCluster();
যখন পরিষেবাটি অনুরোধটি গ্রহণ করে, তখন এটি খাদ্য শপিং তালিকা ক্লাস্টার থেকে বিদ্যমান ডেটা সরিয়ে দেয়। একটি ত্রুটির ক্ষেত্রে, সম্পূর্ণ অনুরোধ প্রত্যাখ্যান করা হয় এবং বিদ্যমান অবস্থা বজায় রাখা হয়।
deleteReorderCluster
এই APIটি FoodReorderCluster-এর বিষয়বস্তু মুছে ফেলার জন্য ব্যবহার করা হয়।
কোটলিন
client.deleteReorderCluster()
জাভা
client.deleteReorderCluster();
যখন পরিষেবাটি অনুরোধটি পায়, তখন এটি পুনঃক্রম ক্লাস্টার থেকে বিদ্যমান ডেটা সরিয়ে দেয়। একটি ত্রুটির ক্ষেত্রে, সম্পূর্ণ অনুরোধ প্রত্যাখ্যান করা হয় এবং বিদ্যমান অবস্থা বজায় রাখা হয়।
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
হিসাবে ফেরত দেওয়া হয়েছে এবং কারণটি একটি ত্রুটি কোড হিসাবে অন্তর্ভুক্ত করা হয়েছে৷
ত্রুটি কোড | ত্রুটির নাম | দ্রষ্টব্য |
---|---|---|
1 | SERVICE_NOT_FOUND | প্রদত্ত ডিভাইসে পরিষেবাটি উপলব্ধ নয়৷ |
2 | SERVICE_NOT_AVAILABLE | পরিষেবাটি প্রদত্ত ডিভাইসে উপলব্ধ, কিন্তু কলের সময় এটি উপলব্ধ নয় (উদাহরণস্বরূপ, এটি স্পষ্টভাবে অক্ষম)৷ |
3 | SERVICE_CALL_EXECUTION_FAILURE | থ্রেডিং সমস্যার কারণে টাস্ক এক্সিকিউশন ব্যর্থ হয়েছে। এই ক্ষেত্রে, এটি পুনরায় চেষ্টা করা যেতে পারে। |
4 | SERVICE_CALL_PERMISSION_DENIED | কলকারীকে পরিষেবা কল করার অনুমতি নেই। |
5 | SERVICE_CALL_INVALID_ARGUMENT | অনুরোধে অবৈধ ডেটা রয়েছে (উদাহরণস্বরূপ, ক্লাস্টারের অনুমোদিত সংখ্যার চেয়ে বেশি)। |
6 | SERVICE_CALL_INTERNAL | পরিষেবার দিকে একটি ত্রুটি আছে. |
7 | 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 shopping cart cluster publish when PUBLISH_FOOD_SHOPPING_CART
// broadcast is received
// Trigger shopping list cluster publish when PUBLISH_FOOD_SHOPPING_LIST
// broadcast is received
// Trigger reorder cluster publish when PUBLISH_REORDER_CLUSTER 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 Shopping Cart Cluster Publish Intent
context.registerReceiver(new AppEngageBroadcastReceiver(),
new IntentFilter(com.google.android.engage.food.service.Intents.ACTION_PUBLISH_FOOD_SHOPPING_CART));
// Register Shopping List Cluster Publish Intent
context.registerReceiver(new AppEngageBroadcastReceiver(),
new IntentFilter(com.google.android.engage.food.service.Intents.ACTION_PUBLISH_FOOD_SHOPPING_LIST));
// Register Reorder Cluster Publish Intent
context.registerReceiver(new AppEngageBroadcastReceiver(),
new IntentFilter(com.google.android.engage.food.service.Intents.ACTION_PUBLISH_REORDER_CLUSTER));
}
- আপনার
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.food.PUBLISH_FOOD_SHOPPING_CART" />
</intent-filter>
<intent-filter>
<action android:name="com.google.android.engage.action.food.PUBLISH_FOOD_SHOPPING_LIST" />
</intent-filter>
<intent-filter>
<action android:name="com.google.android.engage.action.food.PUBLISH_REORDER_CLUSTER" />
</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.food.PUBLISH_FOOD_SHOPPING_CART
এই অভিপ্রায়টি পাওয়ার সময় একটিpublishFoodShoppingCart
কল শুরু করার পরামর্শ দেওয়া হয়৷ -
com.google.android.engage.action.food.PUBLISH_FOOD_SHOPPING_LIST
এই অভিপ্রায়টি পাওয়ার সময় একটিpublishFoodShoppingList
কল শুরু করার পরামর্শ দেওয়া হয়৷ -
com.google.android.engage.action.food.PUBLISH_REORDER_CLUSTER
এই অভিপ্রায়টি পাওয়ার সময় একটিpublishReorderCluster
কল শুরু করার পরামর্শ দেওয়া হয়৷
ইন্টিগ্রেশন ওয়ার্কফ্লো
আপনার ইন্টিগ্রেশন সম্পূর্ণ হওয়ার পরে যাচাই করার জন্য ধাপে ধাপে গাইডের জন্য, Engage ডেভেলপার ইন্টিগ্রেশন ওয়ার্কফ্লো দেখুন।
FAQs
প্রায়শই জিজ্ঞাসিত প্রশ্নগুলির জন্য Engage SDK দেখুন।
যোগাযোগ
ইন্টিগ্রেশন প্রক্রিয়া চলাকালীন কোনো প্রশ্ন থাকলে entering-developers@google.com- এ যোগাযোগ করুন। আমাদের দল যত তাড়াতাড়ি সম্ভব উত্তর দেবে।
পরবর্তী পদক্ষেপ
এই ইন্টিগ্রেশন সম্পন্ন করার পরে, আপনার পরবর্তী পদক্ষেপগুলি নিম্নরূপ:
- Enge-developers@google.com- এ একটি ইমেল পাঠান এবং আপনার সমন্বিত APK সংযুক্ত করুন যা Google দ্বারা পরীক্ষার জন্য প্রস্তুত৷
- ইন্টিগ্রেশন আশানুরূপ কাজ করছে তা নিশ্চিত করতে Google একটি যাচাইকরণ করবে এবং অভ্যন্তরীণভাবে পর্যালোচনা করবে। পরিবর্তনের প্রয়োজন হলে, Google যেকোনো প্রয়োজনীয় বিবরণের সাথে আপনার সাথে যোগাযোগ করবে।
- যখন পরীক্ষা সম্পূর্ণ হয় এবং কোন পরিবর্তনের প্রয়োজন হয় না, তখন Google আপনাকে অবহিত করার জন্য আপনার সাথে যোগাযোগ করবে যে আপনি প্লে স্টোরে আপডেট করা এবং সমন্বিত APK প্রকাশ করা শুরু করতে পারেন।
- Google আপনার আপডেট করা APK প্লে স্টোরে প্রকাশিত হয়েছে তা নিশ্চিত করার পরে, আপনার সুপারিশ , বৈশিষ্ট্যযুক্ত , শপিং কার্ট , শপিং তালিকা এবং পুনঃক্রম ক্লাস্টারগুলি প্রকাশ করা হবে এবং ব্যবহারকারীদের কাছে দৃশ্যমান হবে৷