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

আপনার ব্যবহারকারীরা যেখানেই থাকুক না কেন, তাদের কাছে পৌঁছে অ্যাপের সম্পৃক্ততা বাড়ান। কালেকশন , এন্টারটেইনমেন্ট স্পেস এবং প্লে স্টোরের মতো ডিভাইসের বিভিন্ন প্ল্যাটফর্মে ব্যবহারকারীদের কাছে সরাসরি ব্যক্তিগতকৃত সুপারিশ এবং ধারাবাহিক কন্টেন্ট পৌঁছে দিতে Engage SDK ইন্টিগ্রেট করুন। এই ইন্টিগ্রেশনটি গড় APK-তে ৫০ কেবি-রও কম (কম্প্রেসড) সাইজ যোগ করে এবং বেশিরভাগ অ্যাপের জন্য ডেভেলপারদের প্রায় এক সপ্তাহ সময় লাগে। আমাদের বিজনেস সাইটে আরও জানুন।

এই নির্দেশিকায় ডেভেলপার পার্টনারদের জন্য Engage কন্টেন্ট সারফেসে শপিং কন্টেন্ট সরবরাহ করার নির্দেশনা রয়েছে।

একীকরণের বিবরণ

পরিভাষা

এই ইন্টিগ্রেশনে নিম্নলিখিত পাঁচটি ক্লাস্টার টাইপ অন্তর্ভুক্ত রয়েছে: রিকমেন্ডেশন , ফিচার্ড , শপিং কার্ট , শপিং লিস্ট , রিঅর্ডার এবং শপিং অর্ডার ট্র্যাকিং

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

    আপনার সুপারিশগুলোর কাঠামোটি নিম্নরূপ:

    • সুপারিশ ক্লাস্টার: একটি UI ভিউ যেখানে একই ডেভেলপার পার্টনারের দেওয়া একাধিক সুপারিশ থাকে।

    • ShoppingEntity: একটি ক্লাস্টারের মধ্যে থাকা একটিমাত্র আইটেমকে প্রতিনিধিত্বকারী একটি অবজেক্ট।

  • ফিচার্ড ক্লাস্টার একাধিক ডেভেলপার পার্টনারের নির্বাচিত কিছু এনটিটি একটি UI গ্রুপে প্রদর্শন করে। একটিমাত্র ফিচার্ড ক্লাস্টার থাকবে, যা UI-এর উপরের দিকে প্রদর্শিত হবে এবং সমস্ত রিকমেন্ডেশন ক্লাস্টারের উপরে অগ্রাধিকার পাবে। প্রতিটি ডেভেলপার পার্টনার ফিচার্ড ক্লাস্টারে সর্বোচ্চ ১০টি এনটিটি ব্রডকাস্ট করতে পারবে।

  • শপিং কার্ট ক্লাস্টারটি একটি UI গ্রুপে অনেক ডেভেলপার পার্টনারের শপিং কার্টের একটি ঝলক দেখায়, যা ব্যবহারকারীদের তাদের অসমাপ্ত কার্টগুলো সম্পূর্ণ করতে উৎসাহিত করে। এখানে একটিমাত্র শপিং কার্ট ক্লাস্টার রয়েছে, যা UI-এর উপরের দিকে প্রদর্শিত হয় এবং সমস্ত রিকমেন্ডেশন ক্লাস্টারের উপরে এর অগ্রাধিকার থাকে। প্রতিটি ডেভেলপার পার্টনারকে শপিং কার্ট ক্লাস্টারে সর্বোচ্চ ৩টি ShoppingCart ইনস্ট্যান্স সম্প্রচার করার অনুমতি দেওয়া হয়।

    আপনার শপিং কার্টের গঠনটি নিম্নরূপ:

    • শপিং কার্ট ক্লাস্টার: একটি UI ভিউ, যেখানে অনেক ডেভেলপার পার্টনারদের দেওয়া শপিং কার্ট প্রিভিউগুলোর একটি গ্রুপ থাকে।

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

  • শপিং লিস্ট ক্লাস্টারটি একটি UI গ্রুপে একাধিক ডেভেলপার পার্টনারের শপিং লিস্টের একটি ঝলক দেখায় এবং ব্যবহারকারীদের তাদের তালিকা আপডেট ও সম্পূর্ণ করার জন্য সংশ্লিষ্ট অ্যাপে ফিরে যেতে উৎসাহিত করে। এখানে একটিমাত্র শপিং লিস্ট ক্লাস্টার রয়েছে।

  • রিঅর্ডার ক্লাস্টারটি একাধিক ডেভেলপার পার্টনারের পূর্ববর্তী অর্ডারগুলোর একটি সংক্ষিপ্ত ঝলক একটি UI গ্রুপে দেখায়, যা ব্যবহারকারীদের পুনরায় অর্ডার করতে উৎসাহিত করে। এখানে একটিমাত্র রিঅর্ডার ক্লাস্টার রয়েছে।

    • রিঅর্ডার ক্লাস্টারে ব্যবহারকারীর পূর্ববর্তী অর্ডারের মোট আইটেমের সংখ্যা অবশ্যই দেখাতে হবে এবং এর সাথে নিম্নলিখিতগুলির মধ্যে যেকোনো একটি অবশ্যই অন্তর্ভুক্ত থাকতে হবে:

      • ব্যবহারকারীর পূর্ববর্তী অর্ডারের X সংখ্যক আইটেমের ছবি।
      • ব্যবহারকারীর পূর্ববর্তী অর্ডারের X সংখ্যক আইটেমের লেবেল।
  • শপিং অর্ডার ট্র্যাকিং ক্লাস্টারটি অনেক ডেভেলপার পার্টনারদের অপেক্ষাধীন বা সম্প্রতি সম্পন্ন হওয়া শপিং অর্ডারগুলোর একটি সংক্ষিপ্ত ঝলক একটি UI গ্রুপে দেখায়, যা ব্যবহারকারীদের তাদের অর্ডার ট্র্যাক করতে সাহায্য করে।

    একটিমাত্র ShoppingOrderTracking ক্লাস্টার রয়েছে যা UI-এর উপরের দিকে প্রদর্শিত হয় এবং সমস্ত Recommendation ক্লাস্টারের উপরে এর অগ্রাধিকার থাকে। প্রত্যেক ডেভেলপার পার্টনারকে Shopping Order Tracking ক্লাস্টারে একাধিক ShoppingOrderTrackingEntity আইটেম ব্রডকাস্ট করার অনুমতি দেওয়া হয়।

    • আপনার ShoppingOrderTrackingCluster-এর গঠনটি নিম্নরূপ:

      • শপিংঅর্ডারট্র্যাকিং ক্লাস্টার : একটি UI ভিউ যেখানে অনেক ডেভেলপার পার্টনারদের থেকে প্রাপ্ত অর্ডার ট্র্যাকিং প্রিভিউগুলির একটি গ্রুপ থাকে।
      • ShoppingOrderTrackingEntity : একটি অবজেক্ট যা একজন একক ডেভেলপার পার্টনারের জন্য শপিং অর্ডার ট্র্যাকিং প্রিভিউ উপস্থাপন করে এবং যা শপিং অর্ডার ট্র্যাকিং ক্লাস্টারে প্রদর্শিত হবে। ShoppingOrderTrackingEntity-তে অবশ্যই অর্ডারের স্ট্যাটাস এবং অর্ডারের সময় দেখাতে হবে। আমরা ShoppingOrderTrackingEntity-এর জন্য প্রত্যাশিত ডেলিভারির সময় পূরণ করার জন্য দৃঢ়ভাবে সুপারিশ করছি, কারণ এটি প্রদান করা হলে ব্যবহারকারীদের কাছে প্রদর্শিত হয়।

