This repository was archived by the owner on Nov 30, 2023. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 52
Expand file tree
/
Copy pathoverview.html
More file actions
441 lines (373 loc) · 13 KB
/
overview.html
File metadata and controls
441 lines (373 loc) · 13 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
{{+bindTo:partials.standard_store_article}}
<p class="caution">
<b>Important:</b>
Chrome will be removing support for Chrome Apps on Windows, Mac, and
Linux. Chrome OS will continue to support Chrome Apps. Additionally,
Chrome and the Web Store will continue to support extensions on all
platforms.
<a href="http://blog.chromium.org/2016/08/from-chrome-apps-to-web.html">
Read the announcement</a> and learn more about
<a href="https://developers.chrome.com/apps/migration">
migrating your app</a>.
</p>
<h1>Overview</h1>
<p>
The <a href="http://chrome.google.com/webstore">Chrome Web Store</a>
lets you publish apps
where Google Chrome users can easily find them.
The store's primary purpose
is to help Chrome users find apps.
It does this by supporting search,
by providing browsable categories of apps,
and by displaying lists of various kinds,
both curated and autogenerated.
User ratings and reviews
are used to rank apps.
</p>
<td>
<p id="video">
<object width="400" height="250"><param name="movie" value="https://www.youtube.com/v/Fja-TCLWpUc?fs=1&hl=en_US"></param><param name="allowFullScreen" value="true"></param><param name="allowscriptaccess" value="always"></param><embed src="https://www.youtube.com/v/Fja-TCLWpUc?fs=1&hl=en_US" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="400" height="250"></embed></object>
</p>
</td>
<p class="backtotop"><a href="#top">Back to top</a></p>
<h2 id="concepts"> Item concepts </h2>
<p>
With the Chrome Web Store,
you can publish three kinds of items:
</p>
<dl>
<dt> Apps </dt>
<dd>
<p>
Contains <b>installable web apps</b>.
An installable web app
can be a normal website with a bit of extra metadata;
this type of app is called a <b>hosted app</b>.
Alternatively, an installable web app can bundle all its content
into an archive that users download when they install the app;
this is a <b>packaged app</b>.
Both hosted and packaged apps
have icons in Chrome's New Tab page,
and most users shouldn't be able to tell the difference between them
without looking at the address bar.
</p>
<p>
Before publishing a hosted app in the store,
you must verify that you own the website that hosts the app's content.
Packaged apps might have some association with a website,
but you have the option of designing them
so that they don't rely on the web at all.
</p>
</dd>
<dt> Themes </dt>
<dd>
Contains <b>themes for Chrome</b>,
which change the way the browser looks.
</dd>
<dt> Extensions </dt>
<dd>
Contains <b>extensions for Chrome</b>,
which change how the browser behaves
and, in a limited way, how it looks.
<p>
If your extension seems more like a website
than a small browser add-on,
consider making it a packaged app.
Packaged apps are implemented as extensions
that have the additional ability
to present an app-like interface.
</p>
</dd>
</dl>
<p class="note">
<b>Terminology note:</b>
When this documentation talks about <b>an app</b>
without giving any other details,
it means any of the above—an
<em>installable web app</em>,
a <em>theme</em>,
or an <em>extension</em>.
</p>
<p>
Every app has a manifest, and most likely icons,
that you put into a ZIP file and upload to the
Chrome Developer Dashboard.
The Chrome Web Store takes the contents of this ZIP file
and puts them in a cryptographically signed <code>.crx</code> file.
Users download this <code>.crx</code> file
when they click the <b>Install</b> button for your app.
</p>
<p>
To create installable web apps and extensions,
you should be familiar with HTML, JavaScript, and CSS.
If you're targeting Chrome exclusively,
you can depend on HTML5 and the other emerging APIs
that Chrome supports.
</p>
<p>
For detailed information on creating apps,
see the developer doc for the type of app you're interested in:
</p>
<ul>
<li> <a href="/apps/about_apps.html">Chrome Apps</a> </li>
<li> <a href="/extensions/themes.html">Themes</a> </li>
<li> <a href="/extensions/index.html">Chrome Extensions</a> </li>
</ul>
<p>
If you aren't sure what kind of app you need to write, see
<a href="choosing.html">Choosing an App Type</a>.
</p>
<p>
<a href="choosing.html"><img
src="images/flowchart.png" width="100"
alt="Thumbnail of decision flowchart from Choosing an App Type" /></a>
</p>
<p class="backtotop"><a href="#top">Back to top</a></p>
<h2 id="charging"> Charging for your app </h2>
<p>
The Chrome Web Store has a built-in payment system
called Chrome Web Store Payments
that you can use if it meets your needs.
Alternatively, you can either provide your item for free
or use your own payment system to charge for the item.
Whether or not you charge for your item,
you have the option of
selling virtual goods within your web store item,
such as by using the
<a href="https://developer.chrome.com/webstore/payments-iap">In-App
Payments with Payments Merchant Account and the Chrome Web Store API</a>.
</p>
<p>
For each item you publish,
you can choose from any of the following payment options:
</p>
<ol style="list-style-type: lower-alpha">
<li> <b>Free</b> </li>
<li> <b>One-time payment</b> with the Chrome Web Store Payments </li>
<li> <b>Monthly or yearly subscription</b> with Chrome Web Store Payments </li>
<li> <b>Free trial</b> with b or c </li>
<li> <b>Custom payment solution</b> </li>
</ol>
<p class="caution">
<b>Note</b>:
Although packaged apps and extensions
can use Chrome Web Store Payments,
it's difficult for them to use the Licensing API securely.
Themes have no executable code,
so they can't use the Licensing API.
</p>
<h3 id="freevnot"> Providing some functionality for free </h3>
<p>
A freshly installed app should always provide something useful or interesting,
even if the user hasn't paid yet.
If the first page the user sees is useless—nothing
but a payment wall, for example—the
user is likely to uninstall your app,
and you might get some scathing reviews.
</p>
<p>
If you list your app as <b>free</b>,
then it should perform its function
without asking for payment from the user.
See the <a href="program_policies.html">policy document</a>
for details.
</p>
<p>
If you charge for your item,
we encourage you to provide a <b>free trial</b> version
with an upgrade path to the paid version.
This model is sometimes called <em>freemium</em>.
Another way to implement a freemium item
is to make the item free
and to charge for additional features using in-app payments.
</p>
<p>
A free trial of an item
should provide a basic level of functionality
that lets the user gauge the usefulness of the item.
Examples:
</p>
<ul>
<li> Games: a few game levels </li>
<li> Productivity apps: a limited but still useful set of features </li>
<li> Content apps: a subset of available content </li>
</ul>
<h3 id="builtin"> Using the built-in system: Chrome Web Store Payments </h3>
<p>
To use Chrome Web Store Payments,
you must open a Payments Merchant Account,
and you must associate that account with the store.
For details, see
<a href="https://payments.google.com/merchant/signup">Sign Up for your Google Payments Merchant Center Account</a>.
</p>
<p>
When someone buys your app using Chrome Web Store Payments,
Google charges you a 5% fee per transaction.
For example,
if you charge $1.99, you'll receive $1.89.
You must choose a price
for each location where you sell your app;
for the US, the minimum price is $1.99.
See <a href="pricing.html">Payments: Regions, Fees, and Tiers</a> for details.
</p>
<p class="note">
<strong>Note:</strong>
In-app payments for ARC apps are subject to a 30% transaction fee.
For example, if you charge $1.99 for an item offered in an ARC app, you’ll receive $1.39.
This is to ensure a consistent pricing structure
with in-app payments made in apps available on Google Play.
ARC does not currently support other purchase models including up-front payments,
subscriptions and in-app version upgrades;
as these types of purchases require provisioning from Google Play which is not currently enabled.
For more information on monetizing ARC apps, see
<a href="https://developer.chrome.com/apps/arc_in_app_payments">In-app purchases for ARC apps</a>.
</p>
<p>
Chrome Web Store Payments
works for buyers and sellers in many
<a href="pricing.html#seller">supported {# seller#} regions</a>.
As long as you're in a supported region
you can signup as a merchant,
specify regions where the app should be listed,
and publish your item to the world.
</p>
<p class="note">
<strong>Note: </strong>Chrome Web Store payment methods are not available
for hosted apps.
</p>
<p class="backtotop"><a href="#top">Back to top</a></p>
<div id="testaccounts">
<h2 id="webstore"> Uploading and publishing your item </h2>
</div>
<p>
To publish items to the Chrome Web Store,
you first use the <a href="{{ dashboardurl }}">Chrome Developer Dashboard</a>
to upload your app
and specify how its listing should look.
Then you can publish it either to the world at large
or to a few trusted testers.
For details, see <a href="publish.html">Publishing Your App</a>.
</p>
<p class="note">
<b>Note</b>:
Before you publish your first app,
you must pay a $5 developer signup fee.
If you used the Chrome Developer Dashboard before {{ grandfatherdate }}—to
publish an extension, for example—you
don't need to pay the fee.
</p>
<p class="backtotop"><a href="#top">Back to top</a></p>
<h2 id="drm"> Protecting your item from unauthorized use </h2>
<p>
The Chrome browser provides a minimal default level of protection
when a user tries to install an item.
This protection relies on the fact
that <code>.crx</code> files created by the Chrome Web Store
are signed and contain an autoupdate URL created by the store.
</p>
<p>
Here's how the protection works:
If the user downloads
a <code>.crx</code> file
that was created by the store,
then the app installs <em>only</em>
if the <code>.crx</code> file is
being served by the Chrome Web Store.
</p>
<h3 id="licensingapi"> Using the Licensing API to check for payment </h3>
<p>
The Chrome Web Store Licensing API lets you find out
whether the current user has paid for your item
using Chrome Web Store Payments.
To use the Licensing API,
you need two IDs and an OAuth access token:
</p>
<dl>
<dt> App ID </dt>
<dd>
The Chrome Developer Dashboard generates this ID
the first time you upload the app.
You can get it from the Chrome Developer Dashboard's
page for your item.
</dd>
<dt> User ID </dt>
<dd>
Your app needs to get a Google Account identity for the user,
using OpenID.
</dd>
<dt> OAuth access token </dt>
<dd>
After you upload your app,
you can ask the Chrome Developer Dashboard
to generate an OAuth access token and secret.
</dd>
</dl>
<p>
Once you have these items,
you can make requests to the license server
using OAuth and the Licensing API.
The license server tells you whether the user has access to this item,
and whether a free trial is in effect.
Rather than query the server repeatedly,
you should cache the response.
</p>
<p>
For detailed instructions on using the Licensing API, see
<a href="payments-iap.html">Checking for Payment</a>.
</p>
<h3 id="recommendations">Encouraging payment</h3>
<p>
No protection is perfect,
but here are some practices
that should encourage people to pay for your item:
</p>
<ul>
<li> <b>Update your app frequently</b>,
so that only authorized users will always have
the latest, greatest version of the item.
Distributing updates is easy,
thanks to Chrome's support for autoupdate.
You just increment the version number in the manifest,
update the ZIP file,
and then use the Chrome Developer Dashboard to
upload and publish the updated ZIP file.
Over the next few hours,
the new version of the item starts going out to its existing users.
</li>
<li> <b>Don't put any roadblocks</b> in front of users.
Your item should be easy to buy,
and it should work everywhere users want it to work.
</li>
</ul>
<p class="backtotop"><a href="#top">Back to top</a></p>
<h2 id="next">What next?</h2>
<p>
Here are some choices for where to go next:
</p>
<dl>
<dt> <a href="get_started_simple.html">Tutorial: Getting Started</a> </dt>
<dd> Publish your first item in the Chrome Web Store.
</dd>
<dt> <a href="check_for_payment.html">Checking for Payment</a> </dt>
<dd> Learn how to use the Licensing API to
check whether the user has paid for your item.
</dd>
<dt> <a href="get_started.html">Tutorial: Licensing API</a> </dt>
<dd> Write an app that uses the Licensing API.
</dd>
<dt> <a href="samples.html">Samples</a> </dt>
<dd> Find samples in multiple languages of apps
that use the Licensing API.
</dd>
</dl>
<p>
If you just want to write your item,
see the developer doc for the type of app you're interested in:
</p>
<ul>
<li> <a href="/apps/about_apps.html">Chrome Apps</a> </li>
<li> <a href="/extensions/themes.html">Themes</a> </li>
<li> <a href="/extensions/index.html">Chrome Extensions</a> </li>
</ul>
<p class="backtotop"><a href="#top">Back to top</a></p>
{{/partials.standard_store_article}}