managed Google Play では、社内向けのストア レイアウトのデザインと作成が可能 お客様に提供しています。アプリをクラスタにグループ化することで、ストアのレイアウトをカスタマイズできます。 店舗ページの設定、複数の店舗へのアクセスを可能にするクイックリンクの追加 ストア内のページ。
managed Google Play でエンドユーザーに提供されているすべてのアプリ まず、店舗を IT 管理者の承認を得て、ユーザーを承認してから、 作成します。(この機能について詳しくは、ストア レイアウトにアプリを追加するをご覧ください)。 プロセス)。
店舗レイアウトの要素
店舗レイアウトは通常、ユーザーに表示される一連のページで構成されます。 managed Google Play。各ページには、アプリのグループを 1 つまたは複数含めることができます。 できます。各クラスタには 1 つ以上のアプリが含まれます。
クラスタを使用すると、関連するアプリをグループ化できます。たとえば、Google Chat で 仕事関連のアプリ Essentials クラスタと Getting Things Done のクラスタを作成します。Essentials クラスタには、Notebooks+、 Google スライドなど。Getting Things Done クラスタにはアプリを含めることが可能 OneNote、Wunderlist、Any.do などの (図 1 を参照)。
ページを作成する際、ページの上部に最大 10 個のクイックリンク できます。クイックリンクを使用すると、ユーザーは他のページに移動できます。たとえば、図 1 は、 ビジネス、コミュニケーション、財務の各ページのクイックリンク。
デバイスでのストア レイアウトの主な要素を図 1 に示します。
<ph type="x-smartling-placeholder">![店舗の要素を示すユーザー デバイスのサンプル画面
レイアウト(クイックリンク、ページ、アプリのクラスタなど)が含まれます。](https://developers-dot-devsite-v2-prod.appspot.com/static/android/work/play/emm-api/store_layout_figure_1.png?authuser=0000&hl=ja)
- クイックリンク: 他のページにアクセスできるオプションのリンクです。クイック リンクは、そのリンク先のページの名前を受け取ります。
- ページ: 垂直方向にスクロール可能な、名前付きの、アプリのクラスタからなるページ。
- クラスタ(コレクション): 名前付きの、水平方向にスクロール可能なクラスタ アプリのカルーセル。ページに 1 つのクラスタ(または [詳細]をクリック(縦方向にスクロールできるようにします)。
ストア レイアウト要素の制限事項
顧客に合わせて店舗レイアウトを設計、実装する際は、 注意してください(こうした制限のほとんどは、優れた UI 設計の原則によるものです)。
- クラスタあたり 100 個のアプリ
- 1 ページあたり 30 クラスタ
- クイックリンクはページあたり 10 個まで
- 店舗あたり 100 ページ
- 1 社につき 1,000 個のプロダクト(承認済みアプリ)
ローカライズされたページとクラスタ名
managed Google Play ストアのレイアウトでストアページの名前をローカライズできる 保存できます。ページまたはクラスタを作成するときに、 IETF 言語タグとしてサポートされている言語 / 地域、および関連するローカライズされた名前。 ユーザーの言語 / 地域がサポート対象リストにない場合、システムは最も近い言語 / 地域を選択します。 一致します。たとえば、en-GB を使用できない場合は en-US が選択されます。 してください。一致する名前がない場合、 選択します。
ストア レイアウトへのアプリの追加
policy.productPolicy
に存在するアプリはすべて、
基本的な店舗レイアウトを使用しています企業がカスタムモデルを使用する場合は、
ストア レイアウト、カスタム レイアウトと productPolicy
リストにのみ存在するアプリ
デバイスに表示されますpolicy.productPolicy
にあるすべてのアイテムが
検索できるようにします。
エンドユーザーが managed Google Play ストアからアプリをインストールする場合、 ユーザーのデバイスに対応しており、次の条件を満たしている必要があります。
- ユーザーの許可リストに追加された(デバイスで
policy.productPolicy
を使用) resource)かつpolicy.productAvailabilityPolicy
がWHITELIST
に設定されている。 または、policy.productAvailabilityPolicy
がALL
に設定されている(検索が許可される) あらゆるアプリのインストールなど)を問いません。
ユーザーは managed Google Play に組み込まれている検索機能で、 これらの条件を満たすアプリをインストールしてください。ただし、そのアプリは 基本のストア レイアウトで表示する場合もあれば、アプリを collection/cluster。
承認が取り消されたアプリ
管理者は、いつでもアプリを不承認にする(承認を取り消す)ことができます。次があるアプリ: その場合でも、ユーザーの代わりにクラスタに追加でき、許可することもできますが、 ユーザーには公開されず、管理対象の Google Cloud ネットワークから Google Play ストア。承認が取り消されたアプリが再承認されると、 managed Google Play ストアからユーザーに再度公開できます。
基本的な店舗レイアウト
デフォルトでは、顧客ごとに基本の店舗レイアウトが有効になっています。「
基本レイアウトは 1 つのページと 1 つのクラスタで構成され、最大 1, 000 個のアプリが表示されます。オン
ページは product ID
値で並べ替えられます。カスタム
(storeLayoutType ="custom"
を設定して)基本的な店舗レイアウトは次のようになります。
無効です。
ストアのカスタム レイアウトを作成する
EMM では、企業顧客ごとにカスタムの店舗レイアウトを作成できます。 カスタムストア レイアウトを使用すると、アプリのクラスタを設定し、特定のクラスタをアプリに追加できるようになります。 クイックリンクを指定できますそれぞれに含まれるアプリを定義するため クラスタを使用すると、関連するアプリ(「Essentials」など)をグループ化できます。 「Getting Things Done」など)。ユーザーには、権限を持っているアプリのみが表示されます。 承認されていないことを確認します
Google Play EMM API リファレンスには、リソースに関する情報と、 カスタムの店舗レイアウトを作成するために使用する 関連メソッドを使用できます Storelayoutpages と Storelayoutclusters。このコースで説明した 以下のセクションでは、基本的な例について説明します。
プログラミング タスク
managed Google Play ストアのカスタム レイアウトをユーザー向けに作成するには、次の操作を行います。 要件:
- ページを作成
- ページ内に 1 つ以上のクラスタを作成する
- ホームページを設定する
少なくとも 1 つのクラスタで構成されるページを 1 つ以上作成する必要があります。 クラスタには 1 つ以上のアプリが含まれている必要があります。さらに、 表示されます。複数のページを作成する場合は、 各ページの上部に表示します
managed Google Play ストアのカスタム レイアウトを作成するためのプログラミング タスクは次のとおりです。 その後にストア レイアウトの完全な例が続きます。
ページを作成
ページは 1 つ以上のクラスタで構成されます。各クラスタには少なくとも 1 つのアプリが含まれます。
ページは特定の企業用に作成されるため、ページで操作を呼び出す必要があります。
特定のエンタープライズ インスタンス(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
オペレーションを呼び出します。
Storelayoutclusters を作成し、次のプロパティの値を渡します。
- クラスタに含める必要がある
productId
のリスト(例: Gmail のproductId
はapp:com.google.android.gm
です) - クラスタのユーザー フレンドリーな名前(「Getting Things」など) 完了しました
- クラスタに関連付ける
enterpriseId
pageId
(クラスタを含むページ用)- ページ上でのクラスタの配置(1 番目、2 番目など)
次の例をご覧ください。
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();
}
ホームページを設定する
ユーザーのデバイスで managed Google Play に最初に表示されるページは、 表示されます。EMM として、顧客ごとのホームページを定義します。「 ページは空の場合も常に表示され、削除できません。
この例では、指定されたホームページの ID が、
enterpriseId
:
public StoreLayout getStoreLayout(String enterpriseId) throws IOException {
return androidEnterprise
.enterprises()
.getStoreLayout(enterpriseId)
.execute();
}
次の例では、顧客用ホームページを設定するために
お客様とのenterpriseId
とpageId
の</br class="ph-2-1">
ホームページ:
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
の 3 つのページを作成します。クイックリンクを追加できます
2 ページ目を次のように置き換えます。
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();
例
次のサンプルは、3 つのバケットで構成される基本的なストアを
表示されます。各ページは類似アプリのクラスターから構成されています。各ページは
顧客の enterpriseId
を指定し、ページ name
を設定して作成します。
その pageId
を取得してから、その URL を使用して
できます。
// 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");
}