पसंद के मुताबिक स्टोर लेआउट बनाना

'कारोबार के लिए Google Play' आपको अपने एंटरप्राइज़ ग्राहकों के लिए, स्टोर लेआउट डिज़ाइन करने और बनाने की सुविधा देता है. स्टोर लेआउट को अपनी पसंद के मुताबिक बनाया जा सकता है. इसके लिए, आपको ऐप्लिकेशन को क्लस्टर में ग्रुप करना होगा, स्टोर पेज सेट अप करने होंगे, और स्टोर में कई पेजों का ऐक्सेस देने वाले क्विक लिंक जोड़ने होंगे.

'कारोबार के लिए Google Play Store' में, किसी असली उपयोगकर्ता को उपलब्ध कराए जाने वाले सभी ऐप्लिकेशन के लिए, सबसे पहले किसी आईटी एडमिन से मंज़ूरी लेनी होगी, उपयोगकर्ता को मंज़ूरी मिली होनी चाहिए, और उन्हें क्लस्टर में जोड़ा जाना चाहिए. (इस प्रोसेस के बारे में ज़्यादा जानकारी के लिए, स्टोर लेआउट में ऐप्लिकेशन जोड़ना देखें).

स्टोर लेआउट के एलिमेंट

स्टोर लेआउट में आम तौर पर पेजों की एक सीरीज़ होती है, जिसे 'कारोबार के लिए Google Play' में उपयोगकर्ताओं को दिखाया जाता है. हर पेज में ऐप्लिकेशन के एक या उससे ज़्यादा ग्रुप हो सकते हैं, जिन्हें क्लस्टर कहा जाता है. हर क्लस्टर में एक या उससे ज़्यादा ऐप्लिकेशन होते हैं.

क्लस्टर की मदद से, मिलते-जुलते ऐप्लिकेशन का ग्रुप बनाया जा सकता है. उदाहरण के लिए, आपके पास ऑफ़िस से जुड़े ऐप्लिकेशन के लिए एक ऐसा पेज बनाने का विकल्प है जिसमें Essentials क्लस्टर और होने वाले टास्क का क्लस्टर शामिल हो. Essentials के क्लस्टर में, Notepad+, Google Slides वगैरह जैसे ऐप्लिकेशन शामिल हो सकते हैं. 'हो गया थिंग्स' क्लस्टर में OneNote, Wunderlist, Any.do, और ट्रैकिंग, कैलेंडर, और मीटिंग की प्लानिंग करने वाले अन्य ऐप्लिकेशन शामिल हो सकते हैं (इमेज 1 देखें).

कोई पेज बनाते समय, सबसे ऊपर 10 क्विक लिंक जोड़े जा सकते हैं. क्विक लिंक की मदद से, लोग सीधे दूसरे पेजों पर जा सकते हैं. उदाहरण के लिए, पहली इमेज में कारोबार, कम्यूनिकेशन, और वित्त पेजों के लिए झटपट लिंक दिखाए गए हैं.

पहली इमेज में, स्टोर लेआउट के कुछ मुख्य एलिमेंट दिखाए गए हैं, जैसा कि किसी डिवाइस पर दिखाया गया है:

उपयोगकर्ता के डिवाइस की सैंपल स्क्रीन, जिसमें स्टोर लेआउट के एलिमेंट दिखाए गए हैं.
    इनमें क्विक लिंक, पेज, और ऐप्लिकेशन के क्लस्टर शामिल हैं.
पहली इमेज - उपयोगकर्ता के डिवाइस की सैंपल स्क्रीन
  • झटपट लिंक: ऐसे वैकल्पिक लिंक जो दूसरे पेजों को ऐक्सेस करते हैं. क्विक लिंक उस पेज का नाम ले लेते हैं जिस पर वे ले जाते हैं.
  • पेज: एक नाम वाला पेज, जिसे वर्टिकल तरीके से स्क्रोल किया जा सकता है. इसमें कई ऐप्लिकेशन शामिल होते हैं.
  • क्लस्टर (इसे कलेक्शन भी कहा जाता है): ऐप्लिकेशन का नाम और हॉरिज़ॉन्टल रूप से स्क्रोल किया जा सकने वाला कैरसेल. अगर पेज में एक क्लस्टर है, तो पूरा पेज दिखाता है (या वर्टिकल तरीके से स्क्रोल करने के लिए "ज़्यादा" पर क्लिक करें).

स्टोर लेआउट एलिमेंट की सीमाएं

