Skip to content
This repository has been archived by the owner on Mar 14, 2024. It is now read-only.

Commit

Permalink
Update CWS best practices page (#794)
Browse files Browse the repository at this point in the history
* Initial draft content for update of best practices page

* Fixed stray smart quote

* Minor rewording from review comment

* Review comment update

* Update site/en/docs/webstore/best_practices/index.md

Co-authored-by: Simeon Vincent <[email protected]>

* Update site/en/docs/webstore/best_practices/index.md

Co-authored-by: Simeon Vincent <[email protected]>

* Update site/en/docs/webstore/best_practices/index.md

Co-authored-by: Simeon Vincent <[email protected]>

* Apply suggestions from code review

Co-authored-by: Simeon Vincent <[email protected]>

* Addressed review comment. Essentially separated security and user data usage concerns and linked
each to the appropriate detail article/FAQ.

Co-authored-by: Simeon Vincent <[email protected]>
  • Loading branch information
awfuchs and Simeon Vincent authored Jun 18, 2021
1 parent 7ead8b6 commit a877cc5
Showing 1 changed file with 57 additions and 159 deletions.
216 changes: 57 additions & 159 deletions site/en/docs/webstore/best_practices/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -9,10 +9,38 @@ description: >
This page has advice on how you should implement your app and list it in the store. As the store
matures and we learn from developers' experiences, these recommendations will be updated.

## Design a great app
## Design a high-quality extension

We encourage you to develop extensions that are of high quality. High-quality extensions conform to
standards of performance, security, and user experience, as summarized by the following guidelines:

* **Compliance:** Does the extension comply with our [program policies]? Extensions must not violate
any of these policies.

* **Manifest V3:** Is the extension built on Manifest V3? Manifest V3 is the current version of the
Chrome extension platform and all High Quality extensions should use it. (See the [Manifest V3
overview][mv3-overview].)

* **Security:** Is the extension safe for users? Make sure your extension does not pose security
threats and does not use deceptive installation tactics (see [Stay secure][stay-secure] for a more
in-depth discussion.)

* **User privacy:** Make sure that your extension handles user data appropriately and conforms to
Chrome Web Store's data privacy requirements. (See this [FAQ][user-data-faq] for further details.)

* **Performance:** Does the extension function at an outstanding level? High-quality extensions
don't just perform their intended action, they do so while using as few system resources as
possible.

* **User experience:** Is the extension a joy to use? The extension itself should provide a
good-looking, intuitive, and seamless user experience while also respecting the end user's
privacy.

* **Store listing:** The extension's [Chrome Web Store listing][completing-listing] should sets the
user's expectations and clearly communicates what the extension does. All image assets (icon,
tile, marquee, and screenshots) [should be provided][supplying-images]. Images should not be
blurry or too busy. [Privacy information][dashboard-privacy] (permissions justifications, the extension's privacy policy, data use disclosures, etc.) must be accurate and up to date.

This is the hard part. For advice, you can read articles about [app design][1]. Also, follow the
[pre-launch checklist][2].

## Support Google Accounts

Expand All @@ -37,10 +65,9 @@ intentionally unsubscribe or uninstall the app, they might come back.

## Cache license data

If you use Chrome Web Store Payments, you can use the Licensing API to programmatically check for
payment, as described in [Checking for Payment][4].

But don't query the license server too often: [Cache the results][5].
If you use a payment processor or other licensing manager, you may also want to cache the results
so that **(a)** Your user can still use the extension when they are offline, and **(b)** you
reduce the number of queries to the license server, reducing quota usage and traffic.

## Create a compelling store listing

Expand All @@ -54,162 +81,33 @@ See [Supplying Images][8] for guidelines on the images you should supply to the

### Choose your app's category well

The Chrome Developer Dashboard lets you specify a primary and secondary category for each web app.
The primary category determines where your app appears in the store (the secondary category isn't
used to display your app).

Each category is organized into logical groups. The store displays your web app under the group
heading and in the filtered category. If no category matches your web app, you can select 'Other';
the store will only display your web app under the group heading. For example, if you choose
"Developer Tools" within the Productivity group, your app appears in the store under both the
Productivity and Developer Tools lists. Alternatively, if you choose "Other", your app appears in
the Productivity list only.

You can also list additional categories or keywords to describe your app. These may be used to
improve search relevance in the future, or to influence future versions of the category list. The
following list describes the categories that you can choose for your web app. The categories might
change; if that happens, your web app might be recategorized.

<table>
<thead>
<tr>
<th>Group</th>
<th>Categories</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td>Business Tools</td>
<td>
Accounting & Finance<br>
Admin & Management<br>
ERP & Logistics<br>
HR & Legal<br>
Marketing & Analytics<br>
Sales & CRM
</td>
<td>Apps to help businesses run successfully.</td>
</tr>
<tr>
<td>Education</td>
<td>
Academic Resources<br>
Family<br>
Foreign Languages<br>
School Administration<br>
Teacher Tools<br>
Test Preparation
</td>
<td>Apps that teach the user something or can be helpful in a classroom environment.</td>
</tr>
<tr>
<td>Entertainment</td>
<td>
Books<br>
Music<br>
Online Video<br>
Photos<br>
Radio<br>
TV & Movies
</td>
<td>
All leisure apps except for games.<br>
<b>Note</b>: An app can be in either Entertainment or Games, but it should never be in both.
</td>
</tr>
<tr>
<td>Games</td>
<td>
Action & Adventure Games<br>
Arcade Games<br>
Board Games<br>
Card Games<br>
Educational Games<br>
Puzzle Games<br>
Role Playing Games<br>
Sports Games<br>
Strategy Games<br>
Virtual Worlds
</td>
<td>All kinds of games that users can play. Also see Education and Entertainment.</td>
</tr>
<tr>
<td>Lifestyle</td>
<td>
Astrology<br>
Fashion<br>
Food<br>
Health & Fitness<br>
Money<br>
Religion<br>
Shopping<br>
Travel
</td>
<td>Apps for everyday life.</td>
</tr>
<tr>
<td>News & Weather</td>
<td>
Blogs<br>
Magazines<br>
News Aggregators<br>
Newspapers<br>
Social News<br>
Sports<br>
Weather Forecasts
</td>
<td>Apps that feature news about current events or weather.</td>
</tr>
<tr>
<td>Productivity</td>
<td>
Calendar & Scheduling<br>
Creative Tools<br>
Design Essentials<br>
Developer Tools<br>
Office Applications<br>
Online Documents & File Storage<br>
Search & Browsing Tools<br>
Task Management
</td>
<td>
Apps that someone might spend a significant amount of time using to get something done.
Also see Utilities.
</td>
</tr>
<tr>
<td>Social & Communication</td>
<td>
Blogging<br>
Chat & IM<br>
Dating<br>
Email & Contacts<br>
Phone & SMS<br>
Social Networking
</td>
<td>Apps that help people communicate with each other.</td>
</tr>
<tr>
<td>Utilities</td>
<td>
Alarms & Clocks<br>
Bookmarks<br>
Calculators<br>
Dictionaries<br>
Notepads
</td>
<td>Useful apps that have a narrower scope than the ones in the Productivity category.</td>
</tr>
</tbody>
</table>

[1]: /docs/apps
[2]: /docs/webstore/launching#pre-launch-checklist
The developer console lets you specify a category for each extension. Choose the category
that is most appropriate:

* Accessibility
* Blogging
* Developer Tools
* Fun
* News & Weather
* Photos
* Productivity
* Search Tools
* Shopping
* Social & Communication
* Sports


[3]: /docs/webstore/identify_user
[4]: /docs/webstore/check_for_payment
[5]: /docs/webstore/check_for_payment#cache
[6]: #top
[7]: /docs/webstore/branding
[8]: /docs/webstore/images
[9]: #top
[completing-listing]: /docs/webstore/cws-dashboard-listing/
[dashboard-privacy]: /docs/webstore/cws-dashboard-privacy/
[mv3-overview]: /docs/extensions/mv3/intro/mv3-overview/
[program policies]: /docs/webstore/program_policies/
[supplying-images]: /docs/webstore/images/
[stay-secure]: /docs/extensions/mv3/security/
[user-data-faq]: /docs/webstore/user_data/

0 comments on commit a877cc5

Please sign in to comment.