Cómo crear diseños de tiendas personalizados

Google Play administrado te permite diseñar y crear diseños de tiendas para tu empresa clientes. Puedes personalizar el diseño de una tienda agrupando apps en clústeres configurar páginas de la tienda y agregar vínculos rápidos que brinden acceso a varias páginas dentro de la tienda.

Todas las apps que están disponibles para los usuarios finales en Google Play administrado de la tienda debe ser aprobada por un administrador de TI, aprobada para el usuario y agregada un clúster. Consulta Cómo agregar apps al diseño de la tienda para obtener más información. proceso).

Elementos de un diseño de tienda

Un diseño de tienda generalmente consiste en una serie de páginas que se muestran a los usuarios en con Google Play administrado. Cada página puede contener uno o más grupos de aplicaciones, a las que como clústeres. Cada clúster contiene una o más apps.

Los clústeres te permiten agrupar apps relacionadas. Por ejemplo, puedes crear una página para apps relacionadas con el trabajo que contengan un clúster de Essentials y la clase Getting Things Done. El clúster de Essentials podría contener apps como Notepad+, Presentaciones de Google, etcétera. El clúster Getting Things Done puede incluir apps como OneNote, Wunderlist, Any.do y otras herramientas de seguimiento, de planificación de reuniones (consulte la Figura 1).

Cuando creas una página, también puedes agregar hasta 10 vínculos rápidos en la parte superior de la . Los vínculos rápidos permiten a los usuarios saltar a otras páginas. Por ejemplo, en la Figura 1, se muestra vínculos rápidos a las páginas Empresas, Comunicaciones y Finanzas.

En la figura 1, se muestran algunos elementos clave del diseño de la tienda tal como se ven en un dispositivo:

Una pantalla de ejemplo del dispositivo de un usuario, en la que se muestran los elementos de una tienda
    incluidos los vínculos rápidos, las páginas y los grupos de aplicaciones.
Figura 1: Pantalla de ejemplo de un dispositivo de usuario
  • Vínculos rápidos: Vínculos opcionales que proporcionan acceso a otras páginas. Rápido toman el nombre de la página a la que dirigen.
  • Página: Es una página con nombre y desplazable verticalmente que comprende clústeres de apps.
  • Clúster (también llamado colección): Es un elemento con nombre que se puede desplazar horizontalmente. carrusel de aplicaciones. Se expande a la página completa si la página contiene un solo clúster (o haz clic en "Más" para que sea desplazable verticalmente).

Limitaciones de los elementos de diseño de la tienda

Cuando diseñes e implementes diseños de tiendas para tus clientes, mantén estos (la mayoría de estos límites se deben a principios de un buen diseño de IU):

  • 100 apps por clúster
  • 30 clústeres por página
  • 10 vínculos rápidos por página
  • 100 páginas por tienda
  • 1,000 productos (apps aprobadas) por empresa

Nombres de páginas y clústeres localizados

El diseño de Google Play Store administrado admite nombres localizados para las páginas de la tienda y los clústeres de almacenamiento. Cuando creas una página o un clúster, proporcionas una lista de las configuraciones regionales admitidas, como las etiquetas de idioma IETF y los nombres localizados asociados. Si la configuración regional del usuario no se encuentra en la lista admitida, el sistema elige la más cercana coincidencia disponible. Por ejemplo, si en-GB no está disponible, el sistema elige en-US. en su lugar. Si no hay coincidencias cercanas disponibles, el sistema elige el nombre en la lista.

Agregar apps al diseño de una tienda

Todas las apps presentes en policy.productPolicy se agregan automáticamente si un elemento la empresa usa un diseño de tienda básico. Si una empresa usa un servicio Diseño de la tienda, las apps solo están presentes en el diseño personalizado y la lista de productPolicy se mostrará en un dispositivo. Todos los elementos presentes en policy.productPolicy son se pueden buscar en Play Store.

Para que un usuario final instale una app desde Google Play Store administrado, la app Debe ser compatible con el dispositivo del usuario y cumplir con la siguiente condición:

  • Agregado a la lista de permitidos del usuario (a través de policy.productPolicy en el dispositivo) resource) y policy.productAvailabilityPolicy se estableció en WHITELIST, O policy.productAvailabilityPolicy está establecido en ALL (lo que permite que la búsqueda e instalación de cualquier app).

Un usuario puede usar la función de búsqueda integrada en Google Play administrado para buscar y instales cualquier app que cumpla con estas condiciones. Sin embargo, la app solo visibles en un diseño básico de la tienda o si agregaste la aplicación a una collection/cluster.

Apps con aprobación revocada