প্রাক-কাজ

সর্বনিম্ন এপিআই স্তর: ১৯

আপনার অ্যাপে 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.12'
}

আরও তথ্যের জন্য, Android 11-এ প্যাকেজ দৃশ্যমানতা দেখুন।

সারসংক্ষেপ

ডিজাইনটি একটি বাউন্ড সার্ভিসের বাস্তবায়নের উপর ভিত্তি করে তৈরি।

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

ক্লাস্টার টাইপ ক্লাস্টার সীমা একটি ক্লাস্টারে সত্তার সর্বোচ্চ সীমা
সুপারিশ ক্লাস্টার(গুলি) সর্বাধিক ৭ সর্বাধিক ৫০টি ShoppingEntity
বৈশিষ্ট্যযুক্ত ক্লাস্টার সর্বাধিক ১ সর্বাধিক ২০টি ShoppingEntity
শপিং কার্ট ক্লাস্টার সর্বাধিক ১ সর্বাধিক ৩টি ShoppingCart

যেসব অ্যাপে প্রতি মার্চেন্টের জন্য আলাদা কার্ট থাকে, শুধুমাত্র সেগুলোর ক্ষেত্রেই একাধিক কার্ট প্রত্যাশিত।

কেনাকাটার তালিকার গুচ্ছ সর্বাধিক ১ সর্বাধিক ৩টি ShoppingList
শপিং রিঅর্ডার ক্লাস্টার সর্বাধিক ১ সর্বাধিক ১টি ReorderEntity
শপিং অর্ডার ট্র্যাকিং ক্লাস্টার সর্বাধিক ৩ সর্বাধিক ৩টি ShoppingOrderTrackingEntity

ধাপ ১: সত্তার তথ্য প্রদান করুন

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

  1. ShoppingEntity
  2. ShoppingCart
  3. ShoppingList
  4. Reorder
  5. ShoppingOrderTracking

নিচের চার্টগুলোতে প্রতিটি প্রকারের জন্য উপলব্ধ বৈশিষ্ট্য এবং প্রয়োজনীয়তাগুলো তুলে ধরা হয়েছে।

ShoppingEntity

ShoppingEntity অবজেক্টটি এমন একটি পণ্য, প্রচার, ডিল, সাবস্ক্রিপশন বা ইভেন্টের প্রতিনিধিত্ব করে যা ডেভেলপার পার্টনাররা প্রকাশ করতে চান।

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

অ্যাপের সেই পৃষ্ঠার ডিপ লিঙ্ক, যেখানে সত্তাটি সম্পর্কে বিস্তারিত তথ্য প্রদর্শিত হয়।

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

উরি
শিরোনাম ঐচ্ছিক সত্তাটির নাম।

মুক্ত পাঠ্য

প্রস্তাবিত লেখার আকার: ৯০ অক্ষরের কম (অতিরিক্ত দীর্ঘ লেখার শেষে ডট ডট চিহ্ন দেখা যেতে পারে)

মূল্য - বর্তমান শর্তসাপেক্ষে আবশ্যক

সত্তাটির বর্তমান মূল্য।

যদি কেটে দেওয়া মূল্য প্রদান করা হয়, তবে এটি অবশ্যই প্রদান করতে হবে।

মুক্ত পাঠ্য
মূল্য - কেটে দেওয়া ঐচ্ছিক সত্তাটির আসল মূল্য, যা UI-তে কেটে দেওয়া থাকবে। মুক্ত পাঠ্য
কলআউট ঐচ্ছিক প্রতিষ্ঠানটির কোনো প্রচার, অনুষ্ঠান বা হালনাগাদ তথ্য থাকলে, তা তুলে ধরার জন্য আহ্বান জানান।

মুক্ত পাঠ্য

প্রস্তাবিত লেখার আকার: ৪৫ অক্ষরের কম (অতিরিক্ত দীর্ঘ লেখার শেষে ডট ডট চিহ্ন দেখা যেতে পারে)

