Créer des mises en page de magasins personnalisées

Google Play d'entreprise vous permet de concevoir et de créer l'agencement de vos magasins pour vos clients professionnels. Vous pouvez personnaliser la mise en page de la boutique en regroupant les applications dans des clusters, en configurant les pages commerciales et en ajoutant des liens rapides permettant d'accéder à plusieurs pages du magasin.

Toutes les applications mises à la disposition d'un utilisateur final sur la plate-forme Google Play d'entreprise doivent d'abord être approuvées par un administrateur informatique, approuvées pour l'utilisateur et ajoutées à un cluster. (Pour en savoir plus sur ce processus, consultez la section Ajouter des applications à la mise en page de la boutique.)

Éléments de l'aménagement d'un magasin

La mise en page d'un magasin consiste généralement en une série de pages présentées aux utilisateurs dans Google Play d'entreprise. Chaque page peut contenir un ou plusieurs groupes d'applications, appelés clusters. Chaque cluster contient une ou plusieurs applications.

Les clusters vous permettent de regrouper des applications associées. Par exemple, vous pouvez créer une page pour les applications professionnelles contenant un cluster Essentials et un cluster Getting ThingsDone. Le cluster Essentials peut contenir des applications telles que Notepad+, Google Slides, etc. Le cluster "Getting Things Done" peut inclure des applications telles que OneNote, Wunderlist, Any.do, ainsi que d'autres applications de suivi, d'agenda et de planification de réunions (voir la figure 1).

Lorsque vous créez une page, vous pouvez également ajouter jusqu'à 10 liens rapides en haut de celle-ci. Les liens rapides permettent aux utilisateurs d'accéder à d'autres pages. Par exemple, la figure 1 présente des liens rapides vers les pages "Entreprise", "Communication" et "Finance".

La figure 1 illustre certains éléments clés de l'agencement d'un magasin tel qu'il apparaît sur un appareil:

Exemple d'écran sur l'appareil d'un utilisateur, montrant les éléments de la mise en page d'un magasin, y compris les liens rapides, les pages et les groupes d'applications.
Figure 1 : Exemple d'écran sur l'appareil d'un utilisateur
  • Liens rapides: liens facultatifs qui permettent d'accéder à d'autres pages. Les liens rapides prennent le nom de la page vers laquelle ils pointent.
  • Page: page nommée à défilement vertical comprenant des clusters d'applications.
  • Cluster (également appelé collection): carrousel d'applications nommé à défilement horizontal. Se développe en pleine page si la page ne contient qu'un seul cluster (ou cliquez sur "Plus" pour la rendre déroulante verticalement).

Limites des éléments de mise en page du magasin

Lorsque vous concevez et implémentez l'aménagement de votre magasin pour vos clients, tenez compte des limites suivantes (la plupart d'entre elles sont dues aux principes de conception d'une interface utilisateur de qualité):

  • 100 applications par cluster
  • 30 clusters par page
  • 10 liens rapides par page
  • 100 pages par magasin
  • 1 000 produits (applications approuvées) par entreprise

Page et noms de clusters localisés

La mise en page du Google Play Store d'entreprise accepte les noms localisés pour les pages et les clusters de magasins. Lorsque vous créez une page ou un cluster, vous fournissez une liste des paramètres régionaux compatibles, sous forme de balises de langue IETF, ainsi que les noms localisés associés. Si les paramètres régionaux d'un utilisateur ne figurent pas dans la liste acceptée, le système choisit la correspondance la plus proche disponible. Par exemple, si en-GB n'est pas disponible, le système choisit en-US à la place. Si aucune correspondance proche n'est disponible, le système choisit le prénom dans la liste.

Ajouter des applications à la disposition de la boutique

Toutes les applications présentes dans policy.productPolicy sont ajoutées automatiquement si une entreprise utilise une mise en page de base du magasin. Si une entreprise utilise une mise en page personnalisée du Play Store, les applications qui ne figurent que dans la mise en page personnalisée et la liste productPolicy s'afficheront sur l'appareil. Tous les éléments présents dans policy.productPolicy peuvent faire l'objet d'une recherche sur le Play Store.