अपने ग्राहकों के लिए स्टोर लेआउट डिज़ाइन और लागू करते समय, इन सीमाओं को ध्यान में रखें (इनमें से ज़्यादातर सीमाएं अच्छे यूज़र इंटरफ़ेस (यूआई) डिज़ाइन की वजह से होती हैं:

  • हर क्लस्टर में 100 ऐप्लिकेशन
  • हर पेज के लिए 30 क्लस्टर
  • हर पेज के लिए 10 क्विक लिंक
  • हर स्टोर के लिए 100 पेज
  • हर एंटरप्राइज़ के लिए 1,000 प्रॉडक्ट (स्वीकार किए गए ऐप्लिकेशन)

स्थानीय जगह के अनुसार पेज और क्लस्टर के नाम

'कारोबार के लिए Google Play Store' का लेआउट, स्टोर पेजों और स्टोर क्लस्टर के लिए, स्थानीय भाषा में लिखे जा सकने वाले नामों का इस्तेमाल करता है. जब कोई पेज या क्लस्टर बनाया जाता है, तो आईईटीएफ़ भाषा टैग के तौर पर काम करने वाली स्थान-भाषाओं की सूची और उससे जुड़े स्थानीय नामों की सूची दी जाती है. अगर किसी उपयोगकर्ता की स्थान-भाषा, इस्तेमाल की जा सकने वाली सूची में नहीं है, तो सिस्टम उससे मिलती-जुलती उपलब्ध जगह चुनता है. उदाहरण के लिए, अगर en-GB उपलब्ध नहीं है, तो सिस्टम en-US को चुनता है. अगर कोई भी मिलता-जुलता नाम उपलब्ध नहीं होता है, तो सिस्टम सूची में मौजूद नाम चुन लेता है.

स्टोर लेआउट में ऐप्लिकेशन जोड़ना

अगर किसी एंटरप्राइज़ में बेसिक स्टोर लेआउट का इस्तेमाल किया जा रहा है, तो policy.productPolicy में मौजूद सभी ऐप्लिकेशन अपने-आप जुड़ जाते हैं. अगर कोई एंटरप्राइज़ कस्टम स्टोर लेआउट का इस्तेमाल कर रहा है, तो डिवाइस पर सिर्फ़ कस्टम लेआउट और productPolicy सूची में मौजूद ऐप्लिकेशन दिखेंगे. policy.productPolicy में मौजूद सभी आइटम Play Store पर खोजे जा सकते हैं.

'कारोबार के लिए Google Play Store' से कोई ऐप्लिकेशन इंस्टॉल करने के लिए, असली उपयोगकर्ता को उपयोगकर्ता के डिवाइस के साथ काम करना होगा और नीचे दी गई शर्तों को पूरा करना होगा:

  • डिवाइस रिसोर्स पर policy.productPolicy का इस्तेमाल करके, उपयोगकर्ता की अनुमति वाली सूची में जोड़ा गया. साथ ही, policy.productAvailabilityPolicy को WHITELIST पर सेट किया गया है या policy.productAvailabilityPolicy को ALL पर सेट किया गया है. इससे किसी भी ऐप्लिकेशन को खोजने और इंस्टॉल करने की अनुमति मिलती है.

उपयोगकर्ता 'कारोबार के लिए Google Play' में पहले से मौजूद खोज की सुविधा का इस्तेमाल करके, इन शर्तों को पूरा करने वाले किसी भी ऐप्लिकेशन को ढूंढ सकता है और इंस्टॉल कर सकता है. हालांकि, ऐप्लिकेशन सिर्फ़ बेसिक स्टोर लेआउट में दिखेगा या अगर आपने ऐप्लिकेशन को किसी कलेक्शन/क्लस्टर में जोड़ा है.

वे ऐप्लिकेशन जिनकी मंज़ूरी वापस ली गई है

एडमिन किसी भी समय ऐप्लिकेशन को दी गई मंज़ूरी वापस ले सकते हैं (उसकी अनुमति वापस ले सकते हैं). रद्द की गई मंज़ूरी वाले ऐप्लिकेशन भी क्लस्टर में और उपयोगकर्ताओं की अनुमति वाली सूचियों में जोड़े जा सकते हैं. हालांकि, उपयोगकर्ता उन्हें नहीं देख पाएंगे या मैनेज किए जा रहे Google Play Store से इंस्टॉल नहीं कर पाएंगे. अगर रद्द किए गए ऐप्लिकेशन को फिर से मंज़ूरी दी जाती है, तो वह ऐप्लिकेशन 'कारोबार के लिए Google Play Store' पर उपयोगकर्ताओं के लिए फिर से उपलब्ध हो जाएगा.

स्टोर का बेसिक लेआउट

डिफ़ॉल्ट रूप से, आपके हर ग्राहक के लिए स्टोर का बेसिक लेआउट चालू होता है. बेसिक लेआउट में एक पेज और एक क्लस्टर होता है, जिसमें ज़्यादा से ज़्यादा 1,000 ऐप्लिकेशन दिखाए जाते हैं. पेज पर मौजूद ऐप्लिकेशन को उनकी product ID वैल्यू के हिसाब से क्रम में लगाया जाता है. अगर storeLayoutType ="custom" को सेट करके, स्टोर का कस्टम लेआउट बनाया जाता है, तो बेसिक स्टोर लेआउट बंद हो जाता है.

स्टोर के लिए पसंद के मुताबिक लेआउट बनाएं

ईएमएम अपने हर एंटरप्राइज़ ग्राहक के लिए, पसंद के मुताबिक स्टोर लेआउट बना सकते हैं. कस्टम स्टोर लेआउट से, आपको ऐप्लिकेशन के क्लस्टर सेट अप करने, पेजों में खास क्लस्टर जोड़ने, और क्विक लिंक तय करने में मदद मिलती है. हर क्लस्टर में ऐप्लिकेशन तय किए जाने की वजह से, आपके पास क्लस्टर का इस्तेमाल करके मिलते-जुलते ऐप्लिकेशन का ग्रुप बनाने का विकल्प होता है. उदाहरण के लिए, "Essentials" और "होने वाले ऐप्लिकेशन". उपयोगकर्ता सिर्फ़ उन ऐप्लिकेशन को देख सकते हैं जिनकी आईटी एडमिन ने अनुमतियां स्वीकार की हैं.

Google Play ईएमएम एपीआई के रेफ़रंस में, उन संसाधनों और उनसे जुड़े तरीकों की जानकारी होती है जिनका इस्तेमाल कस्टम स्टोर लेआउट बनाने के लिए किया जाता है. खास तौर पर, स्टोरलेआउट पेज और स्टोरलेआउट क्लस्टर. नीचे दिए गए सेक्शन में बताया गया तरीका, एक बुनियादी उदाहरण के बारे में बताता है.

प्रोग्रामिंग से जुड़े टास्क

अगर आपको अपने ग्राहकों के लिए, 'कारोबार के लिए Google Play Store' का पसंद के मुताबिक लेआउट बनाना है, तो आपको:

  1. पेज बनाएं
  2. पेजों में एक या उससे ज़्यादा क्लस्टर बनाएं
  3. होम पेज सेट करें

स्टोर के लेआउट के लिए, कम से कम एक ऐसा पेज बनाना ज़रूरी है जिसमें एक क्लस्टर हो. साथ ही, क्लस्टर में कम से कम एक ऐप्लिकेशन हो. साथ ही, आपको होम पेज भी सेट करना होगा. अगर एक से ज़्यादा पेज बनाए जाते हैं, तो आपके पास हर पेज के ऊपर दिखाने के लिए क्विक लिंक सेट करने का विकल्प होता है.

मैनेज किए जा रहे Play Store का कस्टम लेआउट बनाने के लिए, प्रोग्रामिंग से जुड़े टास्क के बारे में यहां बताया गया है. इसके बाद, स्टोर लेआउट का पूरा उदाहरण दिया गया है.

पेज बनाएं

पेज में एक या उससे ज़्यादा क्लस्टर होते हैं. हर क्लस्टर में कम से कम एक ऐप्लिकेशन होता है. पेज खास एंटरप्राइज़ के लिए बनाए जाते हैं, इसलिए आपको खास एंटरप्राइज़ इंस्टेंस (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();
}

क्लस्टर बनाएं

क्लस्टर में, ऐप्लिकेशन के ग्रुप होते हैं. क्लस्टर पहले बनाया जाता है और उसके बाद उसे किसी पेज में जोड़ा जा सकता है. क्लस्टर बनाने के लिए, Storeलेआउट क्लस्टर की insert कार्रवाई शुरू करें और इन प्रॉपर्टी के लिए वैल्यू पास करें:

  • ऐसे productId की सूची जो क्लस्टर में शामिल होने चाहिए. उदाहरण के लिए, Gmail के लिए productId, app:com.google.android.gm है
  • क्लस्टर के लिए उपयोगकर्ता के लिए आसान नाम, जैसे कि {6}थिंग्स हासिल करना 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' में दिखने वाला पहला पेज, होम पेज होता है. ईएमएम के तौर पर, आप अपने हर ग्राहक के लिए होम पेज तय करते हैं. खाली होने पर भी पेज हमेशा दिखता है और उसे मिटाया नहीं जा सकता.

इस उदाहरण में, होम पेज के आईडी को बताए गए 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();
}
पर कॉल करें.

क्विक लिंक, हर पेज पर सबसे ऊपर दिखते हैं. इससे लोगों को स्टोर के अलग-अलग पेजों पर आसानी से जाने में मदद मिलती है. क्विक लिंक इस्तेमाल करने के लिए, सबसे पहले पेज (insert से दिखाया गया) के लिए pageId पाएं और उस पेज का लिंक जोड़ें. उदाहरण के लिए, अगर आपने p1, p2, p3 जैसे तीन पेज बनाए हैं, तो पहले पेज से बाकी दो पेजों में क्विक लिंक जोड़े जा सकते हैं. इसके लिए, इनका इस्तेमाल करें:pageId

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");
}