কলআউট সূক্ষ্ম মুদ্রণ ঐচ্ছিক কলআউটের জন্য সূক্ষ্ম হরফের লেখা।

মুক্ত পাঠ্য

প্রস্তাবিত লেখার আকার: ৪৫ অক্ষরের কম (অতিরিক্ত দীর্ঘ লেখার শেষে ডট ডট চিহ্ন দেখা যেতে পারে)

রেটিং (ঐচ্ছিক) - দ্রষ্টব্য: সকল রেটিং আমাদের প্রচলিত স্টার রেটিং পদ্ধতি ব্যবহার করে প্রদর্শন করা হয়।
রেটিং - সর্বোচ্চ মান ঐচ্ছিক

রেটিং স্কেলের সর্বোচ্চ মান।

রেটিং-এর বর্তমান মান প্রদান করা হলে এটিও অবশ্যই প্রদান করতে হবে।

সংখ্যা >= ০.০
রেটিং - বর্তমান মান ঐচ্ছিক

রেটিং স্কেলের বর্তমান মান।

রেটিং-এর সর্বোচ্চ মান প্রদান করা হলে এটিও অবশ্যই প্রদান করতে হবে।

সংখ্যা >= ০.০
রেটিং - গণনা ঐচ্ছিক

সত্তাটির রেটিং সংখ্যা।

দ্রষ্টব্য: আপনার অ্যাপ যদি ব্যবহারকারীদের কাছে সংখ্যাটি কীভাবে প্রদর্শিত হবে তা নিয়ন্ত্রণ করে, তবে এই ফিল্ডটি প্রদান করুন। একটি সংক্ষিপ্ত স্ট্রিং ব্যবহার করুন। উদাহরণস্বরূপ, যদি সংখ্যাটি 1,000,000 হয়, তাহলে 1M-এর মতো একটি সংক্ষিপ্ত রূপ ব্যবহার করার কথা বিবেচনা করুন, যাতে ছোট ডিসপ্লে আকারে সংখ্যাটি কেটে না যায়।

স্ট্রিং
রেটিং - গণনার মান ঐচ্ছিক

সত্তাটির রেটিং সংখ্যা।

দ্রষ্টব্য: আপনি যদি সংক্ষিপ্ত রূপ প্রদর্শনের লজিকটি নিজে পরিচালনা না করেন, তবে এই ফিল্ডটি প্রদান করুন। যদি Count এবং Count Value উভয়ই উপস্থিত থাকে, তবে ব্যবহারকারীদের কাছে Count প্রদর্শিত হবে।

দীর্ঘ
DisplayTimeWindow (ঐচ্ছিক) - সারফেসে কোনো কন্টেন্ট প্রদর্শনের জন্য একটি সময়সীমা নির্ধারণ করুন।
শুরুর সময় ঐচ্ছিক

ইপক টাইমস্ট্যাম্প, যার পরে বিষয়বস্তুটি পৃষ্ঠে প্রদর্শিত হবে।

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

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

ইপক টাইমস্ট্যাম্প, যার পরে বিষয়বস্তুটি আর পৃষ্ঠে প্রদর্শিত হয় না।

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

মিলিসেকেন্ডে ইপক টাইমস্ট্যাম্প

ShoppingCart

বৈশিষ্ট্য প্রয়োজনীয়তা বর্ণনা ফর্ম্যাট
অ্যাকশন উরি প্রয়োজনীয়

অংশীদারের অ্যাপে শপিং কার্টের ডিপ লিঙ্ক।

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

উরি
আইটেমের সংখ্যা প্রয়োজনীয়

শপিং কার্টে থাকা আইটেমের সংখ্যা (শুধু পণ্যের সংখ্যা নয়)।

উদাহরণস্বরূপ: যদি কার্টে ৩টি একই রকম শার্ট এবং ১টি টুপি থাকে, তাহলে এই সংখ্যাটি ৪ হওয়া উচিত।

পূর্ণসংখ্যা >= 1
অ্যাকশন টেক্সট ঐচ্ছিক

শপিং কার্টের বাটনের কল টু অ্যাকশন টেক্সট (উদাহরণস্বরূপ, আপনার শপিং ব্যাগ )।

ডেভেলপার কর্তৃক কোনো অ্যাকশন টেক্সট প্রদান করা না হলে, ডিফল্ট হিসেবে ‘ভিউ কার্ট’ প্রদর্শিত হয়।

এই অ্যাট্রিবিউটটি সংস্করণ ১.১.০ এবং তার পরবর্তী সংস্করণগুলোতে সমর্থিত।

স্ট্রিং
শিরোনাম ঐচ্ছিক

কার্টের শিরোনাম (উদাহরণস্বরূপ, আপনার শপিং ব্যাগ )।

ডেভেলপার কর্তৃক কোনো শিরোনাম প্রদান করা না হলে, আপনার কার্টই ডিফল্ট হিসেবে গণ্য হবে।

যদি ডেভেলপার পার্টনার প্রতিটি মার্চেন্টের জন্য আলাদা কার্ট প্রকাশ করেন, তাহলে অনুগ্রহ করে শিরোনামে মার্চেন্টের নাম অন্তর্ভুক্ত করুন।

মুক্ত পাঠ্য

প্রস্তাবিত লেখার আকার: ২৫ অক্ষরের কম (অতিরিক্ত দীর্ঘ লেখার শেষে ডট ডট চিহ্ন দেখা যেতে পারে)

কার্টের ছবি ঐচ্ছিক

কার্টে থাকা প্রতিটি পণ্যের ছবি।

অগ্রাধিকারের ক্রমানুসারে সর্বোচ্চ ১০টি ছবি প্রদান করা যেতে পারে; প্রদর্শিত ছবির প্রকৃত সংখ্যা ডিভাইসের ফর্ম ফ্যাক্টরের উপর নির্ভর করে।

