Google একটি অন-ডিভাইস পৃষ্ঠ তৈরি করছে যা ব্যবহারকারীদের অ্যাপগুলিকে উল্লম্বভাবে সংগঠিত করে এবং ব্যক্তিগতকৃত অ্যাপ সামগ্রী ব্যবহার এবং আবিষ্কারের জন্য একটি নতুন নিমজ্জিত অভিজ্ঞতা সক্ষম করে৷ এই ফুলস্ক্রিন অভিজ্ঞতা ডেভেলপার অংশীদারদের তাদের অ্যাপের বাইরে একটি ডেডিকেটেড চ্যানেলে তাদের সেরা সমৃদ্ধ সামগ্রী প্রদর্শন করার সুযোগ দেয়।
এই নির্দেশিকাটিতে বিকাশকারী অংশীদারদের জন্য তাদের কেনাকাটার বিষয়বস্তু সংহত করার জন্য নির্দেশাবলী রয়েছে, এই নতুন পৃষ্ঠের এলাকা এবং বিনোদন স্থানের মতো বিদ্যমান Google সারফেস উভয়ই পূরণ করতে Engage SDK ব্যবহার করে৷
ইন্টিগ্রেশন বিস্তারিত
পরিভাষা
এই ইন্টিগ্রেশনে নিম্নলিখিত পাঁচটি ক্লাস্টার প্রকার রয়েছে: সুপারিশ , বৈশিষ্ট্যযুক্ত , শপিং কার্ট , শপিং তালিকা , পুনরায় সাজানো এবং শপিং অর্ডার ট্র্যাকিং ৷
প্রস্তাবনা ক্লাস্টারগুলি একজন স্বতন্ত্র বিকাশকারী অংশীদার থেকে ব্যক্তিগতকৃত কেনাকাটার পরামর্শগুলি দেখায়৷ এই সুপারিশগুলি ব্যবহারকারীর জন্য ব্যক্তিগতকৃত বা সাধারণীকরণ করা যেতে পারে (উদাহরণস্বরূপ, ট্রেন্ডিং আইটেম)। পণ্য, ইভেন্ট, বিক্রয়, প্রচার, সাবস্ক্রিপশনের জন্য এগুলো ব্যবহার করুন যেমন আপনি উপযুক্ত মনে করেন।
আপনার সুপারিশগুলি নিম্নলিখিত কাঠামো গ্রহণ করে:
সুপারিশ ক্লাস্টার: একটি UI ভিউ যাতে একই বিকাশকারী অংশীদারের কাছ থেকে সুপারিশের একটি গোষ্ঠী রয়েছে৷
ShoppingEntity: একটি বস্তু একটি ক্লাস্টারে একটি একক আইটেমের প্রতিনিধিত্ব করে।
বৈশিষ্ট্যযুক্ত ক্লাস্টারটি একটি UI গ্রুপিংয়ে একাধিক বিকাশকারী অংশীদারদের থেকে সত্তার একটি নির্বাচন প্রদর্শন করে৷ একটি একক বৈশিষ্ট্যযুক্ত ক্লাস্টার থাকবে, যা সমস্ত সুপারিশ ক্লাস্টারের উপরে একটি অগ্রাধিকার প্লেসমেন্ট সহ UI এর শীর্ষের কাছে প্রদর্শিত হবে৷ প্রতিটি বিকাশকারী অংশীদারকে বৈশিষ্ট্যযুক্ত ক্লাস্টারে 10টি পর্যন্ত সম্প্রচার করার অনুমতি দেওয়া হবে।
শপিং কার্ট ক্লাস্টার একটি UI গ্রুপিং-এ অনেক ডেভেলপার অংশীদারের কাছ থেকে শপিং কার্টগুলির এক ঝলক দেখায়, ব্যবহারকারীদের তাদের অসামান্য কার্টগুলি সম্পূর্ণ করতে ধাক্কা দেয়৷ একটি একক শপিং কার্ট ক্লাস্টার রয়েছে, যা UI-এর শীর্ষের কাছে প্রদর্শিত হয়েছে, সমস্ত সুপারিশ ক্লাস্টারের উপরে একটি অগ্রাধিকার স্থান নির্ধারণ করা হয়েছে৷ প্রতিটি বিকাশকারী অংশীদারকে শপিং কার্ট ক্লাস্টারে 3টি পর্যন্ত
ShoppingCart
দৃষ্টান্ত সম্প্রচার করার অনুমতি দেওয়া হয়।আপনার শপিং কার্ট নিম্নলিখিত কাঠামো নেয়:
শপিং কার্ট ক্লাস্টার: একটি UI ভিউ যাতে অনেক ডেভেলপার অংশীদারদের কাছ থেকে শপিং কার্টের প্রিভিউ রয়েছে।
শপিংকার্ট: শপিং কার্ট ক্লাস্টারে প্রদর্শন করা একটি একক বিকাশকারী অংশীদারের জন্য শপিং কার্টের পূর্বরূপ প্রতিনিধিত্ব করে এমন একটি বস্তু৷
ShoppingCart
অবশ্যই কার্টে থাকা আইটেমের মোট সংখ্যা দেখাতে হবে এবং ব্যবহারকারীর কার্টে থাকা কিছু আইটেমের ছবিও অন্তর্ভুক্ত থাকতে পারে।
শপিং লিস্ট ক্লাস্টারটি একটি UI গ্রুপিং-এ একাধিক বিকাশকারী অংশীদারদের কাছ থেকে কেনাকাটার তালিকার এক ঝলক দেখায়, ব্যবহারকারীদের তাদের তালিকা আপডেট করতে এবং সম্পূর্ণ করতে সংশ্লিষ্ট অ্যাপে ফিরে যেতে অনুরোধ করে। একটি একক শপিং তালিকা ক্লাস্টার আছে।
পুনঃক্রম ক্লাস্টারটি একটি UI গ্রুপিং-এ একাধিক বিকাশকারী অংশীদারদের থেকে পূর্ববর্তী অর্ডারগুলির একটি ঝলক দেখায়, ব্যবহারকারীদের পুনরায় অর্ডার করতে প্ররোচিত করে৷ একটি একক পুনর্বিন্যাস ক্লাস্টার আছে।
পুনঃক্রম ক্লাস্টারে অবশ্যই ব্যবহারকারীর আগের অর্ডারে আইটেমের মোট সংখ্যা দেখাতে হবে এবং নিম্নলিখিতগুলির মধ্যে একটি অবশ্যই অন্তর্ভুক্ত করতে হবে:
- ব্যবহারকারীর পূর্ববর্তী ক্রমে X আইটেমের জন্য ছবি।
- ব্যবহারকারীর আগের ক্রমে X আইটেমগুলির জন্য লেবেল৷
শপিং অর্ডার ট্র্যাকিং ক্লাস্টারটি একটি UI গ্রুপিংয়ে অনেক ডেভেলপার অংশীদারের কাছ থেকে মুলতুবি থাকা বা সম্প্রতি সম্পন্ন হওয়া শপিং অর্ডারগুলির একটি ঝলক দেখায়, যা ব্যবহারকারীদের তাদের অর্ডারগুলি ট্র্যাক করতে দেয়৷
একটি একক ShoppingOrderTracking ক্লাস্টার রয়েছে যা UI-এর শীর্ষের কাছে প্রদর্শিত হয়েছে, সমস্ত সুপারিশ ক্লাস্টারের উপরে একটি অগ্রাধিকার স্থান নির্ধারণ করা হয়েছে৷ প্রতিটি বিকাশকারী অংশীদারকে শপিং অর্ডার ট্র্যাকিং ক্লাস্টারে একাধিক ShoppingOrderTrackingEntity আইটেম সম্প্রচার করার অনুমতি দেওয়া হয়।
আপনার ShoppingOrderTrackingCluster নিম্নলিখিত কাঠামো নেয়:
- শপিংঅর্ডারট্র্যাকিং ক্লাস্টার : একটি UI ভিউ যাতে অনেক ডেভেলপার অংশীদারের অর্ডার ট্র্যাকিং প্রিভিউগুলির একটি গ্রুপ থাকে
- ShoppingOrderTrackingEntity : শপিং অর্ডার ট্র্যাকিং ক্লাস্টারে প্রদর্শন করা একক বিকাশকারী অংশীদারের জন্য একটি শপিং অর্ডার ট্র্যাকিং প্রিভিউ প্রতিনিধিত্ব করে এমন একটি বস্তু৷ ShoppingOrderTrackingEntity অবশ্যই অর্ডারের অবস্থা এবং অর্ডারের সময় দেখাতে হবে। ShoppingOrderTrackingEntity-এর জন্য প্রত্যাশিত ডেলিভারি সময় পূরণ করার জন্য আমরা দৃঢ়ভাবে সুপারিশ করি, কারণ এটি প্রদান করা হলে ব্যবহারকারীদের কাছে প্রদর্শিত হয়।
প্রাক কাজ
ন্যূনতম 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'
}
আরও তথ্যের জন্য, Android 11-এ প্যাকেজ দৃশ্যমানতা দেখুন।
সারাংশ
নকশা একটি আবদ্ধ সেবা বাস্তবায়ন উপর ভিত্তি করে.
একটি ক্লায়েন্ট যে ডেটা প্রকাশ করতে পারে তা বিভিন্ন ক্লাস্টার প্রকারের জন্য নিম্নলিখিত সীমার সাপেক্ষে:
ক্লাস্টার টাইপ | ক্লাস্টার সীমা | একটি ক্লাস্টারে সত্তার সর্বোচ্চ সীমা |
---|---|---|
সুপারিশ ক্লাস্টার(গুলি) | সর্বাধিক 5 | সর্বাধিক 25টি ShoppingEntity |
বৈশিষ্ট্যযুক্ত ক্লাস্টার | সর্বোচ্চ 1 | সর্বাধিক 10টি ShoppingEntity |
শপিং কার্ট ক্লাস্টার | সর্বোচ্চ 1 | সর্বোচ্চ ৩টি ShoppingCart একাধিক কার্ট শুধুমাত্র প্রতি বণিক পৃথক কার্ট সহ অ্যাপের জন্য প্রত্যাশিত৷ |
শপিং লিস্ট ক্লাস্টার | সর্বোচ্চ 1 | সর্বাধিক 1টি ShoppingListEntity |
কেনাকাটা পুনর্বিন্যাস ক্লাস্টার | সর্বোচ্চ 1 | সর্বোচ্চ ১টি ReorderEntity |
শপিং অর্ডার ট্র্যাকিং ক্লাস্টার | সর্বাধিক 3 | সর্বাধিক 3টি ShoppingOrderTrackingEntity |
ধাপ 1: সত্তা তথ্য প্রদান
প্রতিটি আইটেমের প্রকারের প্রতিনিধিত্ব করার জন্য SDK বিভিন্ন সত্তাকে সংজ্ঞায়িত করেছে। নিম্নলিখিত সংস্থাগুলি কেনাকাটা বিভাগের জন্য সমর্থিত:
-
ShoppingEntity
-
ShoppingCart
-
ShoppingList
-
Reorder
-
ShoppingOrderTracking
নীচের চার্টগুলি প্রতিটি ধরণের জন্য উপলব্ধ বৈশিষ্ট্য এবং প্রয়োজনীয়তার রূপরেখা দেয়।
ShoppingEntity
ShoppingEntity
অবজেক্ট এমন একটি পণ্য, প্রচার, চুক্তি, সদস্যতা বা ইভেন্টের প্রতিনিধিত্ব করে যা বিকাশকারী অংশীদাররা প্রকাশ করতে চায়।
ShoppingEntity
বৈশিষ্ট্য | প্রয়োজনীয়তা | বর্ণনা | বিন্যাস |
---|---|---|---|
পোস্টার ছবি | প্রয়োজন | অন্তত একটি ছবি প্রদান করা আবশ্যক. | নির্দেশিকা জন্য ইমেজ স্পেসিফিকেশন দেখুন. |
অ্যাকশন উরি | প্রয়োজন | অ্যাপের পৃষ্ঠার গভীর লিঙ্কটি সত্তা সম্পর্কে বিশদ বিবরণ প্রদর্শন করে। দ্রষ্টব্য: আপনি অ্যাট্রিবিউশনের জন্য গভীর লিঙ্ক ব্যবহার করতে পারেন। এই FAQ পড়ুন | উরি |
শিরোনাম | ঐচ্ছিক | সত্তার নাম। | বিনামূল্যে পাঠ্য প্রস্তাবিত পাঠ্যের আকার: 90 অক্ষরের নিচে (অত্যধিক দীর্ঘ পাঠ্য উপবৃত্ত দেখাতে পারে) |
মূল্য - বর্তমান | শর্তসাপেক্ষে প্রয়োজন | সত্তার বর্তমান মূল্য। স্ট্রাইকথ্রু মূল্য প্রদান করা হলে অবশ্যই প্রদান করতে হবে। | বিনামূল্যে পাঠ্য |
মূল্য - স্ট্রাইকথ্রু | ঐচ্ছিক | সত্তার আসল মূল্য, যা UI-তে স্ট্রাক-থ্রু করা হয়। | বিনামূল্যে পাঠ্য |
কলআউট | ঐচ্ছিক | যদি উপলব্ধ থাকে তবে সত্তার জন্য একটি প্রচার, ইভেন্ট বা আপডেটের জন্য কলআউট করুন। | বিনামূল্যে পাঠ্য প্রস্তাবিত পাঠ্যের আকার: 45 অক্ষরের নিচে (অত্যধিক দীর্ঘ পাঠ্য উপবৃত্ত দেখাতে পারে) |
কলআউট সূক্ষ্ম মুদ্রণ | ঐচ্ছিক | কলআউটের জন্য সূক্ষ্ম মুদ্রণ পাঠ্য। | বিনামূল্যে পাঠ্য প্রস্তাবিত পাঠ্যের আকার: 45 অক্ষরের নিচে (অত্যধিক দীর্ঘ পাঠ্য উপবৃত্ত দেখাতে পারে) |
রেটিং (ঐচ্ছিক) - দ্রষ্টব্য: সমস্ত রেটিং আমাদের স্ট্যান্ডার্ড স্টার রেটিং সিস্টেম ব্যবহার করে প্রদর্শিত হয়। | |||
রেটিং - সর্বোচ্চ মান | ঐচ্ছিক | রেটিং স্কেলের সর্বোচ্চ মান। প্রদান করা আবশ্যক যদি রেটিং বর্তমান মান প্রদান করা হয়. | সংখ্যা >= 0.0 |
রেটিং - বর্তমান মান | ঐচ্ছিক | রেটিং স্কেলের বর্তমান মান। প্রদান করা আবশ্যক যদি রেটিং সর্বোচ্চ মান প্রদান করা হয়. | সংখ্যা >= 0.0 |
রেটিং - গণনা | ঐচ্ছিক | সত্তার জন্য রেটিং গণনা. দ্রষ্টব্য: এই ক্ষেত্রটি প্রদান করুন যদি আপনার অ্যাপ ব্যবহারকারীদের কাছে গণনা কীভাবে প্রদর্শিত হয় তা নিয়ন্ত্রণ করে। একটি সংক্ষিপ্ত স্ট্রিং ব্যবহার করুন. উদাহরণস্বরূপ, যদি গণনা 1,000,000 হয়, তাহলে 1M-এর মতো একটি সংক্ষিপ্ত রূপ ব্যবহার করার কথা বিবেচনা করুন যাতে ছোট ডিসপ্লে আকারে গণনাটি কাটা না যায়। | স্ট্রিং |
রেটিং - গণনা মান | ঐচ্ছিক | সত্তার জন্য রেটিং গণনা. দ্রষ্টব্য: আপনি যদি প্রদর্শনের সংক্ষিপ্তকরণের যুক্তি নিজে না পরিচালনা করেন তবে এই ক্ষেত্রটি প্রদান করুন। গণনা এবং গণনা মান উভয়ই উপস্থিত থাকলে, ব্যবহারকারীদের কাছে গণনা প্রদর্শিত হয়। | লম্বা |
DisplayTimeWindow (ঐচ্ছিক) - একটি বিষয়বস্তুর পৃষ্ঠে দেখানোর জন্য একটি সময় উইন্ডো সেট করুন | |||
টাইমস্ট্যাম্প শুরু করুন | ঐচ্ছিক | যুগের টাইমস্ট্যাম্প যার পরে বিষয়বস্তু পৃষ্ঠে দেখানো উচিত। যদি সেট না করা হয়, তাহলে বিষয়বস্তু পৃষ্ঠে দেখানোর যোগ্য। | মিলিসেকেন্ডে যুগের টাইমস্ট্যাম্প |
শেষ টাইমস্ট্যাম্প | ঐচ্ছিক | যুগের টাইমস্ট্যাম্প যার পরে বিষয়বস্তু পৃষ্ঠে আর দেখানো হয় না। যদি সেট না করা হয়, তাহলে বিষয়বস্তু পৃষ্ঠে দেখানোর যোগ্য। | মিলিসেকেন্ডে যুগের টাইমস্ট্যাম্প |
ShoppingCart
বৈশিষ্ট্য | প্রয়োজনীয়তা | বর্ণনা | বিন্যাস |
---|---|---|---|
অ্যাকশন উরি | প্রয়োজন | অংশীদারের অ্যাপে শপিং কার্টের গভীর লিঙ্ক। দ্রষ্টব্য: আপনি অ্যাট্রিবিউশনের জন্য গভীর লিঙ্ক ব্যবহার করতে পারেন। এই FAQ পড়ুন | উরি |
আইটেম সংখ্যা | প্রয়োজন | শপিং কার্টে আইটেমের সংখ্যা (শুধু পণ্যের সংখ্যা নয়)। উদাহরণস্বরূপ: যদি কার্টে 3টি অভিন্ন শার্ট এবং 1টি টুপি থাকে তবে এই সংখ্যাটি 4 হতে হবে৷ | পূর্ণসংখ্যা >= 1 |
অ্যাকশন টেক্সট | ঐচ্ছিক | শপিং কার্টে বোতামের কল টু অ্যাকশন পাঠ্য (উদাহরণস্বরূপ, আপনার শপিং ব্যাগ )। ডেভেলপারের দ্বারা কোন অ্যাকশন টেক্সট প্রদান করা না হলে, ভিউ কার্ট ডিফল্ট। এই বৈশিষ্ট্যটি 1.1.0 এর পরের সংস্করণে সমর্থিত। | স্ট্রিং |
শিরোনাম | ঐচ্ছিক | কার্টের শিরোনাম (উদাহরণস্বরূপ, আপনার শপিং ব্যাগ )। ডেভেলপার দ্বারা কোন শিরোনাম প্রদান করা না হলে, আপনার কার্টটি ডিফল্ট। যদি বিকাশকারী অংশীদার প্রতি বণিকের জন্য একটি পৃথক কার্ট প্রকাশ করে, অনুগ্রহ করে শিরোনামে বণিকের নাম অন্তর্ভুক্ত করুন৷ | বিনামূল্যে পাঠ্য প্রস্তাবিত পাঠ্যের আকার: 25 অক্ষরের নিচে (অত্যধিক দীর্ঘ পাঠ্য উপবৃত্ত দেখাতে পারে) |
কার্ট ইমেজ | ঐচ্ছিক | কার্টে প্রতিটি পণ্যের ছবি। অগ্রাধিকার অনুযায়ী 10টি পর্যন্ত ছবি দেওয়া যেতে পারে; প্রদর্শিত চিত্রের প্রকৃত সংখ্যা ডিভাইস ফর্ম ফ্যাক্টরের উপর নির্ভর করে। | নির্দেশিকা জন্য ইমেজ স্পেসিফিকেশন দেখুন. |
আইটেম লেবেল | ঐচ্ছিক | কেনাকাটার তালিকায় থাকা আইটেমগুলির জন্য লেবেলের তালিকা৷ প্রদর্শিত লেবেলের প্রকৃত সংখ্যা ডিভাইস ফর্ম ফ্যাক্টরের উপর নির্ভর করে। | বিনামূল্যে পাঠ্য লেবেল তালিকা প্রস্তাবিত পাঠ্যের আকার: 20 অক্ষরের নিচে (অত্যধিক দীর্ঘ পাঠ্য উপবৃত্ত দেখাতে পারে) |
শেষ ব্যবহারকারী ইন্টারঅ্যাকশন টাইমস্ট্যাম্প | ঐচ্ছিক | যুগ থেকে অতিবাহিত মিলিসেকেন্ডের সংখ্যা, ব্যবহারকারী কার্টের সাথে ইন্টারঅ্যাক্ট করার শেষ সময় চিহ্নিত করে। এটি বিকাশকারী অংশীদাররা প্রতি বণিকের জন্য পৃথক কার্ট প্রকাশ করে ইনপুট হিসাবে পাস করবে এবং র্যাঙ্কিংয়ের জন্য ব্যবহার করা যেতে পারে। | মিলিসেকেন্ডে যুগের টাইমস্ট্যাম্প |
DisplayTimeWindow (ঐচ্ছিক) - একটি বিষয়বস্তুর পৃষ্ঠে দেখানোর জন্য একটি সময় উইন্ডো সেট করুন | |||
টাইমস্ট্যাম্প শুরু করুন | ঐচ্ছিক | যুগের টাইমস্ট্যাম্প যার পরে বিষয়বস্তু পৃষ্ঠে দেখানো উচিত। যদি সেট না করা হয়, তাহলে বিষয়বস্তু পৃষ্ঠে দেখানোর যোগ্য। | মিলিসেকেন্ডে যুগের টাইমস্ট্যাম্প |
শেষ টাইমস্ট্যাম্প | ঐচ্ছিক | যুগের টাইমস্ট্যাম্প যার পরে বিষয়বস্তু পৃষ্ঠে আর দেখানো হয় না। যদি সেট না করা হয়, তাহলে বিষয়বস্তু পৃষ্ঠে দেখানোর যোগ্য। | মিলিসেকেন্ডে যুগের টাইমস্ট্যাম্প |
ShoppingList
বৈশিষ্ট্য | প্রয়োজনীয়তা | বর্ণনা | বিন্যাস |
---|---|---|---|
অ্যাকশন উরি | প্রয়োজন | অংশীদারের অ্যাপে কেনাকাটার তালিকার গভীর লিঙ্ক। দ্রষ্টব্য: আপনি অ্যাট্রিবিউশনের জন্য গভীর লিঙ্ক ব্যবহার করতে পারেন। এই FAQ পড়ুন | উরি |
আইটেম সংখ্যা | প্রয়োজন | কেনাকাটার তালিকায় আইটেমের সংখ্যা। | পূর্ণসংখ্যা >= 1 |
শিরোনাম | ঐচ্ছিক | তালিকার শিরোনাম (উদাহরণস্বরূপ, আপনার মুদির তালিকা )। ডেভেলপার দ্বারা কোন শিরোনাম প্রদান করা না হলে, কেনাকাটার তালিকাটি ডিফল্ট। | বিনামূল্যে পাঠ্য প্রস্তাবিত পাঠ্যের আকার: 25 অক্ষরের নিচে (অত্যধিক দীর্ঘ পাঠ্য উপবৃত্ত দেখাতে পারে) |
আইটেম লেবেল | প্রয়োজন | কেনাকাটার তালিকায় থাকা আইটেমগুলির জন্য লেবেলের তালিকা৷ কমপক্ষে 1টি লেবেল প্রদান করা আবশ্যক এবং অগ্রাধিকারের ক্রমে 10টি পর্যন্ত লেবেল প্রদান করা যেতে পারে; প্রদর্শিত লেবেলের প্রকৃত সংখ্যা ডিভাইস ফর্ম ফ্যাক্টরের উপর নির্ভর করে। | বিনামূল্যে পাঠ্য লেবেল তালিকা প্রস্তাবিত পাঠ্যের আকার: 20 অক্ষরের নিচে (অত্যধিক দীর্ঘ পাঠ্য উপবৃত্ত দেখাতে পারে) |
ShoppingReorderCluster
বৈশিষ্ট্য | প্রয়োজনীয়তা | বর্ণনা | বিন্যাস |
---|---|---|---|
অ্যাকশন উরি | প্রয়োজন | অংশীদারের অ্যাপে পুনরায় অর্ডার করার গভীর লিঙ্ক। দ্রষ্টব্য: আপনি অ্যাট্রিবিউশনের জন্য গভীর লিঙ্ক ব্যবহার করতে পারেন। এই FAQ পড়ুন | উরি |
অ্যাকশন টেক্সট | ঐচ্ছিক | রি-অর্ডারের বোতামের কল টু অ্যাকশন টেক্সট (উদাহরণস্বরূপ, আবার অর্ডার করুন )। ডেভেলপারের দ্বারা কোন অ্যাকশন টেক্সট প্রদান করা না হলে, রি-অর্ডার ডিফল্ট। এই বৈশিষ্ট্যটি 1.1.0 এর পরের সংস্করণে সমর্থিত। | স্ট্রিং |
আইটেম সংখ্যা | প্রয়োজন | আগের অর্ডারে আইটেমের সংখ্যা (শুধু পণ্যের সংখ্যা নয়)। উদাহরণ স্বরূপ: আগের ক্রমটিতে যদি 3টি ছোট কফি এবং 1টি ক্রসেন্ট থাকে, তাহলে এই সংখ্যাটি 4 হওয়া উচিত৷ | পূর্ণসংখ্যা >= 1 |
শিরোনাম | প্রয়োজন | পুনঃক্রম আইটেমের শিরোনাম। | বিনামূল্যে পাঠ্য প্রস্তাবিত পাঠ্যের আকার: 40 অক্ষরের নিচে (অত্যধিক দীর্ঘ পাঠ্য উপবৃত্ত দেখাতে পারে) |
আইটেম লেবেল | ঐচ্ছিক (যদি প্রদান না করা হয়, পোস্টার ছবি প্রদান করা উচিত) | আগের অর্ডারের জন্য আইটেম লেবেলের তালিকা। অগ্রাধিকার অনুসারে 10টি লেবেল পর্যন্ত প্রদান করা যেতে পারে; প্রদর্শিত লেবেলের প্রকৃত সংখ্যা ডিভাইস ফর্ম ফ্যাক্টরের উপর নির্ভর করে। | বিনামূল্যে পাঠ্য তালিকা লেবেল প্রতি প্রস্তাবিত পাঠ্যের আকার: 20 অক্ষরের নিচে (অত্যধিক দীর্ঘ পাঠ্য উপবৃত্ত দেখাতে পারে) |
পোস্টার ছবি | ঐচ্ছিক (যদি প্রদান না করা হয়, আইটেম লেবেল প্রদান করা উচিত) | আগের ক্রম আইটেম ছবি. অগ্রাধিকার অনুযায়ী 10টি পর্যন্ত ছবি দেওয়া যেতে পারে; প্রদর্শিত চিত্রের প্রকৃত সংখ্যা ডিভাইস ফর্ম ফ্যাক্টরের উপর নির্ভর করে। | নির্দেশিকা জন্য ইমেজ স্পেসিফিকেশন দেখুন. |
ShoppingOrderTrackingCluster
বৈশিষ্ট্য | প্রয়োজনীয়তা | বর্ণনা | বিন্যাস |
---|---|---|---|
শিরোনাম | প্রয়োজন | ট্র্যাক করা প্যাকেজ/আইটেমগুলির একটি সংক্ষিপ্ত শিরোনাম বা ট্র্যাকিং নম্বর৷ | বিনামূল্যে পাঠ্য প্রস্তাবিত পাঠ্যের আকার: 50টি অক্ষর (যে পাঠ্যটি খুব লম্বা তা উপবৃত্ত দেখাবে) |
অর্ডারের ধরন | প্রয়োজন | ট্র্যাক করা প্যাকেজ/আইটেমগুলির একটি সংক্ষিপ্ত শিরোনাম বা ট্র্যাকিং নম্বর৷ | Enum: IN_STORE_PICKUP, SAME_DAY_DELIVERY, MULTI_DAY_DELIVERY |
স্ট্যাটাস | প্রয়োজন | অর্ডারের বর্তমান অবস্থা। যেমন: "দেরিতে চলছে", "ট্রানজিটে", "বিলম্বিত", "শিপড", "ডেলিভার হয়েছে", "স্টক শেষ", "অর্ডার প্রস্তুত" | বিনামূল্যে পাঠ্য প্রস্তাবিত পাঠ্যের আকার: 25টি অক্ষর (যে পাঠ্যটি খুব লম্বা তা উপবৃত্ত দেখাবে) |
অর্ডার করার সময় | প্রয়োজন | মিলিসেকেন্ডে যুগের টাইমস্ট্যাম্প যেখানে অর্ডার দেওয়া হয়েছিল৷ প্রত্যাশিত ডেলিভারি সময় উইন্ডো উপস্থিত না থাকলে অর্ডার সময় প্রদর্শিত হবে | মিলিসেকেন্ডে যুগের টাইমস্ট্যাম্প |
অ্যাকশন উরি | প্রয়োজন | অংশীদারের অ্যাপে অর্ডার ট্র্যাকিংয়ের গভীর লিঙ্ক। | উরি |
OrderDeliveryTimeWindow (ঐচ্ছিক) - অর্ডার দেওয়ার সময় থেকে প্রত্যাশিত/প্রকৃত ডেলিভারির সময় পর্যন্ত ট্র্যাক করা অর্ডারের জন্য একটি সময় উইন্ডো সেট করুন। | |||
অর্ডার ডেলিভারিটাইম উইন্ডো - শুরুর সময় | ঐচ্ছিক | মিলিসেকেন্ডে যুগের টাইমস্ট্যাম্প যা পরে/যার পরে অর্ডার বিতরণ করা হবে বা পিকআপের জন্য প্রস্তুত হবে। | মিলিসেকেন্ডে যুগের টাইমস্ট্যাম্প |
অর্ডার ডেলিভারি টাইম উইন্ডো - শেষ সময় | ঐচ্ছিক | ইপক টাইমস্ট্যাম্প মিলিসেকেন্ডে/যার আগে অর্ডার ডেলিভারি করা হবে বা পিকআপের জন্য প্রস্তুত থাকবে। | মিলিসেকেন্ডে যুগের টাইমস্ট্যাম্প |
পোস্টার ছবি | ঐচ্ছিক | অর্ডারের অংশ এমন একটি আইটেম/পণ্যের ছবি। প্রস্তাবিত আকৃতির অনুপাত হল 1:1৷ | নির্দেশিকা জন্য ইমেজ স্পেসিফিকেশন দেখুন. |
আইটেম সংখ্যা | ঐচ্ছিক | অর্ডার আইটেম সংখ্যা. | পূর্ণসংখ্যা >= 1 |
বর্ণনা | ঐচ্ছিক | ক্রম অনুসারে আইটেমগুলি বর্ণনা করার জন্য পাঠ্যের একটি একক অনুচ্ছেদ৷ দ্রষ্টব্য: হয় বর্ণনা বা সাবটাইটেল তালিকা ব্যবহারকারীর কাছে প্রদর্শিত হবে, উভয়ই নয়। | বিনামূল্যে পাঠ্য প্রস্তাবিত পাঠ্য আকার: 180 অক্ষর |
সাবটাইটেল তালিকা | ঐচ্ছিক | 3টি পর্যন্ত সাবটাইটেল, প্রতিটি সাবটাইটেলের সাথে পাঠ্যের একটি লাইন। দ্রষ্টব্য: হয় বর্ণনা বা সাবটাইটেল তালিকা ব্যবহারকারীর কাছে প্রদর্শিত হবে, উভয়ই নয়। | বিনামূল্যে পাঠ্য প্রতিটি সাবটাইটেলের জন্য প্রস্তাবিত পাঠ্য আকার: সর্বাধিক 50 অক্ষর |
অর্ডার মান - বর্তমান মূল্য | ঐচ্ছিক | অর্ডারের বর্তমান মান। | বিনামূল্যে পাঠ্য |
অর্ডার নম্বর | ঐচ্ছিক | অর্ডার নম্বর/আইডি যা অর্ডারটিকে স্বতন্ত্রভাবে সনাক্ত করতে ব্যবহার করা যেতে পারে। | বিনামূল্যে পাঠ্য প্রস্তাবিত পাঠ্য আকার: সর্বাধিক 25 অক্ষর |
ট্র্যাকিং নম্বর | ঐচ্ছিক | অর্ডারের ডেলিভারির প্রয়োজন হলে অর্ডার/পার্সেল ডেলিভারির জন্য ট্র্যাকিং নম্বর। | বিনামূল্যে পাঠ্য প্রস্তাবিত পাঠ্য আকার: সর্বাধিক 25 অক্ষর |
ইমেজ স্পেসিফিকেশন
ইমেজ সম্পদের জন্য প্রয়োজনীয় স্পেসিফিকেশন নীচে তালিকাভুক্ত করা হয়েছে:
আকৃতির অনুপাত | ন্যূনতম পিক্সেল | প্রস্তাবিত পিক্সেল |
---|---|---|
বর্গক্ষেত্র (1x1) অ-বৈশিষ্ট্যযুক্ত ক্লাস্টারগুলির জন্য পছন্দের৷ | 300x300 | 1200x1200 |
ল্যান্ডস্কেপ (1.91x1) বৈশিষ্ট্যযুক্ত ক্লাস্টার জন্য পছন্দ | 600x314 | 1200x628 |
প্রতিকৃতি (4x5) | 480x600 | 960x1200 |
ফাইল ফরম্যাট
PNG, JPG, স্ট্যাটিক GIF, WebP
সর্বোচ্চ ফাইলের আকার
5120 KB
অতিরিক্ত সুপারিশ
- ছবি নিরাপদ এলাকা: ছবির 80% কেন্দ্রে আপনার গুরুত্বপূর্ণ বিষয়বস্তু রাখুন।
- একটি স্বচ্ছ ব্যাকগ্রাউন্ড ব্যবহার করুন যাতে ছবিটি ডার্ক এবং লাইট থিম সেটিংসে সঠিকভাবে প্রদর্শিত হতে পারে।
ধাপ 2: ক্লাস্টার ডেটা প্রদান করুন
এটি সুপারিশ করা হয় যে বিষয়বস্তু প্রকাশের কাজটি ব্যাকগ্রাউন্ডে (উদাহরণস্বরূপ, WorkManager ব্যবহার করে) কার্যকর করা এবং নিয়মিতভাবে বা একটি ইভেন্টের ভিত্তিতে নির্ধারিত করা (উদাহরণস্বরূপ, ব্যবহারকারী যখনই অ্যাপটি খোলে বা যখন ব্যবহারকারী শুধু কিছু যোগ করেন তাদের কার্ট)।
AppEngageShoppingClient
শপিং ক্লাস্টার প্রকাশের জন্য দায়ী।
নিম্নলিখিত APIগুলি ক্লায়েন্টে ক্লাস্টার প্রকাশ করার জন্য উন্মুক্ত হয়:
-
isServiceAvailable
-
publishRecommendationClusters
-
publishFeaturedCluster
-
publishShoppingCart
-
publishShoppingCarts
-
publishShoppingList
-
publishShoppingReorderCluster
-
publishShoppingOrderTrackingCluster
-
publishUserAccountManagementRequest
-
updatePublishStatus
-
deleteRecommendationsClusters
-
deleteFeaturedCluster
-
deleteShoppingCartCluster
-
deleteShoppingListCluster
-
deleteShoppingReorderCluster
-
deleteShoppingOrderTrackingCluster
-
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 ব্যবহার করা হয়।
একটি RecommendationCluster
অবজেক্টের নিম্নলিখিত বৈশিষ্ট্য থাকতে পারে:
বৈশিষ্ট্য | প্রয়োজনীয়তা | বর্ণনা |
---|---|---|
ShoppingEntity এর তালিকা | প্রয়োজন | এই সুপারিশ ক্লাস্টারের জন্য সুপারিশগুলি তৈরি করে এমন ShoppingEntity অবজেক্টের একটি তালিকা। |
শিরোনাম | প্রয়োজন | সুপারিশ ক্লাস্টার জন্য শিরোনাম. প্রস্তাবিত পাঠ্যের আকার: 25 অক্ষরের নিচে (অত্যধিক দীর্ঘ পাঠ্য উপবৃত্ত দেখাতে পারে) |
সাবটাইটেল | ঐচ্ছিক | সুপারিশ ক্লাস্টার জন্য সাবটাইটেল. |
অ্যাকশন উরি | ঐচ্ছিক | অংশীদার অ্যাপের পৃষ্ঠার গভীর লিঙ্ক যেখানে ব্যবহারকারীরা সুপারিশের সম্পূর্ণ তালিকা দেখতে পাবেন। দ্রষ্টব্য: আপনি অ্যাট্রিবিউশনের জন্য গভীর লিঙ্ক ব্যবহার করতে পারেন। এই FAQ পড়ুন |
কোটলিন
client.publishRecommendationClusters( PublishRecommendationClustersRequest.Builder() .addRecommendationCluster( RecommendationCluster.Builder() .addEntity(entity1) .addEntity(entity2) .setTitle("Black Friday Deals") .build()) .build())
জাভা
client.publishRecommendationClusters( new PublishRecommendationClustersRequest.Builder() .addRecommendationCluster( new RecommendationCluster.Builder() .addEntity(entity1) .addEntity(entity2) .setTitle("Black Friday Deals") .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
ডেটা সরানো হয়েছে৷ - অনুরোধের ডেটা পার্স করা হয় এবং আপডেট করা বৈশিষ্ট্যযুক্ত ক্লাস্টারে সংরক্ষণ করা হয়।
একটি ত্রুটির ক্ষেত্রে, সম্পূর্ণ অনুরোধ প্রত্যাখ্যান করা হয় এবং বিদ্যমান অবস্থা বজায় রাখা হয়।
publishShoppingCart
এই APIটি একটি ShoppingCartCluster
অবজেক্ট প্রকাশ করতে ব্যবহৃত হয়।
কোটলিন
client.publishShoppingCart( PublishShoppingCartRequest.Builder() .setShoppingCart( ShoppingCart.Builder() ... .build()) .build())
জাভা
client.publishShoppingCart( new PublishShoppingCartRequest.Builder() .setShoppingCart( new ShoppingCart.Builder() ... .build()) .build())
যখন পরিষেবাটি অনুরোধটি গ্রহণ করে, নিম্নলিখিত ক্রিয়াগুলি একটি লেনদেনের মধ্যে সঞ্চালিত হয়:
- বিকাশকারী অংশীদার থেকে বিদ্যমান
ShoppingCart
ডেটা সরানো হয়েছে। - অনুরোধের ডেটা পার্স করা হয় এবং আপডেট করা শপিং কার্ট ক্লাস্টারে সংরক্ষণ করা হয়।
একটি ত্রুটির ক্ষেত্রে, সম্পূর্ণ অনুরোধ প্রত্যাখ্যান করা হয় এবং বিদ্যমান অবস্থা বজায় রাখা হয়।
publishShoppingCarts
এই API একাধিক ShoppingCart
অবজেক্ট প্রকাশ করতে ব্যবহার করা হয়. এটি বিকাশকারী অংশীদার প্রতি বণিকের জন্য পৃথক কার্ট প্রকাশের ক্ষেত্রে প্রযোজ্য। এই API ব্যবহার করার সময় শিরোনামে বণিকের নাম অন্তর্ভুক্ত করুন।
কোটলিন
client.publishShoppingCarts( PublishShoppingCartClustersRequest.Builder() .addShoppingCart( ShoppingCart.Builder() ... .build()) .build())
জাভা
client.publishShoppingCarts( new PublishShoppingCartClustersRequest.Builder() .addShoppingCart( new ShoppingCart.Builder() ... .build()) .build())
যখন পরিষেবাটি অনুরোধটি গ্রহণ করে, নিম্নলিখিত ক্রিয়াগুলি একটি লেনদেনের মধ্যে সঞ্চালিত হয়:
- বিকাশকারী অংশীদার থেকে বিদ্যমান
ShoppingCart
ডেটা সরানো হয়েছে। - অনুরোধের ডেটা পার্স করা হয় এবং আপডেট করা শপিং কার্ট ক্লাস্টারে সংরক্ষণ করা হয়।
একটি ত্রুটির ক্ষেত্রে, সম্পূর্ণ অনুরোধ প্রত্যাখ্যান করা হয় এবং বিদ্যমান অবস্থা বজায় রাখা হয়।
publishShoppingList
এই APIটি একটি FoodShoppingList
অবজেক্ট প্রকাশ করতে ব্যবহৃত হয়।
কোটলিন
client.publishFoodShoppingList( PublishFoodShoppingListRequest.Builder() .setFoodShoppingList( FoodShoppingListEntity.Builder() ... .build()) .build())
জাভা
client.publishFoodShoppingList( new PublishFoodShoppingListRequest.Builder() .setFoodShoppingList( new FoodShoppingListEntity.Builder() ... .build()) .build());
যখন পরিষেবাটি অনুরোধটি গ্রহণ করে, নিম্নলিখিত ক্রিয়াগুলি একটি লেনদেনের মধ্যে সঞ্চালিত হয়:
- বিকাশকারী অংশীদার থেকে বিদ্যমান
FoodShoppingList
ডেটা মুছে ফেলা হয়। - অনুরোধের ডেটা পার্স করা হয় এবং আপডেট করা শপিং লিস্ট ক্লাস্টারে সংরক্ষণ করা হয়।
একটি ত্রুটির ক্ষেত্রে, সম্পূর্ণ অনুরোধ প্রত্যাখ্যান করা হয় এবং বিদ্যমান অবস্থা বজায় রাখা হয়।
publishShoppingReorderCluster
এই APIটি একটি ShoppingReorderCluster
অবজেক্ট প্রকাশ করতে ব্যবহৃত হয়।
কোটলিন
client.publishShoppingReorderCluster( PublishShoppingReorderClusterRequest.Builder() .setReorderCluster( ShoppingReorderCluster.Builder() ... .build()) .build())
জাভা
client.publishShoppingReorderCluster( new PublishShoppingReorderClusterRequest.Builder() .setReorderCluster( new ShoppingReorderCluster.Builder() ... .build()) .build());
যখন পরিষেবাটি অনুরোধটি গ্রহণ করে, নিম্নলিখিত ক্রিয়াগুলি একটি লেনদেনের মধ্যে সঞ্চালিত হয়:
- বিকাশকারী অংশীদার থেকে বিদ্যমান
ShoppingReorderCluster
ডেটা সরানো হয়েছে। - অনুরোধ থেকে ডেটা পার্স করা হয় এবং আপডেট করা পুনঃক্রম ক্লাস্টারে সংরক্ষণ করা হয়।
একটি ত্রুটির ক্ষেত্রে, সম্পূর্ণ অনুরোধ প্রত্যাখ্যান করা হয় এবং বিদ্যমান অবস্থা বজায় রাখা হয়।
publishShoppingOrderTrackingCluster
এই APIটি একটি ShoppingOrderTrackingCluster
অবজেক্ট প্রকাশ করতে ব্যবহৃত হয়।
কোটলিন
client.publishShoppingOrderTrackingCluster( PublishShoppingOrderTrackingClusterRequest.Builder() .setShoppingOrderTrackingCluster( ShoppingOrderTrackingCluster.Builder() ... .build()) .build())
জাভা
client.publishShoppingOrderTrackingCluster( new PublishShoppingOrderTrackingClusterRequest.Builder() .setShoppingOrderTrackingCluster( new ShoppingOrderTrackingCluster.Builder() ... .build()) .build());
যখন পরিষেবাটি অনুরোধটি গ্রহণ করে, নিম্নলিখিত ক্রিয়াগুলি একটি লেনদেনের মধ্যে সঞ্চালিত হয়:
- বিকাশকারী অংশীদার থেকে বিদ্যমান
ShoppingOrderTrackingCluster
ডেটা সরানো হয়েছে। - অনুরোধের ডেটা পার্স করা হয় এবং আপডেট করা শপিং অর্ডার ট্র্যাকিং ক্লাস্টারে সংরক্ষণ করা হয়।
একটি ত্রুটির ক্ষেত্রে, সম্পূর্ণ অনুরোধ প্রত্যাখ্যান করা হয় এবং বিদ্যমান অবস্থা বজায় রাখা হয়।
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();
যখন পরিষেবাটি অনুরোধ গ্রহণ করে, এটি বৈশিষ্ট্যযুক্ত ক্লাস্টার থেকে বিদ্যমান ডেটা সরিয়ে দেয়। একটি ত্রুটির ক্ষেত্রে, সম্পূর্ণ অনুরোধ প্রত্যাখ্যান করা হয় এবং বিদ্যমান অবস্থা বজায় রাখা হয়।
deleteShoppingCartCluster
এই API শপিং কার্ট ক্লাস্টারের বিষয়বস্তু মুছে ফেলার জন্য ব্যবহার করা হয়।
কোটলিন
client.deleteShoppingCartCluster()
জাভা
client.deleteShoppingCartCluster();
যখন পরিষেবাটি অনুরোধ গ্রহণ করে, তখন এটি শপিং কার্ট ক্লাস্টার থেকে বিদ্যমান ডেটা সরিয়ে দেয়। একটি ত্রুটির ক্ষেত্রে, সম্পূর্ণ অনুরোধ প্রত্যাখ্যান করা হয় এবং বিদ্যমান অবস্থা বজায় রাখা হয়।
deleteShoppingListCluster
শপিং লিস্ট ক্লাস্টারের বিষয়বস্তু মুছতে এই API ব্যবহার করা হয়।
কোটলিন
client.deleteShoppingListCluster()
জাভা
client.deleteShoppingListCluster();
যখন পরিষেবাটি অনুরোধ গ্রহণ করে, তখন এটি শপিং তালিকা ক্লাস্টার থেকে বিদ্যমান ডেটা সরিয়ে দেয়। একটি ত্রুটির ক্ষেত্রে, সম্পূর্ণ অনুরোধ প্রত্যাখ্যান করা হয় এবং বিদ্যমান অবস্থা বজায় রাখা হয়।
deleteShoppingReorderCluster
শপিং রিঅর্ডার ক্লাস্টারের বিষয়বস্তু মুছতে এই API ব্যবহার করা হয়।
কোটলিন
client.deleteShoppingReorderCluster()
জাভা
client.deleteShoppingReorderCluster();
যখন পরিষেবাটি অনুরোধ গ্রহণ করে, তখন এটি শপিং রিঅর্ডার ক্লাস্টার থেকে বিদ্যমান ডেটা সরিয়ে দেয়। একটি ত্রুটির ক্ষেত্রে, সম্পূর্ণ অনুরোধ প্রত্যাখ্যান করা হয় এবং বিদ্যমান অবস্থা বজায় রাখা হয়।
deleteShoppingOrderTrackingCluster
শপিং অর্ডার ট্র্যাকিং ক্লাস্টারের বিষয়বস্তু মুছতে এই API ব্যবহার করা হয়।
কোটলিন
client.deleteShoppingOrderTrackingCluster()
জাভা
client.deleteShoppingOrderTrackingCluster();
যখন পরিষেবাটি অনুরোধটি পায়, তখন এটি শপিং অর্ডার ট্র্যাকিং ক্লাস্টার থেকে বিদ্যমান ডেটা সরিয়ে দেয়। একটি ত্রুটির ক্ষেত্রে, সম্পূর্ণ অনুরোধ প্রত্যাখ্যান করা হয় এবং বিদ্যমান অবস্থা বজায় রাখা হয়।
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( PublishRecommendationClustersRequest.Builder() .addRecommendationCluster(..) .build()) .addOnCompleteListener { task -> if (task.isSuccessful) { // do something } else { val exception = task.exception if (exception is AppEngageException) { @AppEngageErrorCode val errorCode = exception.errorCode if (errorCode == AppEngageErrorCode.SERVICE_NOT_FOUND) { // do something } } } }
জাভা
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 : 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_SHOPPING_CART broadcast // is received // Trigger shopping list cluster publish when PUBLISH_SHOPPING_LIST broadcast // is received // Trigger reorder cluster publish when PUBLISH_REORDER_CLUSTER broadcast is // received // Trigger shopping order tracking cluster publish when // PUBLISH_SHOPPING_ORDER_TRACKING_CLUSTER broadcast is received } fun registerBroadcastReceivers(context: Context){ var context = context context = context.applicationContext // Register Recommendation Cluster Publish Intent context.registerReceiver(AppEngageBroadcastReceiver(), IntentFilter(Intents.ACTION_PUBLISH_RECOMMENDATION)) // Register Featured Cluster Publish Intent context.registerReceiver(AppEngageBroadcastReceiver(), IntentFilter(Intents.ACTION_PUBLISH_FEATURED)) // Register Shopping Cart Cluster Publish Intent context.registerReceiver(AppEngageBroadcastReceiver(), IntentFilter(Intents.ACTION_PUBLISH_SHOPPING_CART)) // Register Shopping List Cluster Publish Intent context.registerReceiver(AppEngageBroadcastReceiver(), IntentFilter(Intents.ACTION_PUBLISH_SHOPPING_LIST)) // Register Reorder Cluster Publish Intent context.registerReceiver(AppEngageBroadcastReceiver(), IntentFilter(Intents.ACTION_PUBLISH_REORDER_CLUSTER)) // Register Shopping Order Tracking Cluster Publish Intent context.registerReceiver(AppEngageBroadcastReceiver(), IntentFilter(Intents.ACTION_PUBLISH_SHOPPING_ORDER_TRACKING_CLUSTER)) }
জাভা
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_SHOPPING_CART broadcast is // received // Trigger shopping list cluster publish when PUBLISH_SHOPPING_LIST broadcast is // received // Trigger reorder cluster publish when PUBLISH_REORDER_CLUSTER broadcast is // received // Trigger reorder cluster publish when PUBLISH_SHOPPING_ORDER_TRACKING_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.shopping.service.Intents.ACTION_PUBLISH_SHOPPING_CART)); // Register Shopping List Cluster Publish Intent context.registerReceiver(new AppEngageBroadcastReceiver(), new IntentFilter(com.google.android.engage.shopping.service.Intents.ACTION_PUBLISH_SHOPPING_LIST)); // Register Reorder Cluster Publish Intent context.registerReceiver(new AppEngageBroadcastReceiver(), new IntentFilter(com.google.android.engage.shopping.service.Intents.ACTION_PUBLISH_REORDER_CLUSTER)); // Register Shopping Order Tracking Cluster Publish Intent context.registerReceiver(new AppEngageBroadcastReceiver(), new IntentFilter(com.google.android.engage.shopping.service.Intents.ACTION_PUBLISH_SHOPPING_ORDER_TRACKING_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.shopping.PUBLISH_SHOPPING_CART" />
</intent-filter>
<intent-filter>
<action android:name="com.google.android.engage.action.shopping.PUBLISH_SHOPPING_LIST" />
</intent-filter>
<intent-filter>
<action android:name="com.google.android.engage.action.shopping.PUBLISH_REORDER_CLUSTER" />
</intent-filter>
<intent-filter>
<action android:name="com.google.android.engage.action.shopping.PUBLISH_SHOPPING_ORDER_TRACKING_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.shopping.PUBLISH_SHOPPING_CART
এই অভিপ্রায়টি প্রাপ্ত হলে একটিpublishShoppingCart
কল শুরু করার পরামর্শ দেওয়া হয়৷ -
com.google.android.engage.action.shopping.PUBLISH_SHOPPING_LIST
এই অভিপ্রায়টি প্রাপ্ত হলে একটিpublishShoppingList
কল শুরু করার পরামর্শ দেওয়া হয়৷ -
com.google.android.engage.action.shopping.PUBLISH_REORDER_CLUSTER
এই অভিপ্রায় প্রাপ্ত হলে একটিpublishReorderCluster
কল শুরু করার পরামর্শ দেওয়া হয়৷ -
com.google.android.engage.action.shopping.PUBLISH_SHOPPING_ORDER_TRACKING_CLUSTER
এই অভিপ্রায়টি প্রাপ্ত হলে একটিpublishShoppingOrderTrackingCluster
কল শুরু করার পরামর্শ দেওয়া হয়৷
ইন্টিগ্রেশন ওয়ার্কফ্লো
আপনার ইন্টিগ্রেশন সম্পূর্ণ হওয়ার পরে যাচাই করার জন্য ধাপে ধাপে গাইডের জন্য, Engage ডেভেলপার ইন্টিগ্রেশন ওয়ার্কফ্লো দেখুন।
FAQs
প্রায়শই জিজ্ঞাসিত প্রশ্নগুলির জন্য Engage SDK দেখুন।
যোগাযোগ
ইন্টিগ্রেশন প্রক্রিয়া চলাকালীন কোনো প্রশ্ন থাকলে entering-developers@google.com- এ যোগাযোগ করুন। আমাদের দল যত তাড়াতাড়ি সম্ভব উত্তর দেয়।
পরবর্তী পদক্ষেপ
এই ইন্টিগ্রেশন সম্পন্ন করার পরে, আপনার পরবর্তী পদক্ষেপগুলি নিম্নরূপ:
- Enge-developers@google.com- এ একটি ইমেল পাঠান এবং আপনার সমন্বিত APK সংযুক্ত করুন যা Google দ্বারা পরীক্ষার জন্য প্রস্তুত৷
- ইন্টিগ্রেশন আশানুরূপ কাজ করছে তা নিশ্চিত করতে Google একটি যাচাইকরণ করে এবং অভ্যন্তরীণভাবে পর্যালোচনা করে। পরিবর্তনের প্রয়োজন হলে, Google যেকোনো প্রয়োজনীয় বিবরণের সাথে আপনার সাথে যোগাযোগ করবে।
- যখন পরীক্ষা সম্পূর্ণ হয় এবং কোন পরিবর্তনের প্রয়োজন হয় না, তখন Google আপনাকে অবহিত করার জন্য আপনার সাথে যোগাযোগ করে যে আপনি প্লে স্টোরে আপডেট করা এবং সমন্বিত APK প্রকাশ করা শুরু করতে পারেন।
- Google আপনার আপডেট করা APK প্লে স্টোরে প্রকাশিত হয়েছে তা নিশ্চিত করার পরে, আপনার সুপারিশ , বৈশিষ্ট্যযুক্ত , শপিং কার্ট , শপিং তালিকা , পুনঃক্রম ক্লাস্টার এবং শপিং অর্ডার ট্র্যাকিং ক্লাস্টার ক্লাস্টারগুলি প্রকাশ করা হতে পারে এবং ব্যবহারকারীদের কাছে দৃশ্যমান হতে পারে৷