Los administradores pueden anular la aprobación de una aplicación (revocar su aprobación) en cualquier momento. Aplicaciones con aprobación revocada a los clústeres, y las credenciales listas de entidades permitidas, pero los usuarios no las verán ni podrán instalarlas desde la versión de Google Play Store. Si una app con aprobación revocada se vuelve a aprobar, se creará para los usuarios nuevamente en Google Play Store administrado.

Diseño básico de la tienda

De forma predeterminada, está habilitado un diseño básico de tienda para cada uno de tus clientes. El el diseño básico tiene 1 página y 1 clúster, lo que muestra un máximo de 1,000 apps Apps activadas de la página se ordenan según su valor de product ID. Si creas una configuración Diseño de la tienda (estableciendo storeLayoutType ="custom"), el diseño básico de la tienda es inhabilitado.

Crea diseños de tienda personalizados

Los EMM pueden crear diseños de tienda personalizados para cada uno de sus clientes empresariales. Los diseños personalizados de la tienda te permiten configurar clústeres de apps, agregar clústeres específicos a las páginas y especificar vínculos rápidos. Porque tú defines las aplicaciones que componen cada una puedes usarlos para agrupar apps relacionadas (por ejemplo, "Essentials" y "Cómo realizar tareas"). Los usuarios solo ven aquellas apps cuyos permisos tienen que el administrador de TI haya aceptado.

La referencia de la API de EMM de Google Play contiene información sobre los recursos y métodos asociados que uses para crear un diseño de tienda personalizado, Storelayoutpages y Storelayoutclusters. Los pasos descritos en el las siguientes secciones se explican un ejemplo básico.

Tareas de programación

Para crear un diseño personalizado de Google Play Store administrado para tus clientes, puedes debe:

  1. Crear una página
  2. Crea uno o más clústeres dentro de las páginas
  3. Cómo establecer la página principal

Como mínimo, debes crear al menos una página que consista en un clúster para un de la tienda, y el clúster debe contener al menos una app. También debes establecer la página de inicio. Si creas más de una página, tienes la opción de establecer rápidamente que aparezcan en la parte superior de cada página.

Las tareas de programación para crear un diseño personalizado y administrado de Play Store que se describe a continuación, seguido de un ejemplo completo de un diseño de tienda.

Crear una página

Una página consta de uno o más clústeres. Cada clúster contiene al menos una app. Las páginas se crean para empresas específicas, por lo que debes invocar operaciones en instancias empresariales específicas (enterpriseId). Puedes proporcionar una imagen fácil de usar información de localización y nombre de cada página, junto con una lista de pageId a las que los usuarios pueden llegar desde la página. La página nueva se crea con insert. (Storelayoutpages.insert), como se muestra aquí:

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

Crea un clúster

Los clústeres contienen grupos de apps. Primero se crea el clúster y, luego, se puede se agregará a una página. Para crear un clúster, invoca la operación insert de Storelayoutclusters y pasar valores para estas propiedades:

  • Una lista de los productId que debe contener el clúster (por ejemplo, el (productId para Gmail es app:com.google.android.gm)
  • Un nombre fácil de usar para el clúster, como ε Getting Things ¡Listo!
  • El enterpriseId que se debe asociar con el clúster
  • El pageId (para la página que debe contener el clúster)
  • La ubicación del clúster en la página (primero, segundo, etc.)

Por ejemplo:

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

Cómo establecer la página principal

La primera página que se muestra en Google Play administrado en el dispositivo de un usuario es la página de inicio. Como EMM, defines una página principal para cada uno de tus clientes. El siempre esté visible, incluso cuando esté vacía y no se pueda eliminar.

En este ejemplo, el ID de la página principal se recupera del valor especificado enterpriseId:

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

En el siguiente ejemplo, se establece la página principal para un cliente al proporcionar la El enterpriseId y el pageId de ese cliente página principal:

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

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

Los vínculos rápidos aparecen en la parte superior de cada página, lo que permite a los usuarios navegar fácilmente entre las páginas de la tienda. Para usar vínculos rápidos, primero obtén el pageId del (devuelta por insert) y agrega el vínculo a la página. Por ejemplo, si Crea tres páginas cuyos pageId sean p1, p2, p3, puedes agregar vínculos rápidos de la primera página a las otras dos páginas con lo siguiente:

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

Ejemplo

Este es un ejemplo completo que crea un almacén básico que consta de tres páginas intervinculadas. Cada página está compuesta por clústeres de apps similares. Cada página que se crea especificando el enterpriseId del cliente y configurando la name de la página para obtener su pageId, que luego se usa para crear un vínculo rápido al .

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