নির্দেশনার জন্য ছবির বিবরণ দেখুন।
আইটেম লেবেল ঐচ্ছিক

কেনাকাটার তালিকায় থাকা জিনিসগুলোর লেবেলের তালিকা।

প্রদর্শিত লেবেলের প্রকৃত সংখ্যা ডিভাইসের ফর্ম ফ্যাক্টরের উপর নির্ভর করে।

বিনামূল্যের টেক্সট লেবেলের তালিকা

প্রস্তাবিত লেখার আকার: ২০ অক্ষরের কম (অতিরিক্ত দীর্ঘ লেখার শেষে ডট ডট চিহ্ন দেখা যেতে পারে)

শেষ ব্যবহারকারীর মিথস্ক্রিয়ার সময় ঐচ্ছিক ব্যবহারকারী শেষবার কার্টের সাথে ইন্টারঅ্যাক্ট করার মুহূর্তটি শনাক্তকারী ইপক থেকে অতিবাহিত মিলিসেকেন্ডের সংখ্যা।

ডেভেলপার পার্টনাররা প্রতিটি মার্চেন্টের জন্য আলাদা কার্ট প্রকাশ করার মাধ্যমে এটি ইনপুট হিসেবে প্রদান করবে এবং এটি র‍্যাঙ্কিংয়ের জন্য ব্যবহৃত হতে পারে।

মিলিসেকেন্ডে ইপক টাইমস্ট্যাম্প
DisplayTimeWindow (ঐচ্ছিক) - সারফেসে কোনো কন্টেন্ট প্রদর্শনের জন্য একটি সময়সীমা নির্ধারণ করুন।
শুরুর সময় ঐচ্ছিক

ইপক টাইমস্ট্যাম্প, যার পরে বিষয়বস্তুটি পৃষ্ঠে প্রদর্শিত হবে।

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

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

ইপক টাইমস্ট্যাম্প, যার পরে বিষয়বস্তুটি আর পৃষ্ঠে প্রদর্শিত হয় না।

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

মিলিসেকেন্ডে ইপক টাইমস্ট্যাম্প

ShoppingList

বৈশিষ্ট্য প্রয়োজনীয়তা বর্ণনা ফর্ম্যাট
অ্যাকশন উরি প্রয়োজনীয়

পার্টনারের অ্যাপে থাকা শপিং লিস্টের ডিপ লিঙ্ক।

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

উরি
আইটেমের সংখ্যা প্রয়োজনীয় কেনাকাটার তালিকায় থাকা জিনিসপত্রের সংখ্যা। পূর্ণসংখ্যা >= 1
শিরোনাম ঐচ্ছিক

তালিকার শিরোনাম (উদাহরণস্বরূপ, আপনার মুদিখানার তালিকা )।

ডেভেলপার কোনো শিরোনাম প্রদান না করলে, 'কেনাকাটার তালিকা' ডিফল্ট হিসেবে থাকে।

মুক্ত পাঠ্য

প্রস্তাবিত লেখার আকার: ২৫ অক্ষরের কম (অতিরিক্ত দীর্ঘ লেখার শেষে ডট ডট চিহ্ন দেখা যেতে পারে)

আইটেম লেবেল প্রয়োজনীয়

কেনাকাটার তালিকায় থাকা জিনিসগুলোর লেবেলের তালিকা।

কমপক্ষে ১টি লেবেল অবশ্যই প্রদান করতে হবে এবং অগ্রাধিকারের ভিত্তিতে সর্বোচ্চ ১০টি লেবেল প্রদান করা যেতে পারে; প্রদর্শিত লেবেলের প্রকৃত সংখ্যা ডিভাইসের ফর্ম ফ্যাক্টরের উপর নির্ভর করে।

বিনামূল্যের টেক্সট লেবেলের তালিকা

প্রস্তাবিত লেখার আকার: ২০ অক্ষরের কম (অতিরিক্ত দীর্ঘ লেখার শেষে ডট ডট চিহ্ন দেখা যেতে পারে)

শেষ ব্যবহারকারীর মিথস্ক্রিয়ার সময় প্রয়োজনীয় ব্যবহারকারী শেষবার কেনাকাটার তালিকার সাথে ইন্টারঅ্যাক্ট করার মুহূর্তটি শনাক্ত করার সময় থেকে অতিবাহিত মিলিসেকেন্ডের সংখ্যা। মিলিসেকেন্ডে ইপক টাইমস্ট্যাম্প

ShoppingReorderCluster

বৈশিষ্ট্য প্রয়োজনীয়তা বর্ণনা ফর্ম্যাট
অ্যাকশন উরি প্রয়োজনীয়

পার্টনারের অ্যাপে পুনরায় অর্ডার করার ডিপ লিঙ্ক।

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

উরি
অ্যাকশন টেক্সট ঐচ্ছিক

পুনরায় অর্ডার করার বাটনের কল টু অ্যাকশন টেক্সট (উদাহরণস্বরূপ, আবার অর্ডার করুন )।

ডেভেলপার কর্তৃক কোনো অ্যাকশন টেক্সট প্রদান করা না হলে, রিঅর্ডার ডিফল্ট হিসেবে সেট হয়।

এই অ্যাট্রিবিউটটি সংস্করণ ১.১.০ এবং তার পরবর্তী সংস্করণগুলোতে সমর্থিত।

স্ট্রিং
আইটেমের সংখ্যা প্রয়োজনীয়

পূর্ববর্তী অর্ডারের আইটেমের সংখ্যা (শুধু পণ্যের সংখ্যা নয়)।

উদাহরণস্বরূপ: যদি আগের অর্ডারে ৩টি ছোট কফি এবং ১টি ক্রোসাঁ থাকে, তাহলে এই সংখ্যাটি ৪ হওয়া উচিত।