Pour qu'un utilisateur final puisse installer une application à partir de la plate-forme Google Play d'entreprise, celle-ci doit être compatible avec l'appareil de l'utilisateur et remplir la condition suivante:

  • Ajouté à la liste d'autorisation de l'utilisateur (en utilisant policy.productPolicy sur la ressource de l'appareil) ET policy.productAvailabilityPolicy est défini sur WHITELIST, OU policy.productAvailabilityPolicy est défini sur ALL (permettant de rechercher et d'installer n'importe quelle application).

La fonctionnalité de recherche intégrée à Google Play d'entreprise permet à l'utilisateur de trouver et d'installer toute application qui remplit ces conditions. Toutefois, l'application ne sera visible que dans une mise en page de base du Play Store ou si vous l'avez ajoutée à une collection/un cluster.

Applications dont l'approbation a été révoquée

Les administrateurs peuvent annuler l'approbation d'une application (révoquer son approbation) à tout moment. Les applications dont l'approbation a été révoquée peuvent toujours être ajoutées aux clusters et aux listes d'autorisation des utilisateurs, mais les utilisateurs ne les verront pas et ne pourront pas les installer à partir du Google Play Store d'entreprise. Si une application dont l'approbation a été révoquée est réapprouvée, elle est de nouveau disponible pour les utilisateurs sur la plate-forme Google Play d'entreprise.

Disposition de base du magasin

L'agencement de base du magasin est activé par défaut pour chacun de vos clients. La mise en page de base comporte une page et un cluster, et affiche un maximum de 1 000 applications. Les applications de la page sont triées dans l'ordre de leur valeur product ID. Si vous créez une mise en page personnalisée du magasin (en définissant storeLayoutType ="custom"), l'organisation de base du magasin est désactivée.

Créer des mises en page personnalisées pour vos magasins

Les EMM peuvent créer des aménagements de magasin personnalisés pour chacune de leurs entreprises clientes. Les mises en page personnalisées du Play Store vous permettent de configurer des clusters d'applications, d'ajouter des clusters spécifiques à des pages et de spécifier des liens rapides. Étant donné que vous définissez les applications qui composent chaque cluster, vous pouvez les utiliser pour regrouper des applications associées (par exemple, "Essentials" et "Getting Things Done"). Les utilisateurs ne voient que les applications dont les autorisations ont été acceptées par l'administrateur informatique.

La documentation de référence de l'API EMM Google Play contient des informations sur les ressources et les méthodes associées que vous utilisez pour créer une mise en page de magasin personnalisée, en particulier Storelayoutpages et Storelayoutclusters. Les étapes décrites dans les sections ci-dessous vous présentent un exemple de base.

Tâches de programmation

Pour créer une mise en page personnalisée du Google Play Store d'entreprise pour vos clients, vous devez:

  1. Créer une page
  2. Créez un ou plusieurs clusters dans les pages
  3. Définir la page d'accueil

Vous devez créer au moins une page composée d'un cluster pour la mise en page de la plate-forme, et le cluster doit contenir au moins une application. Vous devez également définir la page d'accueil. Si vous créez plusieurs pages, vous pouvez définir des liens rapides à afficher en haut de chaque page.

Les tâches de programmation permettant de créer une mise en page personnalisée du Play Store d'entreprise sont décrites ci-dessous, suivies d'un exemple complet de mise en page de la plate-forme.

Créer une page

Une page se compose d'un ou de plusieurs clusters. Chaque cluster contient au moins une application. Les pages sont créées pour des entreprises spécifiques. Vous devez donc appeler des opérations sur des instances d'entreprise spécifiques (enterpriseId). Vous pouvez fournir un nom convivial et des informations de localisation pour chaque page, ainsi qu'une liste de pageId auxquels les utilisateurs peuvent accéder à partir de la page. La nouvelle page est créée avec l'opération insert (Storelayoutpages.insert) comme indiqué ci-dessous:

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

Créer un cluster

Les clusters contiennent des groupes d'applications. Vous devez d'abord créer le cluster, puis l'ajouter à une page. Pour créer un cluster, appelez l'opération insert de Storelayoutclusters et transmettez les valeurs des propriétés suivantes:

  • Une liste des éléments productId que le cluster doit contenir (par exemple, le productId pour Gmail est app:com.google.android.gm)
  • Nom convivial pour le cluster, tel que "Getting Things Done Projects"
  • Le enterpriseId qui doit être associé au cluster
  • Le fichier pageId (pour la page qui doit contenir le cluster)
  • Emplacement du cluster sur la page (première, deuxième, etc.)

Exemple :

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

Définir la page d'accueil

La première page qui s'affiche dans Google Play d'entreprise sur l'appareil d'un utilisateur est la page d'accueil. En tant qu'EMM, vous définissez une page d'accueil pour chacun de vos clients. La page est toujours visible, même lorsqu'elle est vide, et ne peut pas être supprimée.

Dans cet exemple, l'ID de la page d'accueil est récupéré pour l'élément enterpriseId spécifié:

public StoreLayout getStoreLayout(String enterpriseId) throws IOException {
  return androidEnterprise
    .enterprises()
    .getStoreLayout(enterpriseId)
    .execute();
}

L'exemple suivant définit la page d'accueil d'un client en fournissant le numéro enterpriseId du client et son pageId:

public StoreLayout setStoreLayout(String enterpriseId, String homepageId)
    throws IOException {
  StoreLayout storeLayout = new StoreLayout();
  storeLayout.setHomepageId(homepageId);

  return androidEnterprise
    .enterprises()
    .setStoreLayout(enterpriseId, storeLayout)
    .execute();
}

Des liens rapides s'affichent en haut de chaque page, permettant aux utilisateurs de naviguer facilement entre les pages du magasin. Pour utiliser des liens rapides, commencez par obtenir le pageId de la page (renvoyé par insert), puis ajoutez le lien à la page. Par exemple, si vous créez trois pages dont les pageId sont p1, p2 et p3, vous pouvez ajouter des liens rapides de la première page vers les deux autres pages avec le code suivant:

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

Exemple

Voici un exemple complet de création d'un magasin de base composé de trois pages reliées entre elles. Des clusters d'applications similaires constituent chaque page. Chaque page est créée en spécifiant le enterpriseId du client et en définissant la page name uniquement, pour obtenir son pageId, qui est ensuite utilisé pour créer un lien rapide vers la page.

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