পরিচালিত Google Play আপনাকে আপনার এন্টারপ্রাইজ গ্রাহকদের জন্য স্টোর লেআউট ডিজাইন এবং তৈরি করতে দেয়। অ্যাপগুলিকে ক্লাস্টারে গোষ্ঠীবদ্ধ করে, স্টোর পৃষ্ঠাগুলি সেট আপ করে এবং স্টোরের মধ্যে একাধিক পৃষ্ঠাগুলিতে অ্যাক্সেস প্রদান করে এমন দ্রুত লিঙ্কগুলি যোগ করে আপনি একটি স্টোর লেআউট কাস্টমাইজ করতে পারেন।
পরিচালিত Google Play স্টোরে শেষ ব্যবহারকারীর জন্য উপলব্ধ করা সমস্ত অ্যাপগুলিকে প্রথমে একজন IT অ্যাডমিন দ্বারা অনুমোদিত হতে হবে, ব্যবহারকারীর জন্য অনুমোদিত হতে হবে এবং একটি ক্লাস্টারে যোগ করতে হবে। (এই প্রক্রিয়া সম্পর্কে আরো বিস্তারিত জানার জন্য একটি স্টোর লেআউটে অ্যাপ যোগ করা দেখুন)।
একটি দোকান লেআউট উপাদান
একটি স্টোর লেআউট সাধারণত পরিচালিত Google Play-এ ব্যবহারকারীদের কাছে প্রদর্শিত পৃষ্ঠাগুলির একটি সিরিজ নিয়ে গঠিত। প্রতিটি পৃষ্ঠায় এক বা একাধিক গ্রুপের অ্যাপ থাকতে পারে, যাকে ক্লাস্টার বলা হয়। প্রতিটি ক্লাস্টারে এক বা একাধিক অ্যাপ থাকে।
ক্লাস্টারগুলি আপনাকে সম্পর্কিত অ্যাপগুলিকে গোষ্ঠীভুক্ত করতে দেয়। উদাহরণস্বরূপ, আপনি কাজের সাথে সম্পর্কিত অ্যাপগুলির জন্য একটি পৃষ্ঠা তৈরি করতে পারেন যাতে একটি প্রয়োজনীয় ক্লাস্টার এবং একটি Getting Things Done ক্লাস্টার রয়েছে৷ এসেনশিয়াল ক্লাস্টারে নোটপ্যাড+, গুগল স্লাইড ইত্যাদির মতো অ্যাপ থাকতে পারে। Getting Things Done ক্লাস্টারে OneNote, Wunderlist, Any.do, এবং অন্যান্য ট্র্যাকিং, ক্যালেন্ডার এবং মিটিং-প্ল্যানিং অ্যাপের মতো অ্যাপ অন্তর্ভুক্ত থাকতে পারে (চিত্র 1 দেখুন)।
আপনি যখন একটি পৃষ্ঠা তৈরি করেন, আপনি পৃষ্ঠার শীর্ষে 10টি দ্রুত লিঙ্ক যোগ করতে পারেন৷ দ্রুত লিঙ্কগুলি ব্যবহারকারীদের অন্য পৃষ্ঠাগুলিতে যেতে দেয়। উদাহরণস্বরূপ, চিত্র 1 ব্যবসা, যোগাযোগ এবং ফিনান্স পৃষ্ঠাগুলির জন্য দ্রুত লিঙ্কগুলি দেখায়৷
চিত্র 1 একটি ডিভাইসে দেখা একটি স্টোর লেআউটের কিছু মূল উপাদান দেখায়:
- দ্রুত লিঙ্ক : ঐচ্ছিক লিঙ্ক যা অন্যান্য পৃষ্ঠাগুলিতে অ্যাক্সেস প্রদান করে। দ্রুত লিঙ্কগুলি যে পৃষ্ঠার দিকে নির্দেশ করে তার নাম নেয়৷
- পৃষ্ঠা : অ্যাপের ক্লাস্টার সমন্বিত একটি নামযুক্ত, উল্লম্বভাবে স্ক্রোলযোগ্য পৃষ্ঠা।
- ক্লাস্টার ( সংগ্রহও বলা হয়): অ্যাপগুলির একটি নামযুক্ত, অনুভূমিকভাবে স্ক্রোলযোগ্য ক্যারোজেল। পৃষ্ঠায় একটি একক ক্লাস্টার থাকলে পূর্ণ পৃষ্ঠায় প্রসারিত হয় (বা উল্লম্বভাবে স্ক্রোলযোগ্য করতে "আরো" ক্লিক করুন)।
স্টোর লেআউট উপাদানের সীমাবদ্ধতা
আপনার গ্রাহকদের জন্য স্টোর লেআউট ডিজাইন এবং প্রয়োগ করার সময়, এই সীমাগুলি মনে রাখবেন (এই সীমাগুলির বেশিরভাগই ভাল UI ডিজাইনের নীতিগুলির কারণে):
- প্রতি ক্লাস্টারে 100টি অ্যাপ
- প্রতি পৃষ্ঠায় 30 টি ক্লাস্টার
- প্রতি পৃষ্ঠায় 10টি দ্রুত লিঙ্ক
- দোকান প্রতি 100 পৃষ্ঠা
- এন্টারপ্রাইজ প্রতি 1,000টি পণ্য (অনুমোদিত অ্যাপ)
স্থানীয় পৃষ্ঠা এবং ক্লাস্টার নাম
পরিচালিত Google Play স্টোর লেআউট স্টোর পৃষ্ঠা এবং স্টোর ক্লাস্টারগুলির জন্য স্থানীয় নাম সমর্থন করে। আপনি যখন একটি পৃষ্ঠা বা ক্লাস্টার তৈরি করেন আপনি IETF ভাষা ট্যাগ হিসাবে সমর্থিত লোকেলের একটি তালিকা এবং সংশ্লিষ্ট স্থানীয় নাম প্রদান করেন। যদি কোনো ব্যবহারকারীর লোকেল সমর্থিত তালিকায় না থাকে, তাহলে সিস্টেম উপলব্ধ সবচেয়ে কাছের মিল বেছে নেয়। উদাহরণস্বরূপ, যদি en-GB উপলব্ধ না হয় তবে সিস্টেমটি পরিবর্তে en-US বেছে নেয়। কোনো কাছাকাছি মিল উপলব্ধ না হলে, সিস্টেম তালিকার প্রথম নামটি বেছে নেয়।
স্টোর লেআউটে অ্যাপ যোগ করা হচ্ছে
policy.productPolicy
উপস্থিত সমস্ত অ্যাপ স্বয়ংক্রিয়ভাবে যোগ করা হয় যদি কোনো এন্টারপ্রাইজ একটি বেসিক স্টোর লেআউট ব্যবহার করে। যদি একটি এন্টারপ্রাইজ একটি কাস্টম স্টোর লেআউট ব্যবহার করে, তবে শুধুমাত্র কাস্টম লেআউটে উপস্থিত অ্যাপগুলি এবং productPolicy
তালিকা একটি ডিভাইসে প্রদর্শিত হবে৷ policy.productPolicy
উপস্থিত সমস্ত আইটেম প্লে স্টোরে অনুসন্ধানযোগ্য।
একটি শেষ ব্যবহারকারীর জন্য পরিচালিত Google Play স্টোর থেকে একটি অ্যাপ ইনস্টল করার জন্য, অ্যাপটিকে অবশ্যই ব্যবহারকারীর ডিভাইসের সাথে সামঞ্জস্যপূর্ণ হতে হবে এবং নিম্নলিখিত শর্ত পূরণ করতে হবে:
- ব্যবহারকারীর অনুমতি তালিকায় যোগ করা হয়েছে ( ডিভাইস রিসোর্সে
policy.productPolicy
ব্যবহার করে) এবংpolicy.productAvailabilityPolicy
পলিসিWHITELIST
এ সেট করা হয়েছে , অথবাpolicy.productAvailabilityPolicy
ALL
এ সেট করা হয়েছে (যেকোনো অ্যাপের সার্চ এবং ইনস্টলেশনের অনুমতি দিয়ে)।
একজন ব্যবহারকারী এই শর্তগুলি পূরণ করে এমন কোনও অ্যাপ খুঁজে পেতে এবং ইনস্টল করতে পরিচালিত Google Play-তে অন্তর্নির্মিত অনুসন্ধান বৈশিষ্ট্য ব্যবহার করতে পারেন। যাইহোক, অ্যাপটি শুধুমাত্র একটি বেসিক স্টোর লেআউটে দৃশ্যমান হবে অথবা যদি আপনি অ্যাপটিকে একটি সংগ্রহ/ক্লাস্টারে যোগ করে থাকেন।
প্রত্যাহারকৃত অনুমোদন সহ অ্যাপ
অ্যাডমিনিস্ট্রেটররা যেকোনও সময় একটি অ্যাপের অনুমোদন বাতিল করতে পারেন (এটির অনুমোদন প্রত্যাহার করতে পারেন)। প্রত্যাহারকৃত অনুমোদন সহ অ্যাপগুলি এখনও ক্লাস্টার এবং ব্যবহারকারীদের অনুমতি তালিকায় যোগ করা যেতে পারে, তবে ব্যবহারকারীরা সেগুলি দেখতে পাবে না বা পরিচালিত Google Play স্টোর থেকে সেগুলি ইনস্টল করার ক্ষমতা পাবে না৷ প্রত্যাহারকৃত অনুমোদন সহ একটি অ্যাপ পুনরায় অনুমোদিত হলে, অ্যাপটি ব্যবহারকারীদের জন্য আবার পরিচালিত Google Play স্টোরে উপলব্ধ করা হবে।
বেসিক স্টোর লেআউট
ডিফল্টরূপে, আপনার প্রতিটি গ্রাহকের জন্য একটি মৌলিক স্টোর লেআউট সক্ষম করা আছে। মৌলিক লেআউটে 1 পৃষ্ঠা এবং 1 টি ক্লাস্টার রয়েছে, সর্বাধিক 1000টি অ্যাপ দেখায়। পৃষ্ঠায় থাকা অ্যাপগুলি তাদের product ID
মান অনুসারে সাজানো হয়েছে। আপনি যদি একটি কাস্টম স্টোর লেআউট তৈরি করেন ( storeLayoutType ="custom"
সেট করে), বেসিক স্টোর লেআউট অক্ষম করা হয়।
কাস্টম স্টোর লেআউট তৈরি করুন
EMM তাদের প্রতিটি এন্টারপ্রাইজ গ্রাহকদের জন্য কাস্টম স্টোর লেআউট তৈরি করতে পারে। কাস্টম স্টোর লেআউট আপনাকে অ্যাপের ক্লাস্টার সেট আপ করতে, পৃষ্ঠাগুলিতে নির্দিষ্ট ক্লাস্টার যোগ করতে এবং দ্রুত লিঙ্কগুলি নির্দিষ্ট করতে দেয়। যেহেতু আপনি প্রতিটি ক্লাস্টার তৈরি করে এমন অ্যাপ্লিকেশানগুলিকে সংজ্ঞায়িত করেন, আপনি সম্পর্কিত অ্যাপগুলিকে গোষ্ঠীভুক্ত করতে ক্লাস্টারগুলি ব্যবহার করতে পারেন (উদাহরণস্বরূপ, "প্রয়োজনীয়" এবং "জিনিংস সম্পন্ন করা")। ব্যবহারকারীরা শুধুমাত্র সেইসব অ্যাপ দেখতে পান যাদের অনুমতি আইটি অ্যাডমিন গ্রহণ করেছেন।
Google Play EMM API রেফারেন্সে আপনি একটি কাস্টম স্টোর লেআউট তৈরি করতে ব্যবহার করেন এমন সংস্থান এবং সংশ্লিষ্ট পদ্ধতির তথ্য রয়েছে, বিশেষ করে, স্টোরলেআউটপেজ এবং স্টোরলেআউটক্লাস্টার । নীচের বিভাগগুলিতে বর্ণিত পদক্ষেপগুলি আপনাকে একটি মৌলিক উদাহরণের মাধ্যমে নিয়ে যায়।
প্রোগ্রামিং কাজ
আপনার গ্রাহকদের জন্য একটি কাস্টম পরিচালিত Google Play স্টোর লেআউট তৈরি করতে, আপনাকে অবশ্যই:
- একটি পৃষ্ঠা তৈরি করুন
- পৃষ্ঠাগুলির ভিতরে এক বা একাধিক ক্লাস্টার তৈরি করুন
- হোমপেজ সেট করুন
ন্যূনতম, আপনাকে অবশ্যই একটি স্টোর লেআউটের জন্য একটি ক্লাস্টার সমন্বিত অন্তত একটি পৃষ্ঠা তৈরি করতে হবে এবং ক্লাস্টারে অন্তত একটি অ্যাপ থাকতে হবে। আপনাকে অবশ্যই হোমপেজ সেট করতে হবে। আপনি যদি একাধিক পৃষ্ঠা তৈরি করেন, আপনার কাছে প্রতিটি পৃষ্ঠার শীর্ষে প্রদর্শনের জন্য দ্রুত লিঙ্ক সেট করার বিকল্প রয়েছে।
একটি কাস্টম পরিচালিত প্লে স্টোর লেআউট তৈরির জন্য প্রোগ্রামিং কাজগুলি নীচে বর্ণনা করা হয়েছে, একটি স্টোর লেআউটের একটি সম্পূর্ণ উদাহরণ অনুসরণ করে৷
একটি পৃষ্ঠা তৈরি করুন
একটি পৃষ্ঠা এক বা একাধিক ক্লাস্টার নিয়ে গঠিত। প্রতিটি ক্লাস্টারে অন্তত একটি অ্যাপ থাকে। পৃষ্ঠাগুলি নির্দিষ্ট এন্টারপ্রাইজের জন্য তৈরি করা হয়েছে, তাই আপনাকে অবশ্যই নির্দিষ্ট এন্টারপ্রাইজ দৃষ্টান্তে ( enterpriseId
) অপারেশন করতে হবে। আপনি প্রতিটি পৃষ্ঠার জন্য একটি ব্যবহারকারী-বান্ধব নাম এবং স্থানীয়করণের তথ্য প্রদান করতে পারেন, সাথে pageId
একটি তালিকা যা ব্যবহারকারীরা পৃষ্ঠা থেকে পৌঁছাতে পারে৷ নতুন পৃষ্ঠাটি এখানে দেখানো হিসাবে insert
অপারেশন ( Storelayoutpages.insert ) দিয়ে তৈরি করা হয়েছে:
public StorePage createPage(String enterpriseId, String name)
throws IOException {
List<LocalizedText> names =
ImmutableList.of(
new LocalizedText().setLocale("en").setText(name));
StorePage storePage = new StorePage();
storePage.setName(names);
return androidEnterprise.storelayoutpages()
.insert(enterpriseId, storePage)
.execute();
}
একটি ক্লাস্টার তৈরি করুন
ক্লাস্টারে অ্যাপের গ্রুপ রয়েছে। ক্লাস্টারটি প্রথমে তৈরি করা হয় এবং তারপরে এটি একটি পৃষ্ঠায় যুক্ত করা যেতে পারে। একটি ক্লাস্টার তৈরি করতে, স্টোরলেআউটক্লাস্টারের insert
অপারেশন শুরু করুন এবং এই বৈশিষ্ট্যগুলির জন্য মান পাস করুন:
- ক্লাস্টারে যে
productId
থাকা উচিত তার একটি তালিকা (উদাহরণস্বরূপ, জিমেইলেরproductId
হলapp:com.google.android.gm
) - ক্লাস্টারের জন্য একটি ব্যবহারকারী-বান্ধব নাম, যেমন “Getting Things Done”
-
enterpriseId
যা ক্লাস্টারের সাথে যুক্ত হওয়া উচিত -
pageId
(যে পৃষ্ঠায় ক্লাস্টার থাকা উচিত) - পৃষ্ঠায় ক্লাস্টারের বসানো (প্রথম, দ্বিতীয়, এবং তাই)
এখানে একটি উদাহরণ:
private String insertCluster(String enterpriseId, String pageId, String name,
List<String> productIds, String orderInPage) throws IOException {
StoreCluster storeCluster = new StoreCluster();
storeCluster.setName(
ImmutableList.of(
new LocalizedText().setLocale("en").setText(name)));
storeCluster.setProductId(productIds);
storeCluster.setOrderInPage(orderInPage);
return androidEnterprise.storelayoutclusters()
.insert(enterpriseId, pageId, storeCluster)
.execute()
.getId();
}
হোমপেজ সেট করুন
ব্যবহারকারীর ডিভাইসে পরিচালিত Google Play-এ প্রথম যে পৃষ্ঠাটি প্রদর্শিত হয় সেটি হল হোমপেজ৷ একটি EMM হিসাবে আপনি আপনার প্রতিটি গ্রাহকের জন্য একটি হোমপেজ সংজ্ঞায়িত করেন৷ পৃষ্ঠাটি সর্বদা দৃশ্যমান, এমনকি যখন এটি খালি থাকে, এবং এটি মুছে ফেলা যায় না।
এই উদাহরণে, হোমপেজের আইডি নির্দিষ্ট enterpriseId
জন্য আনা হয়েছে:
public StoreLayout getStoreLayout(String enterpriseId) throws IOException {
return androidEnterprise
.enterprises()
.getStoreLayout(enterpriseId)
.execute();
}
এই পরবর্তী উদাহরণটি গ্রাহকের enterpriseId
এবং সেই গ্রাহকের হোমপেজের pageId
প্রদান করে একটি গ্রাহকের জন্য হোমপেজ সেট করে:
public StoreLayout setStoreLayout(String enterpriseId, String homepageId)
throws IOException {
StoreLayout storeLayout = new StoreLayout();
storeLayout.setHomepageId(homepageId);
return androidEnterprise
.enterprises()
.setStoreLayout(enterpriseId, storeLayout)
.execute();
}
দ্রুত লিঙ্ক সেট করুন (ঐচ্ছিক)
প্রতিটি পৃষ্ঠার শীর্ষে দ্রুত লিঙ্কগুলি প্রদর্শিত হয়, যা ব্যবহারকারীদের দোকানের পৃষ্ঠাগুলির মধ্যে সহজেই নেভিগেট করতে সক্ষম করে৷ দ্রুত লিঙ্কগুলি ব্যবহার করতে, প্রথমে পৃষ্ঠাটির জন্য pageId
প্রাপ্ত করুন ( insert
দ্বারা প্রত্যাবর্তিত) এবং পৃষ্ঠায় লিঙ্কটি যুক্ত করুন৷ উদাহরণস্বরূপ, আপনি যদি তিনটি পৃষ্ঠা তৈরি করেন যার pageId
হয় p1
, p2
, p3
, আপনি নিম্নলিখিতগুলি সহ প্রথম পৃষ্ঠা থেকে অন্য দুটি পৃষ্ঠায় দ্রুত লিঙ্ক যোগ করতে পারেন:
StorePage storePage = new StorePage();
storePage.setName(
ImmutableList.of(new LocalizedText().setLocale("en").setText(title)));
storePage.setLink(ImmutableList.of("p2", "p3");
return androidEnterprise.storelayoutpages()
.update(enterpriseId, "p1", storePage)
.execute();
উদাহরণ
এখানে একটি সম্পূর্ণ উদাহরণ যা তিনটি আন্তঃসংযুক্ত পৃষ্ঠার সমন্বয়ে একটি মৌলিক স্টোর তৈরি করে। অনুরূপ অ্যাপের ক্লাস্টার প্রতিটি পৃষ্ঠা তৈরি করে। প্রতিটি পৃষ্ঠা গ্রাহকের enterpriseId
নির্দিষ্ট করে এবং শুধুমাত্র পৃষ্ঠার name
সেট করে তৈরি করা হয়, তার pageId
পাওয়ার জন্য যা তারপর পৃষ্ঠায় একটি দ্রুত লিঙ্ক তৈরি করতে ব্যবহৃত হয়।
// Create a basic page and return the pageId.
private String insertPage(String enterpriseId, String title,
List<String> links) throws IOException {
List<LocalizedText> names =
ImmutableList.of(new LocalizedText().setLocale("en").setText(title));
StorePage page = new StorePage();
page.setName(names);
page.setLink(links);
return enterprise.storelayoutpages().insert(enterpriseId, page).execute().getId();
}
public StoreLayout setStoreLayout(String enterpriseId, String homepageId)
throws IOException {
StoreLayout storeLayout = new StoreLayout();
storeLayout.setHomepageId(homepageId);
return androidEnterprise
.enterprises()
.setStoreLayout(enterpriseId, storeLayout)
.execute();
}
private String insertCluster(String enterpriseId, String pageId, String name,
List<String> productIds, String orderInPage) throws IOException {
StoreCluster cluster = new StoreCluster();
List<LocalizedText> names =
ImmutableList.of(new LocalizedText().setLocale("en").setText(name));
cluster.setName(names);
cluster.setProductId(productIds);
cluster.setOrderInPage(orderInPage);
return androidEnterprise.storelayoutclusters()
.insert(enterpriseId, pageId, cluster)
.execute()
.getId();
}
private void updatePage(String enterpriseId, String pageId, String title,
List<String> links) throws IOException {
List<LocalizedText> names =
ImmutableList.of(new LocalizedText().setLocale("en").setText(title));
StorePage page = new StorePage();
page.setName(names);
page.setLink(links);
enterprise.storelayoutpages()
.update(enterpriseId, pageId, page).execute();
}
private void makeStore(String enterpriseId) throws IOException {
// Create the pages.
String page1 = insertPage(enterpriseId, "Home");
String page2 = insertPage(enterpriseId, "Productivity");
String page3 = insertPage(enterpriseId, "Accounting");
// Set the homepage (page that displays by default when store is opened).
setStoreLayout(enterpriseId, page1);
// Add the links to the pages. This makes a small tree.
updatePage(enterpriseId, page1, "Home", ImmutableList.of(page2, page3));
updatePage(enterpriseId, page2, "Productivity", ImmutableList.of(page1));
updatePage(enterpriseId, page3, "Accounting", ImmutableList.of(page1));
// Add clusters with contents.
insertCluster(
enterpriseId,
page1,
"Getting Things Done",
ImmutableList.of(
"app:com.mytodolist",
"app:com.google.android.gm",
"app:com.google.android.docs"),
"1");
insertCluster(
enterpriseId,
page1,
"Strategy",
ImmutableList.of(
"app:com.myplanner",
"app:com.stratego"),
"2");
insertCluster(
enterpriseId,
page2,
"Editors",
ImmutableList.of(
"app:com.myeditor",
"app:com.betteredit",
"app:com.lazyguy"),
"1");
insertCluster(
enterpriseId,
page2,
"Time Management",
ImmutableList.of(
"app:com.mytimetracker",
"app:com.lazygal",
"app:com.lazyguy"),
"2");
insertCluster(
enterpriseId,
page2,
"Accounting",
ImmutableList.of(
"app:com.mymoney",
"app:com.taxpro",
"app:com.balances"),
"3");
}