পূর্ণসংখ্যা >= 1
শিরোনাম প্রয়োজনীয় পুনরায় অর্ডার করা আইটেমটির শিরোনাম।

মুক্ত পাঠ্য

প্রস্তাবিত লেখার আকার: ৪০ অক্ষরের কম (অতিরিক্ত দীর্ঘ লেখার শেষে ডট ডট চিহ্ন দেখা যেতে পারে)

আইটেম লেবেল

ঐচ্ছিক

(প্রদত্ত না থাকলে পোস্টারের ছবি সরবরাহ করতে হবে)

পূর্ববর্তী অর্ডারের আইটেম লেবেলগুলোর তালিকা।

অগ্রাধিকারের ক্রমানুসারে সর্বোচ্চ ১০টি লেবেল প্রদান করা যেতে পারে; প্রদর্শিত লেবেলের প্রকৃত সংখ্যা ডিভাইসের ফর্ম ফ্যাক্টরের উপর নির্ভর করে।

মুক্ত পাঠ্যের তালিকা

প্রতিটি লেবেলের জন্য প্রস্তাবিত লেখার আকার: ২০ অক্ষরের কম (অতিরিক্ত দীর্ঘ লেখায় ডট ডট চিহ্ন (ইলিপসিস) দেখা যেতে পারে)

পোস্টারের ছবি

ঐচ্ছিক

(প্রদান করা না থাকলে, পণ্যের লেবেল সরবরাহ করতে হবে)

পূর্ববর্তী অর্ডারের পণ্যগুলোর ছবি।

অগ্রাধিকারের ক্রমানুসারে সর্বোচ্চ ১০টি ছবি প্রদান করা যেতে পারে; প্রদর্শিত ছবির প্রকৃত সংখ্যা ডিভাইসের ফর্ম ফ্যাক্টরের উপর নির্ভর করে।

নির্দেশনার জন্য ছবির বিবরণ দেখুন।

ShoppingOrderTrackingCluster

বৈশিষ্ট্য প্রয়োজনীয়তা বর্ণনা ফর্ম্যাট
শিরোনাম প্রয়োজনীয়

যে প্যাকেজ/আইটেমগুলো ট্র্যাক করা হচ্ছে তার একটি সংক্ষিপ্ত শিরোনাম অথবা ট্র্যাকিং নম্বর।

মুক্ত পাঠ্য

প্রস্তাবিত লেখার আকার: ৫০ অক্ষর (অতিরিক্ত দীর্ঘ লেখার শেষে ডট ডট চিহ্ন দেখা যাবে)

অর্ডারের ধরণ প্রয়োজনীয়

যে প্যাকেজ/আইটেমগুলো ট্র্যাক করা হচ্ছে তার একটি সংক্ষিপ্ত শিরোনাম অথবা ট্র্যাকিং নম্বর।

Enum: IN_STORE_PICKUP, SAME_DAY_DELIVERY, MULTI_DAY_DELIVERY

অবস্থা প্রয়োজনীয়

অর্ডারটির বর্তমান অবস্থা।

উদাহরণস্বরূপ: "দেরি হচ্ছে", "পরিবহনের পথে", "বিলম্বিত", "পাঠানো হয়েছে", "বিতরণ করা হয়েছে", "স্টক নেই", "অর্ডার প্রস্তুত"

মুক্ত পাঠ্য

প্রস্তাবিত লেখার আকার: ২৫ অক্ষর (অতিরিক্ত দীর্ঘ লেখার শেষে ডট ডট চিহ্ন দেখা যাবে)

অর্ডার করার সময় প্রয়োজনীয়

যে ইপক টাইমস্ট্যাম্পে (মিলিসেকেন্ডে) অর্ডারটি দেওয়া হয়েছিল।

প্রত্যাশিত ডেলিভারি সময়ের উইন্ডো উপস্থিত না থাকলে অর্ডারের সময় প্রদর্শিত হবে।

মিলিসেকেন্ডে ইপক টাইমস্ট্যাম্প
অ্যাকশন উরি প্রয়োজনীয়

পার্টনারের অ্যাপে অর্ডার ট্র্যাকিংয়ের ডিপ লিঙ্ক।

উরি
অর্ডার ডেলিভারি টাইম উইন্ডো (ঐচ্ছিক) - অর্ডার দেওয়ার সময় থেকে প্রত্যাশিত/প্রকৃত ডেলিভারির সময় পর্যন্ত ট্র্যাক করা অর্ডারের জন্য একটি সময়সীমা নির্ধারণ করুন।
অর্ডার ডেলিভারির সময়সীমা - শুরুর সময় ঐচ্ছিক

মিলিসেকেন্ডে ইপক টাইমস্ট্যাম্প, যে সময়ে বা যার পরে অর্ডারটি ডেলিভার করা হবে বা পিকআপের জন্য প্রস্তুত হবে।

মিলিসেকেন্ডে ইপক টাইমস্ট্যাম্প
অর্ডার ডেলিভারির সময়সীমা - শেষ সময় ঐচ্ছিক

মিলিসেকেন্ডে ইপক টাইমস্ট্যাম্প, যার আগে বা সেই সময়ে অর্ডারটি ডেলিভারি করা হবে বা পিকআপের জন্য প্রস্তুত থাকবে।

মিলিসেকেন্ডে ইপক টাইমস্ট্যাম্প
পোস্টারের ছবি ঐচ্ছিক

অর্ডারের অন্তর্ভুক্ত একটি পণ্যের ছবি।

প্রস্তাবিত অ্যাসপেক্ট রেশিও হলো ১:১

নির্দেশনার জন্য ছবির বিবরণ দেখুন।
আইটেমের সংখ্যা ঐচ্ছিক অর্ডারে থাকা আইটেমের সংখ্যা। পূর্ণসংখ্যা >= 1
বর্ণনা ঐচ্ছিক

অর্ডারের আইটেমগুলো বর্ণনা করার জন্য একটিমাত্র অনুচ্ছেদ।

দ্রষ্টব্য: ব্যবহারকারীকে হয় বিবরণ অথবা উপশিরোনাম তালিকা দেখানো হবে, উভয়ই নয়।

মুক্ত পাঠ্য

প্রস্তাবিত লেখার আকার: ১৮০ অক্ষর

সাবটাইটেল তালিকা ঐচ্ছিক

সর্বোচ্চ ৩টি সাবটাইটেল, এবং প্রতিটি সাবটাইটেল এক লাইনের লেখা হবে।

দ্রষ্টব্য: ব্যবহারকারীকে হয় বিবরণ অথবা উপশিরোনাম তালিকা দেখানো হবে, উভয়ই নয়।

মুক্ত পাঠ্য

প্রতিটি উপশিরোনামের জন্য প্রস্তাবিত লেখার আকার: সর্বোচ্চ ৫০ অক্ষর

অর্ডারের মূল্য - বর্তমান মূল্য ঐচ্ছিক অর্ডারটির বর্তমান মূল্য। মুক্ত পাঠ্য
অর্ডার নম্বর ঐচ্ছিক অর্ডার নম্বর/আইডি যা অর্ডারটিকে স্বতন্ত্রভাবে শনাক্ত করতে ব্যবহার করা যেতে পারে।

মুক্ত পাঠ্য

প্রস্তাবিত লেখার আকার: সর্বোচ্চ ২৫ অক্ষর

ট্র্যাকিং নম্বর ঐচ্ছিক অর্ডার/পার্সেল ডেলিভারির জন্য ট্র্যাকিং নম্বর, যদি অর্ডারটির ডেলিভারির প্রয়োজন হয়।

মুক্ত পাঠ্য

প্রস্তাবিত লেখার আকার: সর্বোচ্চ ২৫ অক্ষর

ছবির স্পেসিফিকেশন

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

আকৃতির অনুপাত সর্বনিম্ন পিক্সেল প্রস্তাবিত পিক্সেল

বর্গক্ষেত্র (১x১)

বৈশিষ্ট্যহীন ক্লাস্টারগুলির জন্য পছন্দনীয়

৩০০x৩০০ ১২০০x১২০০

ভূদৃশ্য (১.৯১x১)

বৈশিষ্ট্যপূর্ণ ক্লাস্টারগুলির জন্য পছন্দনীয়

৬০০x৩১৪ ১২০০x৬২৮
প্রতিকৃতি (৪x৫) ৪৮০x৬০০ ৯৬০x১২০০

ফাইল ফরম্যাট

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

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

৫১২০ কেবি

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

  • ছবির নিরাপদ এলাকা: আপনার গুরুত্বপূর্ণ বিষয়বস্তু ছবির মাঝের ৮০% অংশে রাখুন।
  • একটি স্বচ্ছ ব্যাকগ্রাউন্ড ব্যবহার করুন, যাতে ছবিটি ডার্ক এবং লাইট থিম সেটিংসে সঠিকভাবে প্রদর্শিত হয়।

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

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

AppEngageShoppingClient শপিং ক্লাস্টার প্রকাশ করার জন্য দায়ী।

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

  • isServiceAvailable
  • publishRecommendationClusters
  • publishFeaturedCluster
  • publishShoppingCarts
  • publishShoppingLists
  • publishShoppingReorderCluster
  • publishShoppingOrderTrackingCluster
  • publishUserAccountManagementRequest
  • updatePublishStatus
  • deleteRecommendationsClusters
  • deleteFeaturedCluster
  • deleteShoppingCartCluster
  • deleteShoppingListCluster
  • deleteShoppingReorderCluster
  • deleteShoppingOrderTrackingCluster
  • deleteUserManagementCluster
  • deleteClusters

isServiceAvailable

পরিষেবাটি ইন্টিগ্রেশনের জন্য উপলব্ধ কিনা এবং কন্টেন্টটি ডিভাইসে প্রদর্শন করা যাবে কিনা, তা যাচাই করতে এই এপিআইটি ব্যবহৃত হয়।

কোটলিন

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 অবজেক্টগুলোর একটি তালিকা প্রকাশ করতে ব্যবহৃত হয়।

একটি RecommendationCluster অবজেক্টের নিম্নলিখিত অ্যাট্রিবিউটগুলো থাকতে পারে:

বৈশিষ্ট্য প্রয়োজনীয়তা বর্ণনা
শপিং সত্তার তালিকা প্রয়োজনীয় এই সুপারিশ ক্লাস্টারের সুপারিশগুলো গঠনকারী ShoppingEntity অবজেক্টগুলোর একটি তালিকা।
শিরোনাম প্রয়োজনীয়

সুপারিশ ক্লাস্টারের শিরোনাম।

প্রস্তাবিত লেখার আকার: ২৫ অক্ষরের কম (অতিরিক্ত দীর্ঘ লেখার শেষে ডট ডট চিহ্ন দেখা যেতে পারে)

উপশিরোনাম ঐচ্ছিক সুপারিশ ক্লাস্টারের উপশিরোনাম।
অ্যাকশন উরি ঐচ্ছিক

পার্টনার অ্যাপের সেই পৃষ্ঠার ডিপ লিঙ্ক, যেখানে ব্যবহারকারীরা সুপারিশগুলোর সম্পূর্ণ তালিকা দেখতে পারবেন।

দ্রষ্টব্য: অ্যাট্রিবিউশনের জন্য আপনি ডিপ লিঙ্ক ব্যবহার করতে পারেন। এই প্রায়শই জিজ্ঞাসিত প্রশ্নাবলী (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

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

কোটলিন

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

জাভা

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

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

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

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

publishShoppingCarts

এই এপিআইটি ShoppingCart অবজেক্টের একটি তালিকা প্রকাশ করতে ব্যবহৃত হয়। এটি সেইসব ডেভেলপার পার্টনারদের জন্য প্রযোজ্য যারা প্রতিটি মার্চেন্টের জন্য আলাদা কার্ট প্রকাশ করেন। এই এপিআই ব্যবহার করার সময় শিরোনামে মার্চেন্টের নাম অন্তর্ভুক্ত করুন।

কোটলিন

client.publishShoppingCarts(
            PublishShoppingCartClustersRequest.Builder()
                .addShoppingCart(
                    ShoppingCart.Builder()
                        ...
                        .build())
                .build())

জাভা

client.publishShoppingCarts(
            new PublishShoppingCartClustersRequest.Builder()
                .addShoppingCart(
                    new ShoppingCart.Builder()
                        ...
                        .build())
                .build())

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

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

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

publishShoppingLists

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

কোটলিন

client.publishShoppingLists(
            PublishShoppingListsRequest.Builder()
                .addShoppingList(
                    ShoppingList.Builder()
                        ...
                        .build())
                .build())

জাভা

client.publishShoppingLists(
            new PublishShoppingListsRequest.Builder()
                .addShoppingList(
                    new ShoppingListEntity.Builder()
                        ...
                        .build())
                .build());

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

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

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

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

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

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

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

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

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

যদি কোনো অভ্যন্তরীণ ব্যবসায়িক কারণে কোনো ক্লাস্টারই প্রকাশিত না হয়, তাহলে আমরা 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

যদি কোনো ব্যবহারকারী লগ ইন না করার কারণে কন্টেন্টটি প্রকাশিত না হয়, তাহলে গুগল সাইন ইন কার্ডটি প্রকাশ করার পরামর্শ দেবে। যদি কোনো কারণে প্রোভাইডাররা সাইন ইন কার্ডটি প্রকাশ করতে না পারেন, তাহলে আমরা 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

এই এপিআইটি রিকমেন্ডেশন ক্লাস্টারগুলোর কন্টেন্ট মুছে ফেলার জন্য ব্যবহৃত হয়।

কোটলিন

client.deleteRecommendationClusters()

জাভা

client.deleteRecommendationClusters();

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

deleteFeaturedCluster

এই এপিআইটি ফিচার্ড ক্লাস্টারের কন্টেন্ট মুছে ফেলার জন্য ব্যবহৃত হয়।

কোটলিন

client.deleteFeaturedCluster()

জাভা

client.deleteFeaturedCluster();

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

deleteShoppingCartCluster

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

কোটলিন

client.deleteShoppingCartCluster()

জাভা

client.deleteShoppingCartCluster();

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

deleteShoppingListCluster

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

কোটলিন

client.deleteShoppingListCluster()

জাভা

client.deleteShoppingListCluster();

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

deleteShoppingReorderCluster

এই এপিআইটি শপিং রিঅর্ডার ক্লাস্টারের কন্টেন্ট মুছে ফেলার জন্য ব্যবহৃত হয়।

কোটলিন

client.deleteShoppingReorderCluster()

জাভা

client.deleteShoppingReorderCluster();

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

deleteShoppingOrderTrackingCluster

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

কোটলিন

client.deleteShoppingOrderTrackingCluster()

জাভা

client.deleteShoppingOrderTrackingCluster();

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

deleteUserManagementCluster

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

কোটলিন

client.deleteUserManagementCluster()

জাভা

client.deleteUserManagementCluster();

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

deleteClusters

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

কোটলিন

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());

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

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

পাবলিশ এপিআই (publish API) থেকে টাস্কের ফলাফল শুনে নেওয়ার জন্য বিশেষভাবে সুপারিশ করা হচ্ছে, যাতে একটি সফল টাস্ক পুনরুদ্ধার করে পুনরায় জমা দেওয়ার জন্য পরবর্তী পদক্ষেপ নেওয়া যায়।

কোটলিন

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 সার্ভিস কলটি খুব ঘন ঘন করা হয়।

ধাপ ৩: ব্রডকাস্ট ইন্টেন্ট পরিচালনা করুন

একটি জবের মাধ্যমে কন্টেন্ট পাবলিশ এপিআই কল করার পাশাপাশি, কন্টেন্ট পাবলিশের অনুরোধ গ্রহণ করার জন্য একটি 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),
                           com.google.android.engage.service.BroadcastReceiverPermissions.BROADCAST_REQUEST_DATA_PUBLISH_PERMISSION,
                           /*scheduler=*/null)

// Register Featured Cluster Publish Intent
  context.registerReceiver(AppEngageBroadcastReceiver(),
                           IntentFilter(Intents.ACTION_PUBLISH_FEATURED),
                           com.google.android.engage.service.BroadcastReceiverPermissions.BROADCAST_REQUEST_DATA_PUBLISH_PERMISSION,
                           /*scheduler=*/null)

// Register Shopping Cart Cluster Publish Intent
  context.registerReceiver(AppEngageBroadcastReceiver(),
                           IntentFilter(Intents.ACTION_PUBLISH_SHOPPING_CART),
                           com.google.android.engage.service.BroadcastReceiverPermissions.BROADCAST_REQUEST_DATA_PUBLISH_PERMISSION,
                           /*scheduler=*/null)

// Register Shopping List Cluster Publish Intent
  context.registerReceiver(AppEngageBroadcastReceiver(),
                           IntentFilter(Intents.ACTION_PUBLISH_SHOPPING_LIST),
                           com.google.android.engage.service.BroadcastReceiverPermissions.BROADCAST_REQUEST_DATA_PUBLISH_PERMISSION,
                           /*scheduler=*/null)

// Register Reorder Cluster Publish Intent
  context.registerReceiver(AppEngageBroadcastReceiver(),
                           IntentFilter(Intents.ACTION_PUBLISH_REORDER_CLUSTER),
                           com.google.android.engage.service.BroadcastReceiverPermissions.BROADCAST_REQUEST_DATA_PUBLISH_PERMISSION,
                           /*scheduler=*/null)

// Register Shopping Order Tracking Cluster Publish Intent
  context.registerReceiver(AppEngageBroadcastReceiver(),
                           IntentFilter(Intents.ACTION_PUBLISH_SHOPPING_ORDER_TRACKING_CLUSTER),
                           com.google.android.engage.service.BroadcastReceiverPermissions.BROADCAST_REQUEST_DATA_PUBLISH_PERMISSION,
                           /*scheduler=*/null)
}

জাভা

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),
                         com.google.android.engage.service.BroadcastReceiverPermissions.BROADCAST_REQUEST_DATA_PUBLISH_PERMISSION,
                         /*scheduler=*/null);

// Register Featured Cluster Publish Intent
context.registerReceiver(new AppEngageBroadcastReceiver(),
                         new IntentFilter(com.google.android.engage.service.Intents.ACTION_PUBLISH_FEATURED),
                         com.google.android.engage.service.BroadcastReceiverPermissions.BROADCAST_REQUEST_DATA_PUBLISH_PERMISSION,
                         /*scheduler=*/null);

// Register Shopping Cart Cluster Publish Intent
context.registerReceiver(new AppEngageBroadcastReceiver(),
                         new IntentFilter(com.google.android.engage.shopping.service.Intents.ACTION_PUBLISH_SHOPPING_CART),
                         com.google.android.engage.service.BroadcastReceiverPermissions.BROADCAST_REQUEST_DATA_PUBLISH_PERMISSION,
                         /*scheduler=*/null);

// Register Shopping List Cluster Publish Intent
context.registerReceiver(new AppEngageBroadcastReceiver(),
                         new IntentFilter(com.google.android.engage.shopping.service.Intents.ACTION_PUBLISH_SHOPPING_LIST),
                         com.google.android.engage.service.BroadcastReceiverPermissions.BROADCAST_REQUEST_DATA_PUBLISH_PERMISSION,
                         /*scheduler=*/null);

// Register Reorder Cluster Publish Intent
context.registerReceiver(new AppEngageBroadcastReceiver(),
                         new IntentFilter(com.google.android.engage.shopping.service.Intents.ACTION_PUBLISH_REORDER_CLUSTER),
                         com.google.android.engage.service.BroadcastReceiverPermissions.BROADCAST_REQUEST_DATA_PUBLISH_PERMISSION,
                         /*scheduler=*/null);

// 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),
                         com.google.android.engage.service.BroadcastReceiverPermissions.BROADCAST_REQUEST_DATA_PUBLISH_PERMISSION,
                         /*scheduler=*/null);

}
  • আপনার AndroidManifest.xml ফাইলে <receiver> ট্যাগ ব্যবহার করে একটি ইমপ্লিমেন্টেশন স্ট্যাটিক্যালি ডিক্লেয়ার করুন। এর ফলে অ্যাপ্লিকেশনটি চালু না থাকা অবস্থাতেও ব্রডকাস্ট ইন্টেন্ট গ্রহণ করতে পারে এবং কন্টেন্ট পাবলিশও করতে পারে।

<application>
   <receiver
      android:name=".AppEngageBroadcastReceiver"
      android:permission="com.google.android.engage.REQUEST_ENGAGE_DATA"
      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 এই ইন্টেন্টটি পেলে একটি publishShoppingCarts কল শুরু করার পরামর্শ দেওয়া হয়।
  • com.google.android.engage.action.shopping.PUBLISH_SHOPPING_LIST এই ইন্টেন্টটি পেলে একটি publishShoppingLists কল শুরু করার পরামর্শ দেওয়া হয়।
  • com.google.android.engage.action.shopping.PUBLISH_REORDER_CLUSTER এই ইন্টেন্টটি পাওয়া গেলে একটি publishReorderCluster কল শুরু করার পরামর্শ দেওয়া হয়।
  • com.google.android.engage.action.shopping.PUBLISH_SHOPPING_ORDER_TRACKING_CLUSTER এই ইন্টেন্টটি পাওয়া গেলে একটি publishShoppingOrderTrackingCluster কল শুরু করার পরামর্শ দেওয়া হয়।

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

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

প্রায়শই জিজ্ঞাসিত প্রশ্নাবলী

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

যোগাযোগ করুন

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

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

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

  • engage-developers@google.com এ একটি ইমেল পাঠান এবং আপনার ইন্টিগ্রেটেড APK-টি সংযুক্ত করুন, যা গুগলের পরীক্ষার জন্য প্রস্তুত।
  • ইন্টিগ্রেশনটি প্রত্যাশিতভাবে কাজ করছে কিনা তা নিশ্চিত করার জন্য গুগল অভ্যন্তরীণভাবে যাচাই ও পর্যালোচনা করে। কোনো পরিবর্তনের প্রয়োজন হলে, গুগল প্রয়োজনীয় বিবরণসহ আপনার সাথে যোগাযোগ করে।
  • টেস্টিং সম্পন্ন হলে এবং কোনো পরিবর্তনের প্রয়োজন না থাকলে, গুগল আপনার সাথে যোগাযোগ করে জানিয়ে দেয় যে আপনি আপডেট করা ও সমন্বিত APK ফাইলটি প্লে স্টোরে প্রকাশ করা শুরু করতে পারেন।
  • আপনার আপডেট করা APK প্লে স্টোরে প্রকাশিত হয়েছে বলে গুগল নিশ্চিত করার পর, আপনার Recommendation , Featured , Shopping Cart , Shopping List , Reorder Cluster এবং Shopping Order Tracking Cluster প্রকাশিত হতে পারে এবং ব্যবহারকারীদের কাছে দৃশ্যমান হতে পারে।